diff --git a/.gitignore b/.gitignore index 149a237..21b41b8c 100644 --- a/.gitignore +++ b/.gitignore
@@ -215,7 +215,6 @@ /content/test/data/gpu/mediapipe_zip/mediapipe_chromium_tests.zip /content/test/data/layout_tests/ /content/test/data/plugin/ -/content/test/gpu/.webgpu_typescript/ /content/web_ui_test_mojo_bindings.xml /data /delegate_execute
diff --git a/.vpython3 b/.vpython3 index 426cba23..e1b4563 100644 --- a/.vpython3 +++ b/.vpython3
@@ -337,11 +337,6 @@ > > -wheel: < - name: "infra/python/wheels/websockets-py3" - version: "version:10.1" -> - # Used by: # //tools/infra/find_bad_builds.py wheel: <
diff --git a/DEPS b/DEPS index 2ccf016..1b835156 100644 --- a/DEPS +++ b/DEPS
@@ -253,7 +253,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '4ead8b3297368bf5567215950e2ceb590cf552d1', + 'skia_revision': '564e7ae44e3af4c4b5dc14c8cae4fde67d71a1d6', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -261,7 +261,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': '9637185c3dbfbee45c4d231c71ca300fd8335760', + 'angle_revision': 'e56f185b3c476edad5f8cb02deed97c73b995f7a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -300,7 +300,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': 'd2c3bbcd8ec175a750d76f0bf50162ea9e3aaf85', + 'freetype_revision': 'a960be9e5e9846e1e4e8d2254e0b405fbf84346b', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling freetype # and whatever else without interference from each other. @@ -328,7 +328,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': 'd69cfb00328d96e16e2c46ad11701013faa42a38', + 'devtools_frontend_revision': 'c2cfb60f9104d416f898d06e836897d18277e773', # 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. @@ -368,7 +368,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': 'e2c4a5d22bfa856907f53833d261215da0c98987', + 'dawn_revision': 'd9f22ce0346b222759d5510be3d1cd93caa5ab86', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -408,7 +408,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. - 'resultdb_version': 'git_revision:735a8a662d3874d8b1d795a40e46ea0f57b52758', + 'resultdb_version': 'git_revision:6cc18e2763e180929d70c786b419c1f8e6bcc66c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -816,7 +816,7 @@ 'packages': [ { 'package': 'chromium/rts/model/linux-amd64', - 'version': 'KtR-sQSOx0WofzVXC5RezzIm2bZh1V3-_AerF3EcC4EC', + 'version': 'YXAiQuHJqULSB4E11R_3l7xMTCdlBagMN0yD5fOgyhsC', }, ], 'dep_type': 'cipd', @@ -827,7 +827,7 @@ 'packages': [ { 'package': 'chromium/rts/model/mac-amd64', - 'version': 'qKRPWL3vLa9l7EEx93JKf7orAMZbQ746uloai6LweQMC', + 'version': 'ul1pXqgzEpA5LEwBwR5fFSedq71tDdDLSEKnLar7szoC', }, ], 'dep_type': 'cipd', @@ -838,7 +838,7 @@ 'packages': [ { 'package': 'chromium/rts/model/windows-amd64', - 'version': 'NkUV2KW4fj-OlIPeBNe1k8lePAUxIgYKA4FOs98T5_MC', + 'version': 'WSxyvgDCjjZA-FCqH7sF-53uPDQSPiKKxXQ2fzS0_9kC', }, ], 'dep_type': 'cipd', @@ -1127,7 +1127,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'fbb927599f97cd1636493c40f0a87a18c8d335c4', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'f0bc2d24042bd70cc7b43d4d19d9eec3074e462c', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), @@ -1731,7 +1731,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '09f024e50e84f191ee4546ef4021707faa376096', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'd67903d284353dffcf28dfb92819e3d7c4b69bfd', + Var('webrtc_git') + '/src.git' + '@' + '82c94af48f74699bc1cd2bcad4f91073fd4b88cc', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1801,7 +1801,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@faf4f468085986cab90b56674a92c2a599477098', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@24210a1d36e9e0c779d7f5522a9acc471676220d', 'condition': 'checkout_src_internal', }, @@ -1831,7 +1831,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/help_app/app', - 'version': 'l4iP7odzYm7WsCi-OjyqfrKWfCS1Ux_sWS3flw0yGCYC', + 'version': 'RS2i4HWFbzRx8BRu0KW0hxhkiQOe9DaxspA4Ka96LwAC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -1842,7 +1842,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': 'Wf5u_0wabQ5jey25-A_FpnaBfXjOa3QAR_QkkD1sLO4C', + 'version': 'UtDF89L_ImPatBaLMYXChoJ1J_8r_prtLjzfUC4c2NsC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -1853,7 +1853,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/projector_app/app', - 'version': 'keBkt0yVOBLW7BfxbfrlX2BFHUiP2W91AMxq339mM08C', + 'version': 'S062z4H04AYdDFOi5twdpQ_t3B0Q3OqPVmnjbx5y97UC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/ash/components/arc/mojom/digital_goods.mojom b/ash/components/arc/mojom/digital_goods.mojom index db57bedd..b7cd478 100644 --- a/ash/components/arc/mojom/digital_goods.mojom +++ b/ash/components/arc/mojom/digital_goods.mojom
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Next MinVersion: 1 +// Next MinVersion: 2 module arc.mojom; @@ -10,7 +10,7 @@ // Allows the browser process to forward calls for the Digital Goods API to // ARC++ -// Next method ID: 3 +// Next method ID: 6 [Stable] interface DigitalGoodsInstance { // Queries a specific package for SKU details by item IDs. @@ -32,8 +32,27 @@ // Queries a package for information on all items that are currently owned by // the user. - [MinVersion=0] ListPurchases@2(string package_name, + [MinVersion=0] DeprecatedListPurchases@2(string package_name, string scope) => (payments.mojom.BillingResponseCode code, array<payments.mojom.PurchaseDetails> purchase_details_list); + + // Queries a package for information on all items that are currently owned by + // the user. May include unconfirmed purchases. + [MinVersion=1] ListPurchases@3(string package_name, string scope) + => (payments.mojom.BillingResponseCode code, + array<payments.mojom.PurchaseReference> purchase_reference_list); + + // Queries a package for information on the latest purchase for each item type + // ever purchased by the user. May include expired or consumed purchases. + [MinVersion=1] ListPurchaseHistory@4(string package_name, string scope) + => (payments.mojom.BillingResponseCode code, + array<payments.mojom.PurchaseReference> purchase_reference_list); + + // Informs a package that the purchase identified by |purchase_token| was used + // up. + [MinVersion=1] Consume@5(string package_name, + string scope, + string purchase_token) + => (payments.mojom.BillingResponseCode code); };
diff --git a/ash/components/arc/pay/arc_digital_goods_bridge.cc b/ash/components/arc/pay/arc_digital_goods_bridge.cc index b60efb62..59524007 100644 --- a/ash/components/arc/pay/arc_digital_goods_bridge.cc +++ b/ash/components/arc/pay/arc_digital_goods_bridge.cc
@@ -91,10 +91,40 @@ if (!digital_goods) { std::move(callback).Run( payments::mojom::BillingResponseCode::kClientAppUnavailable, - /* purchase_details_list = */ {}); + /* purchase_reference_list = */ {}); return; } digital_goods->ListPurchases(package_name, scope, std::move(callback)); } +void ArcDigitalGoodsBridge::ListPurchaseHistory( + const std::string& package_name, + const std::string& scope, + ListPurchaseHistoryCallback callback) { + mojom::DigitalGoodsInstance* digital_goods = ARC_GET_INSTANCE_FOR_METHOD( + arc_bridge_service_->digital_goods(), ListPurchaseHistory); + if (!digital_goods) { + std::move(callback).Run( + payments::mojom::BillingResponseCode::kClientAppUnavailable, + /* purchase_reference_list = */ {}); + return; + } + digital_goods->ListPurchaseHistory(package_name, scope, std::move(callback)); +} + +void ArcDigitalGoodsBridge::Consume(const std::string& package_name, + const std::string& scope, + const std::string& purchase_token, + ConsumeCallback callback) { + mojom::DigitalGoodsInstance* digital_goods = ARC_GET_INSTANCE_FOR_METHOD( + arc_bridge_service_->digital_goods(), Consume); + if (!digital_goods) { + std::move(callback).Run( + payments::mojom::BillingResponseCode::kClientAppUnavailable); + return; + } + digital_goods->Consume(package_name, scope, purchase_token, + std::move(callback)); +} + } // namespace arc
diff --git a/ash/components/arc/pay/arc_digital_goods_bridge.h b/ash/components/arc/pay/arc_digital_goods_bridge.h index b19a033..6518ee02 100644 --- a/ash/components/arc/pay/arc_digital_goods_bridge.h +++ b/ash/components/arc/pay/arc_digital_goods_bridge.h
@@ -29,7 +29,12 @@ base::OnceCallback<void(payments::mojom::BillingResponseCode)>; using ListPurchasesCallback = base::OnceCallback<void( payments::mojom::BillingResponseCode, - std::vector<payments::mojom::PurchaseDetailsPtr>)>; + std::vector<payments::mojom::PurchaseReferencePtr>)>; + using ListPurchaseHistoryCallback = base::OnceCallback<void( + payments::mojom::BillingResponseCode, + std::vector<payments::mojom::PurchaseReferencePtr>)>; + using ConsumeCallback = + base::OnceCallback<void(payments::mojom::BillingResponseCode)>; // Returns the instance owned by the given BrowserContext, or nullptr if the // browser |context| is not allowed to use ARC. @@ -63,11 +68,24 @@ AcknowledgeCallback callback); // Queries a package for information on all items that are currently owned by - // the user. + // the user. May include unconfirmed purchases. void ListPurchases(const std::string& package_name, const std::string& scope, ListPurchasesCallback callback); + // Queries a package for information on the latest purchase for each item type + // ever purchased by the user. May include expired or consumed purchases. + void ListPurchaseHistory(const std::string& package_name, + const std::string& scope, + ListPurchaseHistoryCallback callback); + + // Informs a package that the purchase identified by |purchase_token| was used + // up. + void Consume(const std::string& package_name, + const std::string& scope, + const std::string& purchase_token, + ConsumeCallback callback); + private: ArcBridgeService* const arc_bridge_service_; // Owned by ArcServiceManager. };
diff --git a/ash/components/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc b/ash/components/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc index 0f1a9a90..2fd5857 100644 --- a/ash/components/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc +++ b/ash/components/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc
@@ -18,7 +18,6 @@ #include "media/base/bitrate.h" #include "media/base/color_plane_layout.h" #include "media/base/format_utils.h" -#include "media/base/media_log.h" #include "media/base/video_types.h" #include "media/gpu/buffer_validation.h" #include "media/gpu/gpu_video_encode_accelerator_factory.h"
diff --git a/ash/components/phonehub/fake_multidevice_feature_access_manager.cc b/ash/components/phonehub/fake_multidevice_feature_access_manager.cc index cc98fdd9..e0627d5 100644 --- a/ash/components/phonehub/fake_multidevice_feature_access_manager.cc +++ b/ash/components/phonehub/fake_multidevice_feature_access_manager.cc
@@ -15,7 +15,9 @@ : notification_access_status_(notification_access_status), camera_roll_access_status_(camera_roll_access_status), apps_access_status_(apps_access_status), - access_prohibited_reason_(reason) {} + access_prohibited_reason_(reason) { + ready_for_access_features_ = {}; +} FakeMultideviceFeatureAccessManager::~FakeMultideviceFeatureAccessManager() = default; @@ -55,6 +57,18 @@ NotifyAppsAccessChanged(); } +void FakeMultideviceFeatureAccessManager::SetFeatureReadyForAccess( + multidevice_setup::mojom::Feature feature) { + ready_for_access_features_.push_back(feature); +} + +bool FakeMultideviceFeatureAccessManager::IsAccessRequestAllowed( + multidevice_setup::mojom::Feature feature) { + const auto it = std::find(ready_for_access_features_.begin(), + ready_for_access_features_.end(), feature); + return (it != ready_for_access_features_.end()); +} + MultideviceFeatureAccessManager::AccessStatus FakeMultideviceFeatureAccessManager::GetAppsAccessStatus() const { return apps_access_status_;
diff --git a/ash/components/phonehub/fake_multidevice_feature_access_manager.h b/ash/components/phonehub/fake_multidevice_feature_access_manager.h index 721f81c8..1262d70 100644 --- a/ash/components/phonehub/fake_multidevice_feature_access_manager.h +++ b/ash/components/phonehub/fake_multidevice_feature_access_manager.h
@@ -5,11 +5,20 @@ #ifndef ASH_COMPONENTS_PHONEHUB_FAKE_MULTIDEVICE_FEATURE_ACCESS_MANAGER_H_ #define ASH_COMPONENTS_PHONEHUB_FAKE_MULTIDEVICE_FEATURE_ACCESS_MANAGER_H_ +#include <vector> + #include "ash/components/phonehub/multidevice_feature_access_manager.h" +#include "ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" namespace ash { namespace phonehub { +namespace { + +using multidevice_setup::mojom::Feature; + +} // namespace + class FakeMultideviceFeatureAccessManager : public MultideviceFeatureAccessManager { public: @@ -40,9 +49,11 @@ AccessStatus camera_roll_access_status) override; AccessStatus GetCameraRollAccessStatus() const override; AccessStatus GetAppsAccessStatus() const override; + bool IsAccessRequestAllowed(Feature feature) override; // Test-only. void SetAppsAccessStatusInternal(AccessStatus apps_access_status); + void SetFeatureReadyForAccess(Feature feature); private: AccessStatus notification_access_status_; @@ -50,6 +61,7 @@ AccessStatus apps_access_status_; AccessProhibitedReason access_prohibited_reason_; bool has_notification_setup_ui_been_dismissed_ = false; + std::vector<Feature> ready_for_access_features_; }; } // namespace phonehub
diff --git a/ash/components/phonehub/multidevice_feature_access_manager.h b/ash/components/phonehub/multidevice_feature_access_manager.h index 2b8b8710..e61e32e 100644 --- a/ash/components/phonehub/multidevice_feature_access_manager.h +++ b/ash/components/phonehub/multidevice_feature_access_manager.h
@@ -8,6 +8,7 @@ #include <ostream> #include "ash/components/phonehub/notification_access_setup_operation.h" +#include "ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "base/containers/flat_map.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h" @@ -89,6 +90,12 @@ virtual AccessStatus GetAppsAccessStatus() const = 0; + // Return true if the feature status is ready for requesting access. If the + // feature requires further access permission from phone side, we shouldn't + // send out the access request until the feature state is fuly synced. + virtual bool IsAccessRequestAllowed( + multidevice_setup::mojom::Feature feature) = 0; + // Returns the reason notification access status is prohibited. The return // result is valid if the current access status (from GetAccessStatus()) // is AccessStatus::kProhibited. Otherwise, the result is undefined and should
diff --git a/ash/components/phonehub/multidevice_feature_access_manager_impl.cc b/ash/components/phonehub/multidevice_feature_access_manager_impl.cc index c7d86df..26ed03d 100644 --- a/ash/components/phonehub/multidevice_feature_access_manager_impl.cc +++ b/ash/components/phonehub/multidevice_feature_access_manager_impl.cc
@@ -10,6 +10,7 @@ #include "ash/components/phonehub/pref_names.h" #include "ash/components/phonehub/util/histogram_util.h" #include "ash/constants/ash_features.h" +#include "ash/services/multidevice_setup/public/cpp/multidevice_setup_client.h" #include "ash/webui/eche_app_ui/pref_names.h" #include "components/prefs/pref_change_registrar.h" #include "components/prefs/pref_registry_simple.h" @@ -19,6 +20,13 @@ namespace ash { namespace phonehub { +namespace { + +using multidevice_setup::mojom::Feature; +using multidevice_setup::mojom::FeatureState; + +} // namespace + // static void MultideviceFeatureAccessManagerImpl::RegisterPrefs( PrefRegistrySimple* registry) { @@ -38,15 +46,18 @@ MultideviceFeatureAccessManagerImpl::MultideviceFeatureAccessManagerImpl( PrefService* pref_service, + multidevice_setup::MultiDeviceSetupClient* multidevice_setup_client, FeatureStatusProvider* feature_status_provider, MessageSender* message_sender, ConnectionScheduler* connection_scheduler) : pref_service_(pref_service), + multidevice_setup_client_(multidevice_setup_client), feature_status_provider_(feature_status_provider), message_sender_(message_sender), connection_scheduler_(connection_scheduler) { DCHECK(feature_status_provider_); DCHECK(message_sender_); + DCHECK(multidevice_setup_client_); current_feature_status_ = feature_status_provider_->GetStatus(); feature_status_provider_->AddObserver(this); @@ -73,6 +84,15 @@ pref_service_->SetBoolean(prefs::kHasDismissedSetupRequiredUi, true); } +bool MultideviceFeatureAccessManagerImpl::IsAccessRequestAllowed( + Feature feature) { + const FeatureState feature_state = + multidevice_setup_client_->GetFeatureState(feature); + bool result = feature_state == FeatureState::kDisabledByUser || + feature_state == FeatureState::kEnabledByUser; + return result; +} + MultideviceFeatureAccessManagerImpl::AccessStatus MultideviceFeatureAccessManagerImpl::GetNotificationAccessStatus() const { int status = pref_service_->GetInteger(prefs::kNotificationAccessStatus);
diff --git a/ash/components/phonehub/multidevice_feature_access_manager_impl.h b/ash/components/phonehub/multidevice_feature_access_manager_impl.h index d52e8f1..a3098b5b 100644 --- a/ash/components/phonehub/multidevice_feature_access_manager_impl.h +++ b/ash/components/phonehub/multidevice_feature_access_manager_impl.h
@@ -9,6 +9,8 @@ #include "ash/components/phonehub/feature_status_provider.h" #include "ash/components/phonehub/message_receiver.h" +#include "ash/services/multidevice_setup/public/cpp/multidevice_setup_client.h" +#include "ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "components/prefs/pref_change_registrar.h" class PrefRegistrySimple; @@ -30,6 +32,7 @@ explicit MultideviceFeatureAccessManagerImpl( PrefService* pref_service, + multidevice_setup::MultiDeviceSetupClient* multidevice_setup_client, FeatureStatusProvider* feature_status_provider, MessageSender* message_sender, ConnectionScheduler* connection_scheduler); @@ -48,6 +51,8 @@ AccessStatus camera_roll_access_status) override; AccessStatus GetCameraRollAccessStatus() const override; AccessStatus GetAppsAccessStatus() const override; + bool IsAccessRequestAllowed( + multidevice_setup::mojom::Feature feature) override; void OnSetupRequested() override; bool HasMultideviceFeatureSetupUiBeenDismissed() const override; @@ -63,6 +68,7 @@ FeatureStatus current_feature_status_; PrefService* pref_service_; + multidevice_setup::MultiDeviceSetupClient* multidevice_setup_client_; FeatureStatusProvider* feature_status_provider_; MessageSender* message_sender_; ConnectionScheduler* connection_scheduler_;
diff --git a/ash/components/phonehub/multidevice_feature_access_manager_impl_unittest.cc b/ash/components/phonehub/multidevice_feature_access_manager_impl_unittest.cc index 3951777..945c7d7 100644 --- a/ash/components/phonehub/multidevice_feature_access_manager_impl_unittest.cc +++ b/ash/components/phonehub/multidevice_feature_access_manager_impl_unittest.cc
@@ -11,6 +11,7 @@ #include "ash/components/phonehub/fake_message_sender.h" #include "ash/components/phonehub/notification_access_setup_operation.h" #include "ash/components/phonehub/pref_names.h" +#include "ash/services/multidevice_setup/public/cpp/fake_multidevice_setup_client.h" #include "ash/webui/eche_app_ui/pref_names.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/testing_pref_service.h" @@ -23,6 +24,8 @@ using AccessStatus = MultideviceFeatureAccessManager::AccessStatus; using AccessProhibitedReason = MultideviceFeatureAccessManager::AccessProhibitedReason; +using FeatureState = multidevice_setup::mojom::FeatureState; +using Feature = multidevice_setup::mojom::Feature; class FakeObserver : public MultideviceFeatureAccessManager::Observer { public: @@ -76,6 +79,8 @@ // testing::Test: void SetUp() override { + fake_multidevice_setup_client_ = + std::make_unique<multidevice_setup::FakeMultiDeviceSetupClient>(); MultideviceFeatureAccessManagerImpl::RegisterPrefs( pref_service_.registry()); fake_feature_status_provider_ = @@ -101,8 +106,9 @@ static_cast<int>(reason)); SetNeedsOneTimeNotificationAccessUpdate(/*needs_update=*/false); manager_ = std::make_unique<MultideviceFeatureAccessManagerImpl>( - &pref_service_, fake_feature_status_provider_.get(), - fake_message_sender_.get(), fake_connection_scheduler_.get()); + &pref_service_, fake_multidevice_setup_client_.get(), + fake_feature_status_provider_.get(), fake_message_sender_.get(), + fake_connection_scheduler_.get()); manager_->AddObserver(&fake_observer_); } @@ -194,17 +200,48 @@ needs_update); } + void SetEcheFeatureState(FeatureState feature_state) { + fake_multidevice_setup_client_->SetFeatureState( + multidevice_setup::mojom::Feature::kEche, feature_state); + } + + bool IsAccessRequestAllowed(Feature feature) { + return manager_->IsAccessRequestAllowed(feature); + } + private: TestingPrefServiceSimple pref_service_; FakeObserver fake_observer_; FakeOperationDelegate fake_delegate_; + std::unique_ptr<multidevice_setup::FakeMultiDeviceSetupClient> + fake_multidevice_setup_client_; std::unique_ptr<FakeFeatureStatusProvider> fake_feature_status_provider_; std::unique_ptr<FakeMessageSender> fake_message_sender_; std::unique_ptr<FakeConnectionScheduler> fake_connection_scheduler_; std::unique_ptr<MultideviceFeatureAccessManager> manager_; }; +TEST_F(MultideviceFeatureAccessManagerImplTest, FeatureNotReadyForAccess) { + InitializeAccessStatus(AccessStatus::kAccessGranted, + AccessStatus::kAccessGranted); + SetEcheFeatureState(FeatureState::kNotSupportedByChromebook); + + EXPECT_FALSE(IsAccessRequestAllowed(Feature::kEche)); +} + +TEST_F(MultideviceFeatureAccessManagerImplTest, FeatureReadyForAccess) { + InitializeAccessStatus(AccessStatus::kAccessGranted, + AccessStatus::kAccessGranted); + SetEcheFeatureState(FeatureState::kEnabledByUser); + + EXPECT_TRUE(IsAccessRequestAllowed(Feature::kEche)); + + SetEcheFeatureState(FeatureState::kDisabledByUser); + + EXPECT_TRUE(IsAccessRequestAllowed(Feature::kEche)); +} + TEST_F(MultideviceFeatureAccessManagerImplTest, ShouldShowSetupRequiredUi) { // Notification setup is not dismissed initially even when access has been // granted.
diff --git a/ash/components/phonehub/phone_hub_manager_impl.cc b/ash/components/phonehub/phone_hub_manager_impl.cc index 745c5345..8288a695 100644 --- a/ash/components/phonehub/phone_hub_manager_impl.cc +++ b/ash/components/phonehub/phone_hub_manager_impl.cc
@@ -91,6 +91,7 @@ multidevice_feature_access_manager_( std::make_unique<MultideviceFeatureAccessManagerImpl>( pref_service, + multidevice_setup_client, feature_status_provider_.get(), message_sender_.get(), connection_scheduler_.get())),
diff --git a/ash/components/tpm/install_attributes.cc b/ash/components/tpm/install_attributes.cc index 59d9c4d..bf37919a 100644 --- a/ash/components/tpm/install_attributes.cc +++ b/ash/components/tpm/install_attributes.cc
@@ -29,7 +29,7 @@ #include "google_apis/gaia/gaia_auth_util.h" #include "third_party/cros_system_api/dbus/service_constants.h" -namespace chromeos { +namespace ash { namespace { @@ -622,4 +622,4 @@ } } -} // namespace chromeos +} // namespace ash
diff --git a/ash/components/tpm/install_attributes.h b/ash/components/tpm/install_attributes.h index ddf099b..4a2eff67 100644 --- a/ash/components/tpm/install_attributes.h +++ b/ash/components/tpm/install_attributes.h
@@ -19,7 +19,7 @@ #include "components/policy/core/common/cloud/cloud_policy_constants.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { +namespace ash { // Brokers access to the installation-time attributes on Chrome OS. When // initialized with kInstallAttributesFileName, the attributes are fully trusted @@ -236,12 +236,11 @@ base::WeakPtrFactory<InstallAttributes> weak_ptr_factory_{this}; }; -} // namespace chromeos +} // namespace ash -// TODO(https://crbug.com/1164001): remove after the //chrome/browser/chromeos -// source migration is finished. -namespace ash { -using ::chromeos::InstallAttributes; +// TODO(https://crbug.com/1164001): remove after the migration is finished. +namespace chromeos { +using ::ash::InstallAttributes; } #endif // ASH_COMPONENTS_TPM_INSTALL_ATTRIBUTES_H_
diff --git a/ash/components/tpm/install_attributes_unittest.cc b/ash/components/tpm/install_attributes_unittest.cc index 70e6a95..c5456e5 100644 --- a/ash/components/tpm/install_attributes_unittest.cc +++ b/ash/components/tpm/install_attributes_unittest.cc
@@ -22,7 +22,7 @@ #include "google_apis/gaia/gaia_auth_util.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace { @@ -388,4 +388,4 @@ 1); } -} // namespace chromeos +} // namespace ash
diff --git a/ash/components/tpm/prepare_tpm.cc b/ash/components/tpm/prepare_tpm.cc index 87d86fa..6602909 100644 --- a/ash/components/tpm/prepare_tpm.cc +++ b/ash/components/tpm/prepare_tpm.cc
@@ -12,7 +12,7 @@ #include "chromeos/dbus/tpm_manager/tpm_manager.pb.h" #include "chromeos/dbus/tpm_manager/tpm_manager_client.h" -namespace chromeos { +namespace ash { namespace { @@ -62,4 +62,4 @@ base::BindOnce(OnGetTpmStatus, std::move(preparation_finished_callback))); } -} // namespace chromeos +} // namespace ash
diff --git a/ash/components/tpm/prepare_tpm.h b/ash/components/tpm/prepare_tpm.h index 09fc692f..165b745 100644 --- a/ash/components/tpm/prepare_tpm.h +++ b/ash/components/tpm/prepare_tpm.h
@@ -8,7 +8,7 @@ #include "base/callback.h" #include "base/component_export.h" -namespace chromeos { +namespace ash { // Asynchronously prepares TPM. To be specific, attempts to clear owner // password if TPM is owned to make sure the owner password is cleared if no @@ -19,6 +19,6 @@ void COMPONENT_EXPORT(ASH_COMPONENTS_TPM) PrepareTpm(base::OnceClosure preparation_finished_callback); -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TPM_PREPARE_TPM_H_
diff --git a/ash/components/tpm/prepare_tpm_unittest.cc b/ash/components/tpm/prepare_tpm_unittest.cc index 1286bfcc..b97bdd1 100644 --- a/ash/components/tpm/prepare_tpm_unittest.cc +++ b/ash/components/tpm/prepare_tpm_unittest.cc
@@ -10,7 +10,7 @@ #include "chromeos/dbus/tpm_manager/tpm_manager_client.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace { @@ -83,4 +83,4 @@ 0); } -} // namespace chromeos +} // namespace ash
diff --git a/ash/components/tpm/stub_install_attributes.cc b/ash/components/tpm/stub_install_attributes.cc index 07a3d9a2..5172ae1 100644 --- a/ash/components/tpm/stub_install_attributes.cc +++ b/ash/components/tpm/stub_install_attributes.cc
@@ -6,7 +6,7 @@ #include "components/policy/core/common/cloud/cloud_policy_constants.h" -namespace chromeos { +namespace ash { StubInstallAttributes::StubInstallAttributes() : InstallAttributes(nullptr) { device_locked_ = true; @@ -116,4 +116,4 @@ return install_attributes_.get(); } -} // namespace chromeos +} // namespace ash
diff --git a/ash/components/tpm/stub_install_attributes.h b/ash/components/tpm/stub_install_attributes.h index 8c1eb27d..6f1713a 100644 --- a/ash/components/tpm/stub_install_attributes.h +++ b/ash/components/tpm/stub_install_attributes.h
@@ -9,7 +9,7 @@ #include "ash/components/tpm/install_attributes.h" -namespace chromeos { +namespace ash { // This class allows tests to set specific configurations for testing. class StubInstallAttributes : public InstallAttributes { @@ -55,9 +55,9 @@ }; // Helper class to set install attributes in tests. Using one of the Create* -// methods injects the generated StubInstallAttributes into the singleton -// at chromeos::InstallAttributes::Get(). Scoping ensures that -// chromes::InstallAttributes::Shutdown is called when this is destructed. +// methods injects the generated `StubInstallAttributes` into the singleton +// at `InstallAttributes::Get()`. Scoping ensures that +// `InstallAttributes::Shutdown` is called when this is destructed. class ScopedStubInstallAttributes { public: // Scopes the default StubInstallAttributes, with a DeviceMode of PENDING. @@ -81,13 +81,12 @@ std::unique_ptr<StubInstallAttributes> install_attributes_; }; -} // namespace chromeos - -// TODO(https://crbug.com/1164001): remove after the //chrome/browser/chromeos -// source migration is finished. -namespace ash { -using ::chromeos::ScopedStubInstallAttributes; -using ::chromeos::StubInstallAttributes; } // namespace ash +// TODO(https://crbug.com/1164001): remove after the migration is finished. +namespace chromeos { +using ::ash::ScopedStubInstallAttributes; +using ::ash::StubInstallAttributes; +} // namespace chromeos + #endif // ASH_COMPONENTS_TPM_STUB_INSTALL_ATTRIBUTES_H_
diff --git a/ash/components/tpm/tpm_token_info_getter.cc b/ash/components/tpm/tpm_token_info_getter.cc index faf47824..ee932efd 100644 --- a/ash/components/tpm/tpm_token_info_getter.cc +++ b/ash/components/tpm/tpm_token_info_getter.cc
@@ -19,6 +19,8 @@ #include "chromeos/dbus/tpm_manager/tpm_manager_client.h" #include "chromeos/dbus/userdataauth/userdataauth_client.h" +namespace ash { + namespace { const int64_t kInitialRequestDelayMs = 100; @@ -46,8 +48,6 @@ } // namespace -namespace chromeos { - // static std::unique_ptr<TPMTokenInfoGetter> TPMTokenInfoGetter::CreateForUserToken( const AccountId& account_id, @@ -168,4 +168,4 @@ std::move(callback_).Run(token_info->token_info()); } -} // namespace chromeos +} // namespace ash
diff --git a/ash/components/tpm/tpm_token_info_getter.h b/ash/components/tpm/tpm_token_info_getter.h index 0ca692c..16b5e5b 100644 --- a/ash/components/tpm/tpm_token_info_getter.h +++ b/ash/components/tpm/tpm_token_info_getter.h
@@ -23,7 +23,7 @@ class TaskRunner; } -namespace chromeos { +namespace ash { // Class for getting a user or the system TPM token info from cryptohome during // TPM token loading. @@ -124,6 +124,6 @@ base::WeakPtrFactory<TPMTokenInfoGetter> weak_factory_{this}; }; -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TPM_TPM_TOKEN_INFO_GETTER_H_
diff --git a/ash/components/tpm/tpm_token_info_getter_unittest.cc b/ash/components/tpm/tpm_token_info_getter_unittest.cc index f633665..7834eda 100644 --- a/ash/components/tpm/tpm_token_info_getter_unittest.cc +++ b/ash/components/tpm/tpm_token_info_getter_unittest.cc
@@ -25,9 +25,10 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h" +namespace ash { namespace { -using TpmTokenInfo = user_data_auth::TpmTokenInfo; +using ::user_data_auth::TpmTokenInfo; // On invocation, set |called| to true, and store the result |token_info| // to the |result|. @@ -179,30 +180,27 @@ class SystemTPMTokenInfoGetterTest : public testing::Test { public: - SystemTPMTokenInfoGetterTest() { - chromeos::TpmManagerClient::Get()->InitializeFake(); - } + SystemTPMTokenInfoGetterTest() { TpmManagerClient::Get()->InitializeFake(); } SystemTPMTokenInfoGetterTest(const SystemTPMTokenInfoGetterTest&) = delete; SystemTPMTokenInfoGetterTest& operator=(const SystemTPMTokenInfoGetterTest&) = delete; ~SystemTPMTokenInfoGetterTest() override { - chromeos::TpmManagerClient::Get()->Shutdown(); + TpmManagerClient::Get()->Shutdown(); } void SetUp() override { cryptohome_client_ = std::make_unique<TestCryptohomePkcs11Client>(EmptyAccountId()); - tpm_token_info_getter_ = - chromeos::TPMTokenInfoGetter::CreateForSystemToken( - cryptohome_client_.get(), - scoped_refptr<base::TaskRunner>(new FakeTaskRunner(&delays_))); + tpm_token_info_getter_ = TPMTokenInfoGetter::CreateForSystemToken( + cryptohome_client_.get(), + scoped_refptr<base::TaskRunner>(new FakeTaskRunner(&delays_))); } protected: std::unique_ptr<TestCryptohomePkcs11Client> cryptohome_client_; - std::unique_ptr<chromeos::TPMTokenInfoGetter> tpm_token_info_getter_; + std::unique_ptr<TPMTokenInfoGetter> tpm_token_info_getter_; std::vector<int64_t> delays_; private: @@ -213,7 +211,7 @@ public: UserTPMTokenInfoGetterTest() : account_id_(AccountId::FromUserEmail("user@gmail.com")) { - chromeos::TpmManagerClient::Get()->InitializeFake(); + TpmManagerClient::Get()->InitializeFake(); } UserTPMTokenInfoGetterTest(const UserTPMTokenInfoGetterTest&) = delete; @@ -221,13 +219,13 @@ delete; ~UserTPMTokenInfoGetterTest() override { - chromeos::TpmManagerClient::Get()->Shutdown(); + TpmManagerClient::Get()->Shutdown(); } void SetUp() override { cryptohome_client_ = std::make_unique<TestCryptohomePkcs11Client>(account_id_); - tpm_token_info_getter_ = chromeos::TPMTokenInfoGetter::CreateForUserToken( + tpm_token_info_getter_ = TPMTokenInfoGetter::CreateForUserToken( account_id_, cryptohome_client_.get(), scoped_refptr<base::TaskRunner>(new FakeTaskRunner(&delays_))); tpm_token_info_getter_->set_nss_slots_software_fallback_for_testing(false); @@ -235,7 +233,7 @@ protected: std::unique_ptr<TestCryptohomePkcs11Client> cryptohome_client_; - std::unique_ptr<chromeos::TPMTokenInfoGetter> tpm_token_info_getter_; + std::unique_ptr<TPMTokenInfoGetter> tpm_token_info_getter_; const AccountId account_id_; std::vector<int64_t> delays_; @@ -291,7 +289,7 @@ } TEST_F(SystemTPMTokenInfoGetterTest, TPMNotEnabled) { - chromeos::TpmManagerClient::Get() + TpmManagerClient::Get() ->GetTestInterface() ->mutable_nonsensitive_status_reply() ->set_is_enabled(false); @@ -307,11 +305,11 @@ } TEST_F(SystemTPMTokenInfoGetterTest, TPMNotOwnedSystemSlotFallbackEnabled) { - chromeos::TpmManagerClient::Get() + TpmManagerClient::Get() ->GetTestInterface() ->mutable_nonsensitive_status_reply() ->set_is_enabled(false); - chromeos::TpmManagerClient::Get() + TpmManagerClient::Get() ->GetTestInterface() ->mutable_nonsensitive_status_reply() ->set_is_owned(false); @@ -340,11 +338,11 @@ } TEST_F(SystemTPMTokenInfoGetterTest, TPMOwnedSystemSlotFallbackEnabled) { - chromeos::TpmManagerClient::Get() + TpmManagerClient::Get() ->GetTestInterface() ->mutable_nonsensitive_status_reply() ->set_is_enabled(true); - chromeos::TpmManagerClient::Get() + TpmManagerClient::Get() ->GetTestInterface() ->mutable_nonsensitive_status_reply() ->set_is_owned(true); @@ -373,7 +371,7 @@ } TEST_F(SystemTPMTokenInfoGetterTest, TpmEnabledCallFails) { - chromeos::TpmManagerClient::Get() + TpmManagerClient::Get() ->GetTestInterface() ->set_non_nonsensitive_status_dbus_error_count(1); @@ -459,7 +457,7 @@ } TEST_F(SystemTPMTokenInfoGetterTest, RetryDelaysIncreaseExponentially) { - chromeos::TpmManagerClient::Get() + TpmManagerClient::Get() ->GetTestInterface() ->set_non_nonsensitive_status_dbus_error_count(2); cryptohome_client_->set_get_tpm_token_info_failure_count(1); @@ -491,7 +489,7 @@ } TEST_F(SystemTPMTokenInfoGetterTest, RetryDelayBounded) { - chromeos::TpmManagerClient::Get() + TpmManagerClient::Get() ->GetTestInterface() ->set_non_nonsensitive_status_dbus_error_count(4); cryptohome_client_->set_get_tpm_token_info_failure_count(5); @@ -608,3 +606,4 @@ } } // namespace +} // namespace ash
diff --git a/ash/components/tpm/tpm_token_loader.cc b/ash/components/tpm/tpm_token_loader.cc index 402a91e..1fd722c9 100644 --- a/ash/components/tpm/tpm_token_loader.cc +++ b/ash/components/tpm/tpm_token_loader.cc
@@ -18,7 +18,7 @@ #include "base/threading/thread_task_runner_handle.h" #include "crypto/nss_util.h" -namespace chromeos { +namespace ash { namespace { @@ -198,4 +198,4 @@ MaybeStartTokenInitialization(); } -} // namespace chromeos +} // namespace ash
diff --git a/ash/components/tpm/tpm_token_loader.h b/ash/components/tpm/tpm_token_loader.h index 3b5ae250a..9ac8a06d 100644 --- a/ash/components/tpm/tpm_token_loader.h +++ b/ash/components/tpm/tpm_token_loader.h
@@ -23,7 +23,7 @@ class SequencedTaskRunner; } -namespace chromeos { +namespace ash { // This class is responsible for loading the TPM backed token for the system // slot when the user logs in. It is expected to be constructed on the UI thread @@ -136,11 +136,6 @@ base::WeakPtrFactory<TPMTokenLoader> weak_factory_{this}; }; -} // namespace chromeos - -// TODO(https://crbug.com/1164001): remove when //chromeos/test is moved to ash. -namespace ash { -using ::chromeos::TPMTokenLoader; -} +} // namespace ash #endif // ASH_COMPONENTS_TPM_TPM_TOKEN_LOADER_H_
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index 66f2636..0cbc0acc 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -318,7 +318,7 @@ // Enables upgrading the crostini container to debian bullseye. const base::Feature kCrostiniBullseyeUpgrade{"CrostiniBullseyeUpgrade", - base::FEATURE_DISABLED_BY_DEFAULT}; + base::FEATURE_ENABLED_BY_DEFAULT}; // Enables or disables Crostini Disk Resizing. const base::Feature kCrostiniDiskResizing{"CrostiniDiskResizing", @@ -1005,7 +1005,7 @@ // Controls whether to enable on-device grammar check service. const base::Feature kOnDeviceGrammarCheck{"OnDeviceGrammarCheck", - base::FEATURE_DISABLED_BY_DEFAULT}; + base::FEATURE_ENABLED_BY_DEFAULT}; // Whether the device supports on-device speech recognition. const base::Feature kOnDeviceSpeechRecognition{
diff --git a/ash/services/device_sync/cryptauth_device_activity_getter.h b/ash/services/device_sync/cryptauth_device_activity_getter.h index b5d571e..59b0a718 100644 --- a/ash/services/device_sync/cryptauth_device_activity_getter.h +++ b/ash/services/device_sync/cryptauth_device_activity_getter.h
@@ -24,7 +24,7 @@ class CryptAuthDeviceActivityGetter { public: using DeviceActivityStatusResult = - std::vector<mojom::DeviceActivityStatusPtr>; + std::vector<ash::device_sync::mojom::DeviceActivityStatusPtr>; using GetDeviceActivityStatusAttemptFinishedCallback = base::OnceCallback<void(DeviceActivityStatusResult)>; using GetDeviceActivityStatusAttemptErrorCallback =
diff --git a/ash/services/device_sync/cryptauth_device_activity_getter_impl.cc b/ash/services/device_sync/cryptauth_device_activity_getter_impl.cc index f67773b..4d2cd29b 100644 --- a/ash/services/device_sync/cryptauth_device_activity_getter_impl.cc +++ b/ash/services/device_sync/cryptauth_device_activity_getter_impl.cc
@@ -27,6 +27,9 @@ namespace { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + // TODO(https://crbug.com/933656): Use async execution time metrics to tune // these timeout values. constexpr base::TimeDelta kWaitingForGetDevicesActivityStatusResponseTimeout =
diff --git a/ash/services/device_sync/cryptauth_device_activity_getter_impl_unittest.cc b/ash/services/device_sync/cryptauth_device_activity_getter_impl_unittest.cc index 75c98cfe..0c3c853a 100644 --- a/ash/services/device_sync/cryptauth_device_activity_getter_impl_unittest.cc +++ b/ash/services/device_sync/cryptauth_device_activity_getter_impl_unittest.cc
@@ -36,6 +36,9 @@ namespace { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + const char kAccessTokenUsed[] = "access token used by CryptAuthClient"; const char kDeviceId[] = "device_id1"; const int kLastActivityTimeSecs = 111;
diff --git a/ash/services/device_sync/device_sync_base.cc b/ash/services/device_sync/device_sync_base.cc index d035fed..a8e8fd2 100644 --- a/ash/services/device_sync/device_sync_base.cc +++ b/ash/services/device_sync/device_sync_base.cc
@@ -13,6 +13,9 @@ namespace device_sync { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + DeviceSyncBase::DeviceSyncBase() { receivers_.set_disconnect_handler(base::BindRepeating( &DeviceSyncBase::OnDisconnection, base::Unretained(this)));
diff --git a/ash/services/device_sync/device_sync_base.h b/ash/services/device_sync/device_sync_base.h index aec6346..b9fcb97c 100644 --- a/ash/services/device_sync/device_sync_base.h +++ b/ash/services/device_sync/device_sync_base.h
@@ -16,20 +16,22 @@ namespace device_sync { // Base DeviceSync implementation. -class DeviceSyncBase : public mojom::DeviceSync { +class DeviceSyncBase : public ash::device_sync::mojom::DeviceSync { public: DeviceSyncBase(const DeviceSyncBase&) = delete; DeviceSyncBase& operator=(const DeviceSyncBase&) = delete; ~DeviceSyncBase() override; - // mojom::DeviceSync: - void AddObserver(mojo::PendingRemote<mojom::DeviceSyncObserver> observer, - AddObserverCallback callback) override; + // ash::device_sync::mojom::DeviceSync: + void AddObserver( + mojo::PendingRemote<ash::device_sync::mojom::DeviceSyncObserver> observer, + AddObserverCallback callback) override; // Binds a receiver to this implementation. Should be called each time that // the service receives a receiver. - void BindReceiver(mojo::PendingReceiver<mojom::DeviceSync> receiver); + void BindReceiver( + mojo::PendingReceiver<ash::device_sync::mojom::DeviceSync> receiver); void CloseAllReceivers(); @@ -46,8 +48,8 @@ private: void OnDisconnection(); - mojo::RemoteSet<mojom::DeviceSyncObserver> observers_; - mojo::ReceiverSet<mojom::DeviceSync> receivers_; + mojo::RemoteSet<ash::device_sync::mojom::DeviceSyncObserver> observers_; + mojo::ReceiverSet<ash::device_sync::mojom::DeviceSync> receivers_; }; } // namespace device_sync
diff --git a/ash/services/device_sync/device_sync_impl.cc b/ash/services/device_sync/device_sync_impl.cc index ae019da..70a1e3f 100644 --- a/ash/services/device_sync/device_sync_impl.cc +++ b/ash/services/device_sync/device_sync_impl.cc
@@ -52,6 +52,9 @@ namespace { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + constexpr base::TimeDelta kSetFeatureEnabledTimeout = base::Seconds(5); // Timeout value for asynchronous operation.
diff --git a/ash/services/device_sync/device_sync_impl.h b/ash/services/device_sync/device_sync_impl.h index f0bfae5..ba110a17 100644 --- a/ash/services/device_sync/device_sync_impl.h +++ b/ash/services/device_sync/device_sync_impl.h
@@ -107,7 +107,7 @@ ~DeviceSyncImpl() override; protected: - // mojom::DeviceSync: + // ash::device_sync::mojom::DeviceSync: void ForceEnrollmentNow(ForceEnrollmentNowCallback callback) override; void ForceSyncNow(ForceSyncNowCallback callback) override; void GetLocalDeviceMetadata(GetLocalDeviceMetadataCallback callback) override; @@ -167,7 +167,7 @@ // feature has been set according to the parameters used). bool IsFulfilled() const; - void InvokeCallback(mojom::NetworkRequestResult result); + void InvokeCallback(ash::device_sync::mojom::NetworkRequestResult result); multidevice::SoftwareFeature software_feature() const { return software_feature_; @@ -197,7 +197,7 @@ // agrees with the device data returned by CryptAuth. bool IsFulfilled() const; - void InvokeCallback(mojom::NetworkRequestResult result); + void InvokeCallback(ash::device_sync::mojom::NetworkRequestResult result); private: std::string device_instance_id_; @@ -249,14 +249,15 @@ void OnSetFeatureStatusError(const base::UnguessableToken& request_id, NetworkRequestError error); void OnFindEligibleDevicesSuccess( - base::OnceCallback<void(mojom::NetworkRequestResult, - mojom::FindEligibleDevicesResponsePtr)> callback, + base::OnceCallback<void( + ash::device_sync::mojom::NetworkRequestResult, + ash::device_sync::mojom::FindEligibleDevicesResponsePtr)> callback, const std::vector<cryptauth::ExternalDeviceInfo>& eligible_devices, const std::vector<cryptauth::IneligibleDevice>& ineligible_devices); void OnFindEligibleDevicesError( - const base::OnceCallback<void(mojom::NetworkRequestResult, - mojom::FindEligibleDevicesResponsePtr)> - callback, + const base::OnceCallback<void( + ash::device_sync::mojom::NetworkRequestResult, + ash::device_sync::mojom::FindEligibleDevicesResponsePtr)> callback, NetworkRequestError error); void OnNotifyDevicesSuccess(const base::UnguessableToken& request_id); void OnNotifyDevicesError(const base::UnguessableToken& request_id,
diff --git a/ash/services/device_sync/device_sync_service_unittest.cc b/ash/services/device_sync/device_sync_service_unittest.cc index 5245a85..0d4d279 100644 --- a/ash/services/device_sync/device_sync_service_unittest.cc +++ b/ash/services/device_sync/device_sync_service_unittest.cc
@@ -69,6 +69,9 @@ namespace { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + const char kTestEmail[] = "example@gmail.com"; const char kTestGcmDeviceInfoLongDeviceId[] = "longDeviceId"; const char kTestCryptAuthGCMRegistrationId[] = "cryptAuthRegistrationId";
diff --git a/ash/services/device_sync/device_sync_type_converters.cc b/ash/services/device_sync/device_sync_type_converters.cc index 37635330..bb0717b 100644 --- a/ash/services/device_sync/device_sync_type_converters.cc +++ b/ash/services/device_sync/device_sync_type_converters.cc
@@ -7,29 +7,27 @@ namespace mojo { // static -chromeos::device_sync::mojom::NetworkRequestResult -TypeConverter<chromeos::device_sync::mojom::NetworkRequestResult, +ash::device_sync::mojom::NetworkRequestResult +TypeConverter<ash::device_sync::mojom::NetworkRequestResult, chromeos::device_sync::NetworkRequestError>:: Convert(chromeos::device_sync::NetworkRequestError type) { switch (type) { case chromeos::device_sync::NetworkRequestError::kOffline: - return chromeos::device_sync::mojom::NetworkRequestResult::kOffline; + return ash::device_sync::mojom::NetworkRequestResult::kOffline; case chromeos::device_sync::NetworkRequestError::kEndpointNotFound: - return chromeos::device_sync::mojom::NetworkRequestResult:: - kEndpointNotFound; + return ash::device_sync::mojom::NetworkRequestResult::kEndpointNotFound; case chromeos::device_sync::NetworkRequestError::kAuthenticationError: - return chromeos::device_sync::mojom::NetworkRequestResult:: + return ash::device_sync::mojom::NetworkRequestResult:: kAuthenticationError; case chromeos::device_sync::NetworkRequestError::kBadRequest: - return chromeos::device_sync::mojom::NetworkRequestResult::kBadRequest; + return ash::device_sync::mojom::NetworkRequestResult::kBadRequest; case chromeos::device_sync::NetworkRequestError::kResponseMalformed: - return chromeos::device_sync::mojom::NetworkRequestResult:: - kResponseMalformed; + return ash::device_sync::mojom::NetworkRequestResult::kResponseMalformed; case chromeos::device_sync::NetworkRequestError::kInternalServerError: - return chromeos::device_sync::mojom::NetworkRequestResult:: + return ash::device_sync::mojom::NetworkRequestResult:: kInternalServerError; case chromeos::device_sync::NetworkRequestError::kUnknown: - return chromeos::device_sync::mojom::NetworkRequestResult::kUnknown; + return ash::device_sync::mojom::NetworkRequestResult::kUnknown; } }
diff --git a/ash/services/device_sync/device_sync_type_converters.h b/ash/services/device_sync/device_sync_type_converters.h index fe9ecbce..6bdb90f 100644 --- a/ash/services/device_sync/device_sync_type_converters.h +++ b/ash/services/device_sync/device_sync_type_converters.h
@@ -12,9 +12,9 @@ namespace mojo { template <> -struct TypeConverter<chromeos::device_sync::mojom::NetworkRequestResult, +struct TypeConverter<ash::device_sync::mojom::NetworkRequestResult, chromeos::device_sync::NetworkRequestError> { - static chromeos::device_sync::mojom::NetworkRequestResult Convert( + static ash::device_sync::mojom::NetworkRequestResult Convert( chromeos::device_sync::NetworkRequestError type); };
diff --git a/ash/services/device_sync/fake_device_sync.cc b/ash/services/device_sync/fake_device_sync.cc index 2b1d4ba..553ed92 100644 --- a/ash/services/device_sync/fake_device_sync.cc +++ b/ash/services/device_sync/fake_device_sync.cc
@@ -14,6 +14,9 @@ namespace device_sync { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + FakeDeviceSync::FakeDeviceSync() : DeviceSyncBase() {} FakeDeviceSync::~FakeDeviceSync() = default;
diff --git a/ash/services/device_sync/fake_device_sync.h b/ash/services/device_sync/fake_device_sync.h index 272bebe..d4359f07 100644 --- a/ash/services/device_sync/fake_device_sync.h +++ b/ash/services/device_sync/fake_device_sync.h
@@ -43,22 +43,25 @@ const absl::optional<std::vector<multidevice::RemoteDevice>>& remote_devices); void InvokePendingSetSoftwareFeatureStateCallback( - mojom::NetworkRequestResult result_code); + ash::device_sync::mojom::NetworkRequestResult result_code); void InvokePendingSetFeatureStatusCallback( - mojom::NetworkRequestResult result_code); + ash::device_sync::mojom::NetworkRequestResult result_code); void InvokePendingFindEligibleDevicesCallback( - mojom::NetworkRequestResult result_code, - mojom::FindEligibleDevicesResponsePtr find_eligible_devices_response_ptr); + ash::device_sync::mojom::NetworkRequestResult result_code, + ash::device_sync::mojom::FindEligibleDevicesResponsePtr + find_eligible_devices_response_ptr); void InvokePendingNotifyDevicesCallback( - mojom::NetworkRequestResult result_code); + ash::device_sync::mojom::NetworkRequestResult result_code); void InvokePendingGetDevicesActivityStatusCallback( - mojom::NetworkRequestResult result_code, - absl::optional<std::vector<mojom::DeviceActivityStatusPtr>> + ash::device_sync::mojom::NetworkRequestResult result_code, + absl::optional< + std::vector<ash::device_sync::mojom::DeviceActivityStatusPtr>> get_devices_activity_status_response); - void InvokePendingGetDebugInfoCallback(mojom::DebugInfoPtr debug_info_ptr); + void InvokePendingGetDebugInfoCallback( + ash::device_sync::mojom::DebugInfoPtr debug_info_ptr); protected: - // mojom::DeviceSync: + // ash::device_sync::mojom::DeviceSync: void ForceEnrollmentNow(ForceEnrollmentNowCallback callback) override; void ForceSyncNow(ForceSyncNowCallback callback) override; void GetLocalDeviceMetadata(GetLocalDeviceMetadataCallback callback) override;
diff --git a/ash/services/device_sync/fake_device_sync_observer.cc b/ash/services/device_sync/fake_device_sync_observer.cc index e4f39369..f64be118 100644 --- a/ash/services/device_sync/fake_device_sync_observer.cc +++ b/ash/services/device_sync/fake_device_sync_observer.cc
@@ -8,6 +8,9 @@ namespace device_sync { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + FakeDeviceSyncObserver::FakeDeviceSyncObserver() = default; FakeDeviceSyncObserver::~FakeDeviceSyncObserver() = default;
diff --git a/ash/services/device_sync/fake_device_sync_observer.h b/ash/services/device_sync/fake_device_sync_observer.h index a7fcad0..73aaaf1c 100644 --- a/ash/services/device_sync/fake_device_sync_observer.h +++ b/ash/services/device_sync/fake_device_sync_observer.h
@@ -14,7 +14,8 @@ namespace device_sync { // Fake DeviceSyncObserver implementation for tests. -class FakeDeviceSyncObserver : public mojom::DeviceSyncObserver { +class FakeDeviceSyncObserver + : public ash::device_sync::mojom::DeviceSyncObserver { public: FakeDeviceSyncObserver(); @@ -23,12 +24,13 @@ ~FakeDeviceSyncObserver() override; - mojo::PendingRemote<mojom::DeviceSyncObserver> GenerateRemote(); + mojo::PendingRemote<ash::device_sync::mojom::DeviceSyncObserver> + GenerateRemote(); size_t num_enrollment_events() { return num_enrollment_events_; } size_t num_sync_events() { return num_sync_events_; } - // mojom::DeviceSyncObserver: + // ash::device_sync::mojom::DeviceSyncObserver: void OnEnrollmentFinished() override; void OnNewDevicesSynced() override; @@ -36,7 +38,7 @@ size_t num_enrollment_events_ = 0u; size_t num_sync_events_ = 0u; - mojo::ReceiverSet<mojom::DeviceSyncObserver> receivers_; + mojo::ReceiverSet<ash::device_sync::mojom::DeviceSyncObserver> receivers_; }; } // namespace device_sync
diff --git a/ash/services/device_sync/public/cpp/device_sync_client.cc b/ash/services/device_sync/public/cpp/device_sync_client.cc index 57ea220..b000cad 100644 --- a/ash/services/device_sync/public/cpp/device_sync_client.cc +++ b/ash/services/device_sync/public/cpp/device_sync_client.cc
@@ -10,6 +10,9 @@ namespace device_sync { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + DeviceSyncClient::DeviceSyncClient() = default; DeviceSyncClient::~DeviceSyncClient() = default;
diff --git a/ash/services/device_sync/public/cpp/device_sync_client.h b/ash/services/device_sync/public/cpp/device_sync_client.h index 0274d6fa..5d1e969 100644 --- a/ash/services/device_sync/public/cpp/device_sync_client.h +++ b/ash/services/device_sync/public/cpp/device_sync_client.h
@@ -48,7 +48,7 @@ }; using FindEligibleDevicesCallback = - base::OnceCallback<void(mojom::NetworkRequestResult, + base::OnceCallback<void(ash::device_sync::mojom::NetworkRequestResult, multidevice::RemoteDeviceRefList, multidevice::RemoteDeviceRefList)>; @@ -64,7 +64,8 @@ virtual void Initialize(scoped_refptr<base::TaskRunner> task_runner) {} // Returns the DeviceSync mojo remote. - virtual mojo::Remote<mojom::DeviceSync>* GetDeviceSyncRemote(); + virtual mojo::Remote<ash::device_sync::mojom::DeviceSync>* + GetDeviceSyncRemote(); void AddObserver(Observer* observer); void RemoveObserver(Observer* observer); @@ -75,9 +76,10 @@ bool is_ready() { return is_ready_; } virtual void ForceEnrollmentNow( - mojom::DeviceSync::ForceEnrollmentNowCallback callback) = 0; + ash::device_sync::mojom::DeviceSync::ForceEnrollmentNowCallback + callback) = 0; virtual void ForceSyncNow( - mojom::DeviceSync::ForceSyncNowCallback callback) = 0; + ash::device_sync::mojom::DeviceSync::ForceSyncNowCallback callback) = 0; virtual multidevice::RemoteDeviceRefList GetSyncedDevices() = 0; virtual absl::optional<multidevice::RemoteDeviceRef> GetLocalDeviceMetadata() = 0; @@ -90,12 +92,14 @@ multidevice::SoftwareFeature software_feature, bool enabled, bool is_exclusive, - mojom::DeviceSync::SetSoftwareFeatureStateCallback callback) = 0; + ash::device_sync::mojom::DeviceSync::SetSoftwareFeatureStateCallback + callback) = 0; virtual void SetFeatureStatus( const std::string& device_instance_id, multidevice::SoftwareFeature feature, FeatureStatusChange status_change, - mojom::DeviceSync::SetFeatureStatusCallback callback) = 0; + ash::device_sync::mojom::DeviceSync::SetFeatureStatusCallback + callback) = 0; virtual void FindEligibleDevices( multidevice::SoftwareFeature software_feature, FindEligibleDevicesCallback callback) = 0; @@ -103,11 +107,12 @@ const std::vector<std::string>& device_instance_ids, cryptauthv2::TargetService target_service, multidevice::SoftwareFeature feature, - mojom::DeviceSync::NotifyDevicesCallback callback) = 0; + ash::device_sync::mojom::DeviceSync::NotifyDevicesCallback callback) = 0; virtual void GetDevicesActivityStatus( - mojom::DeviceSync::GetDevicesActivityStatusCallback callback) = 0; + ash::device_sync::mojom::DeviceSync::GetDevicesActivityStatusCallback + callback) = 0; virtual void GetDebugInfo( - mojom::DeviceSync::GetDebugInfoCallback callback) = 0; + ash::device_sync::mojom::DeviceSync::GetDebugInfoCallback callback) = 0; protected: void NotifyReady();
diff --git a/ash/services/device_sync/public/cpp/device_sync_client_impl.cc b/ash/services/device_sync/public/cpp/device_sync_client_impl.cc index ece8d9a..8d81be2 100644 --- a/ash/services/device_sync/public/cpp/device_sync_client_impl.cc +++ b/ash/services/device_sync/public/cpp/device_sync_client_impl.cc
@@ -23,6 +23,9 @@ namespace { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + bool IsValidInstanceId(const std::string& instance_id) { if (instance_id.empty()) { PA_LOG(ERROR) << "Instance ID cannot be empty.";
diff --git a/ash/services/device_sync/public/cpp/device_sync_client_impl.h b/ash/services/device_sync/public/cpp/device_sync_client_impl.h index e17ce0e..571e5ad 100644 --- a/ash/services/device_sync/public/cpp/device_sync_client_impl.h +++ b/ash/services/device_sync/public/cpp/device_sync_client_impl.h
@@ -36,8 +36,9 @@ namespace device_sync { // Concrete implementation of DeviceSyncClient. -class DeviceSyncClientImpl : public DeviceSyncClient, - public mojom::DeviceSyncObserver { +class DeviceSyncClientImpl + : public DeviceSyncClient, + public ash::device_sync::mojom::DeviceSyncObserver { public: class Factory { public: @@ -60,12 +61,15 @@ ~DeviceSyncClientImpl() override; void Initialize(scoped_refptr<base::TaskRunner> task_runner) override; - mojo::Remote<mojom::DeviceSync>* GetDeviceSyncRemote() override; + mojo::Remote<ash::device_sync::mojom::DeviceSync>* GetDeviceSyncRemote() + override; // DeviceSyncClient: void ForceEnrollmentNow( - mojom::DeviceSync::ForceEnrollmentNowCallback callback) override; - void ForceSyncNow(mojom::DeviceSync::ForceSyncNowCallback callback) override; + ash::device_sync::mojom::DeviceSync::ForceEnrollmentNowCallback callback) + override; + void ForceSyncNow(ash::device_sync::mojom::DeviceSync::ForceSyncNowCallback + callback) override; multidevice::RemoteDeviceRefList GetSyncedDevices() override; absl::optional<multidevice::RemoteDeviceRef> GetLocalDeviceMetadata() override; @@ -74,24 +78,28 @@ multidevice::SoftwareFeature software_feature, bool enabled, bool is_exclusive, - mojom::DeviceSync::SetSoftwareFeatureStateCallback callback) override; + ash::device_sync::mojom::DeviceSync::SetSoftwareFeatureStateCallback + callback) override; void SetFeatureStatus( const std::string& device_instance_id, multidevice::SoftwareFeature feature, FeatureStatusChange status_change, - mojom::DeviceSync::SetFeatureStatusCallback callback) override; + ash::device_sync::mojom::DeviceSync::SetFeatureStatusCallback callback) + override; void FindEligibleDevices(multidevice::SoftwareFeature software_feature, FindEligibleDevicesCallback callback) override; - void NotifyDevices( - const std::vector<std::string>& device_instance_ids, - cryptauthv2::TargetService target_service, - multidevice::SoftwareFeature feature, - mojom::DeviceSync::NotifyDevicesCallback callback) override; + void NotifyDevices(const std::vector<std::string>& device_instance_ids, + cryptauthv2::TargetService target_service, + multidevice::SoftwareFeature feature, + ash::device_sync::mojom::DeviceSync::NotifyDevicesCallback + callback) override; void GetDevicesActivityStatus( - mojom::DeviceSync::GetDevicesActivityStatusCallback callback) override; - void GetDebugInfo(mojom::DeviceSync::GetDebugInfoCallback callback) override; + ash::device_sync::mojom::DeviceSync::GetDevicesActivityStatusCallback + callback) override; + void GetDebugInfo(ash::device_sync::mojom::DeviceSync::GetDebugInfoCallback + callback) override; - // mojom::DeviceSyncObserver: + // ash::device_sync::mojom::DeviceSyncObserver: void OnEnrollmentFinished() override; void OnNewDevicesSynced() override; @@ -110,15 +118,17 @@ const absl::optional<multidevice::RemoteDevice>& local_device_metadata); void OnFindEligibleDevicesCompleted( FindEligibleDevicesCallback callback, - mojom::NetworkRequestResult result_code, - mojom::FindEligibleDevicesResponsePtr response); + ash::device_sync::mojom::NetworkRequestResult result_code, + ash::device_sync::mojom::FindEligibleDevicesResponsePtr response); - mojo::PendingRemote<mojom::DeviceSyncObserver> GenerateRemote(); + mojo::PendingRemote<ash::device_sync::mojom::DeviceSyncObserver> + GenerateRemote(); void FlushForTesting(); - mojo::Remote<mojom::DeviceSync> device_sync_; - mojo::Receiver<mojom::DeviceSyncObserver> observer_receiver_{this}; + mojo::Remote<ash::device_sync::mojom::DeviceSync> device_sync_; + mojo::Receiver<ash::device_sync::mojom::DeviceSyncObserver> + observer_receiver_{this}; std::unique_ptr<multidevice::ExpiringRemoteDeviceCache> expiring_device_cache_;
diff --git a/ash/services/device_sync/public/cpp/device_sync_client_impl_unittest.cc b/ash/services/device_sync/public/cpp/device_sync_client_impl_unittest.cc index eb3f0b53..8cd1de6 100644 --- a/ash/services/device_sync/public/cpp/device_sync_client_impl_unittest.cc +++ b/ash/services/device_sync/public/cpp/device_sync_client_impl_unittest.cc
@@ -41,6 +41,9 @@ namespace { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + const char kTestEmail[] = "example@gmail.com"; const char kTestGcmDeviceInfoLongDeviceId[] = "longDeviceId"; const size_t kNumTestDevices = 5u;
diff --git a/ash/services/device_sync/public/cpp/fake_device_sync_client.cc b/ash/services/device_sync/public/cpp/fake_device_sync_client.cc index ec796c1..34242a2 100644 --- a/ash/services/device_sync/public/cpp/fake_device_sync_client.cc +++ b/ash/services/device_sync/public/cpp/fake_device_sync_client.cc
@@ -9,6 +9,9 @@ namespace chromeos { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + namespace device_sync { FakeDeviceSyncClient::SetSoftwareFeatureStateInputs:: SetSoftwareFeatureStateInputs(
diff --git a/ash/services/device_sync/public/cpp/fake_device_sync_client.h b/ash/services/device_sync/public/cpp/fake_device_sync_client.h index abfc085..8bff474 100644 --- a/ash/services/device_sync/public/cpp/fake_device_sync_client.h +++ b/ash/services/device_sync/public/cpp/fake_device_sync_client.h
@@ -32,7 +32,8 @@ multidevice::SoftwareFeature software_feature, bool enabled, bool is_exclusive, - mojom::DeviceSync::SetSoftwareFeatureStateCallback callback); + ash::device_sync::mojom::DeviceSync::SetSoftwareFeatureStateCallback + callback); SetSoftwareFeatureStateInputs(SetSoftwareFeatureStateInputs&&); ~SetSoftwareFeatureStateInputs(); @@ -40,7 +41,8 @@ const multidevice::SoftwareFeature software_feature; const bool enabled; const bool is_exclusive; - mojom::DeviceSync::SetSoftwareFeatureStateCallback callback; + ash::device_sync::mojom::DeviceSync::SetSoftwareFeatureStateCallback + callback; }; struct SetFeatureStatusInputs { @@ -48,14 +50,14 @@ const std::string& device_instance_id, multidevice::SoftwareFeature feature, FeatureStatusChange status_change, - mojom::DeviceSync::SetFeatureStatusCallback callback); + ash::device_sync::mojom::DeviceSync::SetFeatureStatusCallback callback); SetFeatureStatusInputs(SetFeatureStatusInputs&&); ~SetFeatureStatusInputs(); const std::string device_instance_id; const multidevice::SoftwareFeature feature; const FeatureStatusChange status_change; - mojom::DeviceSync::SetFeatureStatusCallback callback; + ash::device_sync::mojom::DeviceSync::SetFeatureStatusCallback callback; }; struct FindEligibleDevicesInputs { @@ -69,17 +71,18 @@ }; struct NotifyDevicesInputs { - NotifyDevicesInputs(const std::vector<std::string>& device_instance_ids, - cryptauthv2::TargetService target_service, - multidevice::SoftwareFeature feature, - mojom::DeviceSync::NotifyDevicesCallback callback); + NotifyDevicesInputs( + const std::vector<std::string>& device_instance_ids, + cryptauthv2::TargetService target_service, + multidevice::SoftwareFeature feature, + ash::device_sync::mojom::DeviceSync::NotifyDevicesCallback callback); NotifyDevicesInputs(NotifyDevicesInputs&&); ~NotifyDevicesInputs(); const std::vector<std::string> device_instance_ids; const cryptauthv2::TargetService target_service; const multidevice::SoftwareFeature feature; - mojom::DeviceSync::NotifyDevicesCallback callback; + ash::device_sync::mojom::DeviceSync::NotifyDevicesCallback callback; }; FakeDeviceSyncClient(); @@ -120,20 +123,22 @@ void InvokePendingForceEnrollmentNowCallback(bool success); void InvokePendingForceSyncNowCallback(bool success); void InvokePendingSetSoftwareFeatureStateCallback( - mojom::NetworkRequestResult result_code); + ash::device_sync::mojom::NetworkRequestResult result_code); void InvokePendingSetFeatureStatusCallback( - mojom::NetworkRequestResult result_code); + ash::device_sync::mojom::NetworkRequestResult result_code); void InvokePendingFindEligibleDevicesCallback( - mojom::NetworkRequestResult result_code, + ash::device_sync::mojom::NetworkRequestResult result_code, multidevice::RemoteDeviceRefList eligible_devices, multidevice::RemoteDeviceRefList ineligible_devices); void InvokePendingNotifyDevicesCallback( - mojom::NetworkRequestResult result_code); + ash::device_sync::mojom::NetworkRequestResult result_code); void InvokePendingGetDevicesActivityStatusCallback( - mojom::NetworkRequestResult result_code, - absl::optional<std::vector<mojom::DeviceActivityStatusPtr>> + ash::device_sync::mojom::NetworkRequestResult result_code, + absl::optional< + std::vector<ash::device_sync::mojom::DeviceActivityStatusPtr>> device_activity_status); - void InvokePendingGetDebugInfoCallback(mojom::DebugInfoPtr debug_info_ptr); + void InvokePendingGetDebugInfoCallback( + ash::device_sync::mojom::DebugInfoPtr debug_info_ptr); void set_synced_devices(multidevice::RemoteDeviceRefList synced_devices) { synced_devices_ = synced_devices; @@ -151,8 +156,10 @@ private: // DeviceSyncClient: void ForceEnrollmentNow( - mojom::DeviceSync::ForceEnrollmentNowCallback callback) override; - void ForceSyncNow(mojom::DeviceSync::ForceSyncNowCallback callback) override; + ash::device_sync::mojom::DeviceSync::ForceEnrollmentNowCallback callback) + override; + void ForceSyncNow(ash::device_sync::mojom::DeviceSync::ForceSyncNowCallback + callback) override; multidevice::RemoteDeviceRefList GetSyncedDevices() override; absl::optional<multidevice::RemoteDeviceRef> GetLocalDeviceMetadata() override; @@ -161,29 +168,35 @@ multidevice::SoftwareFeature software_feature, bool enabled, bool is_exclusive, - mojom::DeviceSync::SetSoftwareFeatureStateCallback callback) override; + ash::device_sync::mojom::DeviceSync::SetSoftwareFeatureStateCallback + callback) override; void SetFeatureStatus( const std::string& device_instance_id, multidevice::SoftwareFeature feature, FeatureStatusChange status_change, - mojom::DeviceSync::SetFeatureStatusCallback callback) override; + ash::device_sync::mojom::DeviceSync::SetFeatureStatusCallback callback) + override; void FindEligibleDevices(multidevice::SoftwareFeature software_feature, FindEligibleDevicesCallback callback) override; - void NotifyDevices( - const std::vector<std::string>& device_instance_ids, - cryptauthv2::TargetService target_service, - multidevice::SoftwareFeature feature, - mojom::DeviceSync::NotifyDevicesCallback callback) override; + void NotifyDevices(const std::vector<std::string>& device_instance_ids, + cryptauthv2::TargetService target_service, + multidevice::SoftwareFeature feature, + ash::device_sync::mojom::DeviceSync::NotifyDevicesCallback + callback) override; void GetDevicesActivityStatus( - mojom::DeviceSync::GetDevicesActivityStatusCallback callback) override; - void GetDebugInfo(mojom::DeviceSync::GetDebugInfoCallback callback) override; + ash::device_sync::mojom::DeviceSync::GetDevicesActivityStatusCallback + callback) override; + void GetDebugInfo(ash::device_sync::mojom::DeviceSync::GetDebugInfoCallback + callback) override; multidevice::RemoteDeviceRefList synced_devices_; absl::optional<multidevice::RemoteDeviceRef> local_device_metadata_; - base::circular_deque<mojom::DeviceSync::ForceEnrollmentNowCallback> + base::circular_deque< + ash::device_sync::mojom::DeviceSync::ForceEnrollmentNowCallback> force_enrollment_now_callback_queue_; - base::circular_deque<mojom::DeviceSync::ForceSyncNowCallback> + base::circular_deque< + ash::device_sync::mojom::DeviceSync::ForceSyncNowCallback> force_sync_now_callback_queue_; base::circular_deque<SetSoftwareFeatureStateInputs> set_software_feature_state_inputs_queue_; @@ -191,9 +204,11 @@ base::circular_deque<FindEligibleDevicesInputs> find_eligible_devices_inputs_queue_; base::circular_deque<NotifyDevicesInputs> notify_devices_inputs_queue_; - base::circular_deque<mojom::DeviceSync::GetDevicesActivityStatusCallback> + base::circular_deque< + ash::device_sync::mojom::DeviceSync::GetDevicesActivityStatusCallback> get_devices_activity_status_callback_queue_; - base::circular_deque<mojom::DeviceSync::GetDebugInfoCallback> + base::circular_deque< + ash::device_sync::mojom::DeviceSync::GetDebugInfoCallback> get_debug_info_callback_queue_; };
diff --git a/ash/services/device_sync/public/mojom/BUILD.gn b/ash/services/device_sync/public/mojom/BUILD.gn index adbc7ec..232e88ba 100644 --- a/ash/services/device_sync/public/mojom/BUILD.gn +++ b/ash/services/device_sync/public/mojom/BUILD.gn
@@ -19,15 +19,15 @@ { types = [ { - mojom = "chromeos.device_sync.mojom.ConnectivityStatus" + mojom = "ash.device_sync.mojom.ConnectivityStatus" cpp = "cryptauthv2::ConnectivityStatus" }, { - mojom = "chromeos.device_sync.mojom.FeatureStatusChange" + mojom = "ash.device_sync.mojom.FeatureStatusChange" cpp = "chromeos::device_sync::FeatureStatusChange" }, { - mojom = "chromeos.device_sync.mojom.CryptAuthService" + mojom = "ash.device_sync.mojom.CryptAuthService" cpp = "cryptauthv2::TargetService" }, ]
diff --git a/ash/services/device_sync/public/mojom/device_sync.mojom b/ash/services/device_sync/public/mojom/device_sync.mojom index 366d8ab..abff3d3 100644 --- a/ash/services/device_sync/public/mojom/device_sync.mojom +++ b/ash/services/device_sync/public/mojom/device_sync.mojom
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -module chromeos.device_sync.mojom; +module ash.device_sync.mojom; import "ash/components/multidevice/mojom/multidevice_types.mojom"; import "mojo/public/mojom/base/time.mojom";
diff --git a/ash/services/device_sync/public/mojom/device_sync_mojom_traits.cc b/ash/services/device_sync/public/mojom/device_sync_mojom_traits.cc index 1ba1791..059d55fe 100644 --- a/ash/services/device_sync/public/mojom/device_sync_mojom_traits.cc +++ b/ash/services/device_sync/public/mojom/device_sync_mojom_traits.cc
@@ -6,40 +6,38 @@ namespace mojo { -chromeos::device_sync::mojom::ConnectivityStatus EnumTraits< - chromeos::device_sync::mojom::ConnectivityStatus, +ash::device_sync::mojom::ConnectivityStatus EnumTraits< + ash::device_sync::mojom::ConnectivityStatus, cryptauthv2::ConnectivityStatus>::ToMojom(cryptauthv2::ConnectivityStatus input) { switch (input) { case cryptauthv2::ConnectivityStatus::ONLINE: - return chromeos::device_sync::mojom::ConnectivityStatus::kOnline; + return ash::device_sync::mojom::ConnectivityStatus::kOnline; case cryptauthv2::ConnectivityStatus::UNKNOWN_CONNECTIVITY: - return chromeos::device_sync::mojom::ConnectivityStatus:: - kUnknownConnectivity; + return ash::device_sync::mojom::ConnectivityStatus::kUnknownConnectivity; case cryptauthv2::ConnectivityStatus::OFFLINE: - return chromeos::device_sync::mojom::ConnectivityStatus::kOffline; + return ash::device_sync::mojom::ConnectivityStatus::kOffline; case cryptauthv2::ConnectivityStatus:: ConnectivityStatus_INT_MIN_SENTINEL_DO_NOT_USE_: case cryptauthv2::ConnectivityStatus:: ConnectivityStatus_INT_MAX_SENTINEL_DO_NOT_USE_: NOTREACHED(); - return chromeos::device_sync::mojom::ConnectivityStatus:: - kUnknownConnectivity; + return ash::device_sync::mojom::ConnectivityStatus::kUnknownConnectivity; } } -bool EnumTraits<chromeos::device_sync::mojom::ConnectivityStatus, +bool EnumTraits<ash::device_sync::mojom::ConnectivityStatus, cryptauthv2::ConnectivityStatus>:: - FromMojom(chromeos::device_sync::mojom::ConnectivityStatus input, + FromMojom(ash::device_sync::mojom::ConnectivityStatus input, cryptauthv2::ConnectivityStatus* out) { switch (input) { - case chromeos::device_sync::mojom::ConnectivityStatus::kOnline: + case ash::device_sync::mojom::ConnectivityStatus::kOnline: *out = cryptauthv2::ConnectivityStatus::ONLINE; return true; - case chromeos::device_sync::mojom::ConnectivityStatus::kOffline: + case ash::device_sync::mojom::ConnectivityStatus::kOffline: *out = cryptauthv2::ConnectivityStatus::OFFLINE; return true; - case chromeos::device_sync::mojom::ConnectivityStatus::kUnknownConnectivity: + case ash::device_sync::mojom::ConnectivityStatus::kUnknownConnectivity: *out = cryptauthv2::ConnectivityStatus::UNKNOWN_CONNECTIVITY; return true; } @@ -48,35 +46,33 @@ return false; } -chromeos::device_sync::mojom::FeatureStatusChange -EnumTraits<chromeos::device_sync::mojom::FeatureStatusChange, +ash::device_sync::mojom::FeatureStatusChange +EnumTraits<ash::device_sync::mojom::FeatureStatusChange, chromeos::device_sync::FeatureStatusChange>:: ToMojom(chromeos::device_sync::FeatureStatusChange input) { switch (input) { case chromeos::device_sync::FeatureStatusChange::kEnableExclusively: - return chromeos::device_sync::mojom::FeatureStatusChange:: - kEnableExclusively; + return ash::device_sync::mojom::FeatureStatusChange::kEnableExclusively; case chromeos::device_sync::FeatureStatusChange::kEnableNonExclusively: - return chromeos::device_sync::mojom::FeatureStatusChange:: + return ash::device_sync::mojom::FeatureStatusChange:: kEnableNonExclusively; case chromeos::device_sync::FeatureStatusChange::kDisable: - return chromeos::device_sync::mojom::FeatureStatusChange::kDisable; + return ash::device_sync::mojom::FeatureStatusChange::kDisable; } } -bool EnumTraits<chromeos::device_sync::mojom::FeatureStatusChange, +bool EnumTraits<ash::device_sync::mojom::FeatureStatusChange, chromeos::device_sync::FeatureStatusChange>:: - FromMojom(chromeos::device_sync::mojom::FeatureStatusChange input, + FromMojom(ash::device_sync::mojom::FeatureStatusChange input, chromeos::device_sync::FeatureStatusChange* out) { switch (input) { - case chromeos::device_sync::mojom::FeatureStatusChange::kEnableExclusively: + case ash::device_sync::mojom::FeatureStatusChange::kEnableExclusively: *out = chromeos::device_sync::FeatureStatusChange::kEnableExclusively; return true; - case chromeos::device_sync::mojom::FeatureStatusChange:: - kEnableNonExclusively: + case ash::device_sync::mojom::FeatureStatusChange::kEnableNonExclusively: *out = chromeos::device_sync::FeatureStatusChange::kEnableNonExclusively; return true; - case chromeos::device_sync::mojom::FeatureStatusChange::kDisable: + case ash::device_sync::mojom::FeatureStatusChange::kDisable: *out = chromeos::device_sync::FeatureStatusChange::kDisable; return true; } @@ -85,33 +81,33 @@ return false; } -chromeos::device_sync::mojom::CryptAuthService EnumTraits< - chromeos::device_sync::mojom::CryptAuthService, +ash::device_sync::mojom::CryptAuthService EnumTraits< + ash::device_sync::mojom::CryptAuthService, cryptauthv2::TargetService>::ToMojom(cryptauthv2::TargetService input) { switch (input) { case cryptauthv2::TargetService::ENROLLMENT: - return chromeos::device_sync::mojom::CryptAuthService::kEnrollment; + return ash::device_sync::mojom::CryptAuthService::kEnrollment; case cryptauthv2::TargetService::DEVICE_SYNC: - return chromeos::device_sync::mojom::CryptAuthService::kDeviceSync; + return ash::device_sync::mojom::CryptAuthService::kDeviceSync; case cryptauthv2::TargetService::TARGET_SERVICE_UNSPECIFIED: [[fallthrough]]; case cryptauthv2::TargetService::TargetService_INT_MIN_SENTINEL_DO_NOT_USE_: [[fallthrough]]; case cryptauthv2::TargetService::TargetService_INT_MAX_SENTINEL_DO_NOT_USE_: NOTREACHED(); - return chromeos::device_sync::mojom::CryptAuthService::kDeviceSync; + return ash::device_sync::mojom::CryptAuthService::kDeviceSync; } } -bool EnumTraits<chromeos::device_sync::mojom::CryptAuthService, +bool EnumTraits<ash::device_sync::mojom::CryptAuthService, cryptauthv2::TargetService>:: - FromMojom(chromeos::device_sync::mojom::CryptAuthService input, + FromMojom(ash::device_sync::mojom::CryptAuthService input, cryptauthv2::TargetService* out) { switch (input) { - case chromeos::device_sync::mojom::CryptAuthService::kEnrollment: + case ash::device_sync::mojom::CryptAuthService::kEnrollment: *out = cryptauthv2::TargetService::ENROLLMENT; return true; - case chromeos::device_sync::mojom::CryptAuthService::kDeviceSync: + case ash::device_sync::mojom::CryptAuthService::kDeviceSync: *out = cryptauthv2::TargetService::DEVICE_SYNC; return true; }
diff --git a/ash/services/device_sync/public/mojom/device_sync_mojom_traits.h b/ash/services/device_sync/public/mojom/device_sync_mojom_traits.h index 6b4b481..14963a6 100644 --- a/ash/services/device_sync/public/mojom/device_sync_mojom_traits.h +++ b/ash/services/device_sync/public/mojom/device_sync_mojom_traits.h
@@ -14,32 +14,32 @@ namespace mojo { template <> -class EnumTraits<chromeos::device_sync::mojom::ConnectivityStatus, +class EnumTraits<ash::device_sync::mojom::ConnectivityStatus, cryptauthv2::ConnectivityStatus> { public: - static chromeos::device_sync::mojom::ConnectivityStatus ToMojom( + static ash::device_sync::mojom::ConnectivityStatus ToMojom( cryptauthv2::ConnectivityStatus input); - static bool FromMojom(chromeos::device_sync::mojom::ConnectivityStatus input, + static bool FromMojom(ash::device_sync::mojom::ConnectivityStatus input, cryptauthv2::ConnectivityStatus* out); }; template <> -class EnumTraits<chromeos::device_sync::mojom::FeatureStatusChange, +class EnumTraits<ash::device_sync::mojom::FeatureStatusChange, chromeos::device_sync::FeatureStatusChange> { public: - static chromeos::device_sync::mojom::FeatureStatusChange ToMojom( + static ash::device_sync::mojom::FeatureStatusChange ToMojom( chromeos::device_sync::FeatureStatusChange input); - static bool FromMojom(chromeos::device_sync::mojom::FeatureStatusChange input, + static bool FromMojom(ash::device_sync::mojom::FeatureStatusChange input, chromeos::device_sync::FeatureStatusChange* out); }; template <> -class EnumTraits<chromeos::device_sync::mojom::CryptAuthService, +class EnumTraits<ash::device_sync::mojom::CryptAuthService, cryptauthv2::TargetService> { public: - static chromeos::device_sync::mojom::CryptAuthService ToMojom( + static ash::device_sync::mojom::CryptAuthService ToMojom( cryptauthv2::TargetService input); - static bool FromMojom(chromeos::device_sync::mojom::CryptAuthService input, + static bool FromMojom(ash::device_sync::mojom::CryptAuthService input, cryptauthv2::TargetService* out); };
diff --git a/ash/services/device_sync/public/mojom/device_sync_mojom_traits_unittest.cc b/ash/services/device_sync/public/mojom/device_sync_mojom_traits_unittest.cc index 2e7098a..c306fa55 100644 --- a/ash/services/device_sync/public/mojom/device_sync_mojom_traits_unittest.cc +++ b/ash/services/device_sync/public/mojom/device_sync_mojom_traits_unittest.cc
@@ -18,11 +18,11 @@ for (auto status_in : kTestConnectivityStatuses) { cryptauthv2::ConnectivityStatus status_out; - chromeos::device_sync::mojom::ConnectivityStatus serialized_status = - mojo::EnumTraits<chromeos::device_sync::mojom::ConnectivityStatus, + ash::device_sync::mojom::ConnectivityStatus serialized_status = + mojo::EnumTraits<ash::device_sync::mojom::ConnectivityStatus, cryptauthv2::ConnectivityStatus>::ToMojom(status_in); ASSERT_TRUE((mojo::EnumTraits< - chromeos::device_sync::mojom::ConnectivityStatus, + ash::device_sync::mojom::ConnectivityStatus, cryptauthv2::ConnectivityStatus>::FromMojom(serialized_status, &status_out))); EXPECT_EQ(status_in, status_out); @@ -39,14 +39,13 @@ for (auto status_in : kTestFeatureStatusChanges) { chromeos::device_sync::FeatureStatusChange status_out; - chromeos::device_sync::mojom::FeatureStatusChange serialized_status = + ash::device_sync::mojom::FeatureStatusChange serialized_status = mojo::EnumTraits< - chromeos::device_sync::mojom::FeatureStatusChange, + ash::device_sync::mojom::FeatureStatusChange, chromeos::device_sync::FeatureStatusChange>::ToMojom(status_in); - ASSERT_TRUE( - (mojo::EnumTraits<chromeos::device_sync::mojom::FeatureStatusChange, - chromeos::device_sync::FeatureStatusChange>:: - FromMojom(serialized_status, &status_out))); + ASSERT_TRUE((mojo::EnumTraits<ash::device_sync::mojom::FeatureStatusChange, + chromeos::device_sync::FeatureStatusChange>:: + FromMojom(serialized_status, &status_out))); EXPECT_EQ(status_in, status_out); } } @@ -59,11 +58,11 @@ for (auto status_in : kTestTargetServices) { cryptauthv2::TargetService status_out; - chromeos::device_sync::mojom::CryptAuthService serialized_status = - mojo::EnumTraits<chromeos::device_sync::mojom::CryptAuthService, + ash::device_sync::mojom::CryptAuthService serialized_status = + mojo::EnumTraits<ash::device_sync::mojom::CryptAuthService, cryptauthv2::TargetService>::ToMojom(status_in); ASSERT_TRUE((mojo::EnumTraits< - chromeos::device_sync::mojom::CryptAuthService, + ash::device_sync::mojom::CryptAuthService, cryptauthv2::TargetService>::FromMojom(serialized_status, &status_out))); EXPECT_EQ(status_in, status_out);
diff --git a/ash/services/device_sync/stub_device_sync.cc b/ash/services/device_sync/stub_device_sync.cc index 497d2af..977b5a8 100644 --- a/ash/services/device_sync/stub_device_sync.cc +++ b/ash/services/device_sync/stub_device_sync.cc
@@ -24,6 +24,9 @@ namespace { +// TODO(https://crbug.com/1164001): remove after migrating to ash. +namespace mojom = ::ash::device_sync::mojom; + // Helper function for SetSoftwareFeatureState and SetFeatureStatus, sets the // |software_feature| to the correct |enabled| value for the |device| and // handles edge cases.
diff --git a/ash/services/multidevice_setup/eligible_host_devices_provider_impl.cc b/ash/services/multidevice_setup/eligible_host_devices_provider_impl.cc index 2e8c103..9f668c1 100644 --- a/ash/services/multidevice_setup/eligible_host_devices_provider_impl.cc +++ b/ash/services/multidevice_setup/eligible_host_devices_provider_impl.cc
@@ -14,9 +14,6 @@ namespace multidevice_setup { -// TODO(https://crbug.com/1164001): remove after migrating to ash. -namespace device_sync = ::chromeos::device_sync; - // static constexpr base::TimeDelta EligibleHostDevicesProviderImpl::kInactiveDeviceThresholdInDays;
diff --git a/ash/services/multidevice_setup/eligible_host_devices_provider_impl.h b/ash/services/multidevice_setup/eligible_host_devices_provider_impl.h index e36032e1..ed306f5 100644 --- a/ash/services/multidevice_setup/eligible_host_devices_provider_impl.h +++ b/ash/services/multidevice_setup/eligible_host_devices_provider_impl.h
@@ -59,9 +59,8 @@ void UpdateEligibleDevicesSet(); void OnGetDevicesActivityStatus( - chromeos::device_sync::mojom::NetworkRequestResult, - absl::optional< - std::vector<chromeos::device_sync::mojom::DeviceActivityStatusPtr>>); + device_sync::mojom::NetworkRequestResult, + absl::optional<std::vector<device_sync::mojom::DeviceActivityStatusPtr>>); device_sync::DeviceSyncClient* device_sync_client_;
diff --git a/ash/services/multidevice_setup/eligible_host_devices_provider_impl_unittest.cc b/ash/services/multidevice_setup/eligible_host_devices_provider_impl_unittest.cc index 22ab028..21e0864 100644 --- a/ash/services/multidevice_setup/eligible_host_devices_provider_impl_unittest.cc +++ b/ash/services/multidevice_setup/eligible_host_devices_provider_impl_unittest.cc
@@ -24,9 +24,6 @@ namespace { -// TODO(https://crbug.com/1164001): remove after migrating to ash. -namespace device_sync = ::chromeos::device_sync; - const size_t kNumTestDevices = 6; } // namespace
diff --git a/ash/services/multidevice_setup/global_state_feature_manager_impl.cc b/ash/services/multidevice_setup/global_state_feature_manager_impl.cc index a7067fd..5399fbf8 100644 --- a/ash/services/multidevice_setup/global_state_feature_manager_impl.cc +++ b/ash/services/multidevice_setup/global_state_feature_manager_impl.cc
@@ -37,9 +37,6 @@ namespace { -// TODO(https://crbug.com/1164001): remove after migrating to ash. -namespace device_sync = ::chromeos::device_sync; - // This pref name is left in a legacy format to maintain compatibility. const char kWifiSyncPendingStatePrefName[] = "multidevice_setup.pending_set_wifi_sync_enabled_request";
diff --git a/ash/services/multidevice_setup/global_state_feature_manager_impl.h b/ash/services/multidevice_setup/global_state_feature_manager_impl.h index 2cdf99a..ef581c53 100644 --- a/ash/services/multidevice_setup/global_state_feature_manager_impl.h +++ b/ash/services/multidevice_setup/global_state_feature_manager_impl.h
@@ -137,7 +137,7 @@ void AttemptSetHostStateNetworkRequest(bool is_retry); void OnSetHostStateNetworkRequestFinished( bool attempted_to_enable, - chromeos::device_sync::mojom::NetworkRequestResult result_code); + device_sync::mojom::NetworkRequestResult result_code); bool ShouldEnableOnVerify(); void ProcessEnableOnVerifyAttempt(); bool ShouldAttemptToEnableAfterHostVerified();
diff --git a/ash/services/multidevice_setup/global_state_feature_manager_impl_unittest.cc b/ash/services/multidevice_setup/global_state_feature_manager_impl_unittest.cc index b47c9964..8272701 100644 --- a/ash/services/multidevice_setup/global_state_feature_manager_impl_unittest.cc +++ b/ash/services/multidevice_setup/global_state_feature_manager_impl_unittest.cc
@@ -32,9 +32,6 @@ namespace { -// TODO(https://crbug.com/1164001): remove after migrating to ash. -namespace device_sync = ::chromeos::device_sync; - const GlobalStateFeatureManagerImpl::Factory::Option kTestOption = GlobalStateFeatureManagerImpl::Factory::Option::kWifiSync; const multidevice::SoftwareFeature kTestHostFeature =
diff --git a/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.cc b/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.cc index 6384fc45..e3131820 100644 --- a/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.cc +++ b/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.cc
@@ -18,9 +18,6 @@ namespace { -// TODO(https://crbug.com/1164001): remove after migrating to ash. -namespace device_sync = ::chromeos::device_sync; - // Name of the prefs that stores the legacy device ID and Instance ID of the // device which still potentially needs to have kSmartLockHost disabled on it. const char kEasyUnlockHostIdToDisablePrefName[] =
diff --git a/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.h b/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.h index 07d10cf0..5358a30 100644 --- a/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.h +++ b/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.h
@@ -86,7 +86,7 @@ void DisableEasyUnlockHostIfNecessary(); void OnDisableEasyUnlockHostResult( multidevice::RemoteDeviceRef device, - chromeos::device_sync::mojom::NetworkRequestResult result_code); + device_sync::mojom::NetworkRequestResult result_code); void SetPotentialEasyUnlockHostToDisable( absl::optional<multidevice::RemoteDeviceRef> device); absl::optional<multidevice::RemoteDeviceRef> GetEasyUnlockHostToDisable();
diff --git a/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler_unittest.cc b/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler_unittest.cc index 69e41e27..d928d7c 100644 --- a/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler_unittest.cc +++ b/ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler_unittest.cc
@@ -20,9 +20,6 @@ namespace { -// TODO(https://crbug.com/1164001): remove after migrating to ash. -namespace device_sync = chromeos::device_sync; - const char kEasyUnlockHostIdToDisablePrefName[] = "multidevice_setup.easy_unlock_host_id_to_disable"; const char kEasyUnlockHostInstanceIdToDisablePrefName[] =
diff --git a/ash/services/multidevice_setup/host_backend_delegate_impl.cc b/ash/services/multidevice_setup/host_backend_delegate_impl.cc index 187bc9c..091e54b 100644 --- a/ash/services/multidevice_setup/host_backend_delegate_impl.cc +++ b/ash/services/multidevice_setup/host_backend_delegate_impl.cc
@@ -25,9 +25,6 @@ namespace { -// TODO(https://crbug.com/1164001): remove after migrating to ash. -namespace device_sync = ::chromeos::device_sync; - // Name of the pref which stores the ID of the host which is pending being set // on the back-end. const char kPendingRequestHostIdPrefName[] =
diff --git a/ash/services/multidevice_setup/host_backend_delegate_impl.h b/ash/services/multidevice_setup/host_backend_delegate_impl.h index f5378b0..98ed133 100644 --- a/ash/services/multidevice_setup/host_backend_delegate_impl.h +++ b/ash/services/multidevice_setup/host_backend_delegate_impl.h
@@ -93,7 +93,7 @@ void OnSetHostNetworkRequestFinished( multidevice::RemoteDeviceRef device_for_request, bool attempted_to_enable, - chromeos::device_sync::mojom::NetworkRequestResult result_code); + device_sync::mojom::NetworkRequestResult result_code); EligibleHostDevicesProvider* eligible_host_devices_provider_; PrefService* pref_service_;
diff --git a/ash/services/multidevice_setup/host_backend_delegate_impl_unittest.cc b/ash/services/multidevice_setup/host_backend_delegate_impl_unittest.cc index b84ae660..c2c42ba 100644 --- a/ash/services/multidevice_setup/host_backend_delegate_impl_unittest.cc +++ b/ash/services/multidevice_setup/host_backend_delegate_impl_unittest.cc
@@ -27,9 +27,6 @@ namespace { -// TODO(https://crbug.com/1164001): remove after migrating to ash. -namespace device_sync = ::chromeos::device_sync; - const char kPendingRequestHostIdPrefName[] = "multidevice_setup.pending_request_host_id"; const char kPendingRemovalOfCurrentHost[] = "pendingRemovalOfCurrentHost";
diff --git a/ash/services/multidevice_setup/host_verifier_impl.cc b/ash/services/multidevice_setup/host_verifier_impl.cc index 2b4e309f..4269f50 100644 --- a/ash/services/multidevice_setup/host_verifier_impl.cc +++ b/ash/services/multidevice_setup/host_verifier_impl.cc
@@ -24,9 +24,6 @@ namespace { -// TODO(https://crbug.com/1164001): remove after migrating to ash. -namespace device_sync = ::chromeos::device_sync; - // Software features which, when enabled, represent a verified host. constexpr const multidevice::SoftwareFeature kPotentialHostFeatures[] = { multidevice::SoftwareFeature::kSmartLockHost,
diff --git a/ash/services/multidevice_setup/host_verifier_impl.h b/ash/services/multidevice_setup/host_verifier_impl.h index 258d5b9..89807ef 100644 --- a/ash/services/multidevice_setup/host_verifier_impl.h +++ b/ash/services/multidevice_setup/host_verifier_impl.h
@@ -93,11 +93,10 @@ void StartRetryTimer(const base::Time& time_to_fire); void AttemptHostVerification(); void OnFindEligibleDevicesResult( - chromeos::device_sync::mojom::NetworkRequestResult result, + device_sync::mojom::NetworkRequestResult result, multidevice::RemoteDeviceRefList eligible_devices, multidevice::RemoteDeviceRefList ineligible_devices); - void OnNotifyDevicesFinished( - chromeos::device_sync::mojom::NetworkRequestResult result); + void OnNotifyDevicesFinished(device_sync::mojom::NetworkRequestResult result); void OnSyncTimerFired(); HostBackendDelegate* host_backend_delegate_;
diff --git a/ash/services/multidevice_setup/host_verifier_impl_unittest.cc b/ash/services/multidevice_setup/host_verifier_impl_unittest.cc index 8f50786..951fa2fe 100644 --- a/ash/services/multidevice_setup/host_verifier_impl_unittest.cc +++ b/ash/services/multidevice_setup/host_verifier_impl_unittest.cc
@@ -28,9 +28,6 @@ namespace { -// TODO(https://crbug.com/1164001): remove after migrating to ash. -namespace device_sync = ::chromeos::device_sync; - // Parameterized test types, indicating the following test scenarios: enum class TestType { // Use v1 DeviceSync and host does not have an Instance ID.
diff --git a/ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom b/ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom index b874d56f..1b5e984 100644 --- a/ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom +++ b/ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom
@@ -130,7 +130,7 @@ // features. struct HostDevice { chromeos.multidevice.mojom.RemoteDevice remote_device; - chromeos.device_sync.mojom.ConnectivityStatus connectivity_status; + ash.device_sync.mojom.ConnectivityStatus connectivity_status; }; // Delegate used to notify Chrome OS UI (//ash) of multidevice account changes
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb index 2113e90..934da24 100644 --- a/ash/strings/ash_strings_da.xtb +++ b/ash/strings/ash_strings_da.xtb
@@ -266,6 +266,7 @@ <translation id="2653659639078652383">Send</translation> <translation id="2658778018866295321">Klik og træk</translation> <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" /> og <ph name="UNAVAILABLE_APPS_TWO" /> er ikke på denne enhed.</translation> +<translation id="2673968385134502798">Spil</translation> <translation id="2678852583403169292">Tekstoplæsningsmenu</translation> <translation id="2689613560355655046">Skrivebord 8</translation> <translation id="2700493154570097719">Angiv dit tastatur</translation> @@ -672,6 +673,7 @@ <translation id="5078796286268621944">Forkert pinkode</translation> <translation id="5083553833479578423">Få adgang til endnu flere Assistent-funktioner.</translation> <translation id="5106223312672646208">Tilpas</translation> +<translation id="5107522548814527560">Internet</translation> <translation id="5117590920725113268">Vis næste måned</translation> <translation id="5136175204352732067">Du har tilsluttet et andet tastatur</translation> <translation id="5147567197700016471">Låst op</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index 0a849764..53656391 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -266,6 +266,7 @@ <translation id="2653659639078652383">ارسال</translation> <translation id="2658778018866295321">کلیک کنید و بکشید</translation> <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" /> و <ph name="UNAVAILABLE_APPS_TWO" /> در این دستگاه وجود ندارند.</translation> +<translation id="2673968385134502798">بازیها</translation> <translation id="2678852583403169292">منوی «انتخاب برای شنیدن»</translation> <translation id="2689613560355655046">میزکار ۸</translation> <translation id="2700493154570097719">تنظیم صفحهکلید</translation> @@ -672,6 +673,7 @@ <translation id="5078796286268621944">پین اشتباه</translation> <translation id="5083553833479578423">باز کردن قفل ویژگیهای بیشتری از «دستیار».</translation> <translation id="5106223312672646208">شخصیسازی</translation> +<translation id="5107522548814527560">وب</translation> <translation id="5117590920725113268">نمایش ماه بعدی</translation> <translation id="5136175204352732067">صفحهکلید دیگری متصل شد</translation> <translation id="5147567197700016471">قفل باز شد</translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb index 5c4c0c9e..b7cf6146 100644 --- a/ash/strings/ash_strings_hy.xtb +++ b/ash/strings/ash_strings_hy.xtb
@@ -266,6 +266,7 @@ <translation id="2653659639078652383">Ուղարկել</translation> <translation id="2658778018866295321">Սեղմել և քաշել</translation> <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" /> և <ph name="UNAVAILABLE_APPS_TWO" /> հավելվածները տեղադրված չեն այս սարքում։</translation> +<translation id="2673968385134502798">Խաղեր</translation> <translation id="2678852583403169292">«Ընտրեք և լսեք» գործառույթի ընտրացանկ</translation> <translation id="2689613560355655046">Աշխատասեղան 8</translation> <translation id="2700493154570097719">Ընտրեք ստեղնաշարը</translation> @@ -672,6 +673,7 @@ <translation id="5078796286268621944">Սխալ PIN կոդ</translation> <translation id="5083553833479578423">Օգտվեք Օգնականի այլ գործառույթներից</translation> <translation id="5106223312672646208">Անհատականացնել</translation> +<translation id="5107522548814527560">Վեբ</translation> <translation id="5117590920725113268">Ցուցադրել հաջորդ ամիսը</translation> <translation id="5136175204352732067">Այլ ստեղնաշար է միացվել</translation> <translation id="5147567197700016471">Ապակողպվեց</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index fb7f560..a13c9fb 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -266,6 +266,7 @@ <translation id="2653659639078652383">Pateikti</translation> <translation id="2658778018866295321">Spustelėti ir vilkti</translation> <translation id="2665788051462227163">Šiame įrenginyje nėra „<ph name="UNAVAILABLE_APPS_ONE" />“ ir „<ph name="UNAVAILABLE_APPS_TWO" />“.</translation> +<translation id="2673968385134502798">Žaidimai</translation> <translation id="2678852583403169292">Teksto ištarimo meniu</translation> <translation id="2689613560355655046">8 darbalaukis</translation> <translation id="2700493154570097719">Klaviatūros nustatymas</translation> @@ -672,6 +673,7 @@ <translation id="5078796286268621944">Neteisingas PIN kodas</translation> <translation id="5083553833479578423">Atrakinkite daugiau Padėjėjo funkcijų.</translation> <translation id="5106223312672646208">Suasmeninimas</translation> +<translation id="5107522548814527560">Žiniatinklis</translation> <translation id="5117590920725113268">Rodyti kitą mėnesį</translation> <translation id="5136175204352732067">Prijungta kita klaviatūra</translation> <translation id="5147567197700016471">Atrakinta</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb index 453f6dd..67dc76c 100644 --- a/ash/strings/ash_strings_pa.xtb +++ b/ash/strings/ash_strings_pa.xtb
@@ -266,6 +266,7 @@ <translation id="2653659639078652383">ਪ੍ਰਸਤੁਤ ਕਰੋ</translation> <translation id="2658778018866295321">ਕਲਿੱਕ ਕਰਕੇ ਘਸੀਟੋ</translation> <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" /> ਅਤੇ <ph name="UNAVAILABLE_APPS_TWO" /> ਐਪਾਂ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਉਪਲਬਧ ਨਹੀਂ ਹਨ।</translation> +<translation id="2673968385134502798">ਗੇਮਾਂ</translation> <translation id="2678852583403169292">ਚੁਣੋ ਅਤੇ ਸੁਣੋ ਮੀਨੂ</translation> <translation id="2689613560355655046">ਡੈਸਕ 8</translation> <translation id="2700493154570097719">ਆਪਣਾ ਕੀ-ਬੋਰਡ ਸੈੱਟ ਕਰੋ</translation> @@ -673,6 +674,7 @@ <translation id="5078796286268621944">ਗ਼ਲਤ PIN</translation> <translation id="5083553833479578423">Assistant ਦੀਆਂ ਹੋਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਅਣਲਾਕ ਕਰੋ।</translation> <translation id="5106223312672646208">ਵਿਅਕਤੀਗਤ ਬਣਾਓ</translation> +<translation id="5107522548814527560">ਵੈੱਬ</translation> <translation id="5117590920725113268">ਅਗਲਾ ਮਹੀਨਾ ਦਿਖਾਓ</translation> <translation id="5136175204352732067">ਵੱਖਰਾ ਕੀ-ਬੋਰਡ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ</translation> <translation id="5147567197700016471">Chromebook ਅਣਲਾਕ ਹੋ ਗਈ</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 4061268..4a35233f 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -266,6 +266,7 @@ <translation id="2653659639078652383">సమర్పించు</translation> <translation id="2658778018866295321">క్లిక్ చేసి, లాగండి</translation> <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" />, <ph name="UNAVAILABLE_APPS_TWO" /> ఈ పరికరంలో అందుబాటులో లేవు.</translation> +<translation id="2673968385134502798">గేమ్లు</translation> <translation id="2678852583403169292">'వినడానికి ఎంచుకోండి' మెనూ</translation> <translation id="2689613560355655046">డెస్క్ 8</translation> <translation id="2700493154570097719">మీ కీబోర్డ్ని సెట్ చేయండి</translation> @@ -673,6 +674,7 @@ <translation id="5078796286268621944"> సరి కానటువంటి PIN</translation> <translation id="5083553833479578423">మరిన్ని Assistant ఫీచర్లను అన్లాక్ చేయండి.</translation> <translation id="5106223312672646208">వ్యక్తిగతీకరించండి</translation> +<translation id="5107522548814527560">వెబ్</translation> <translation id="5117590920725113268">తరువాత నెలను చూపుతుంది</translation> <translation id="5136175204352732067">వేరే కీబోర్డ్ కనెక్ట్ చేయబడింది</translation> <translation id="5147567197700016471">అన్లాక్ చేయబడింది</translation>
diff --git a/ash/system/phonehub/multidevice_feature_opt_in_view.cc b/ash/system/phonehub/multidevice_feature_opt_in_view.cc index fc9300d..f970e07 100644 --- a/ash/system/phonehub/multidevice_feature_opt_in_view.cc +++ b/ash/system/phonehub/multidevice_feature_opt_in_view.cc
@@ -19,6 +19,7 @@ namespace ash { +using multidevice_setup::mojom::Feature; using phone_hub_metrics::InterstitialScreenEvent; using phone_hub_metrics::LogInterstitialScreenEvent; @@ -43,11 +44,15 @@ bool can_request_apps_acess = features::IsEcheSWAEnabled() && features::IsEchePhoneHubPermissionsOnboarding() && + multidevice_feature_access_manager->IsAccessRequestAllowed( + Feature::kEche) && multidevice_feature_access_manager->GetAppsAccessStatus() == phonehub::MultideviceFeatureAccessManager::AccessStatus:: kAvailableButNotGranted; bool can_request_camera_roll_access = features::IsPhoneHubCameraRollEnabled() && + multidevice_feature_access_manager->IsAccessRequestAllowed( + Feature::kPhoneHubCameraRoll) && multidevice_feature_access_manager->GetCameraRollAccessStatus() == phonehub::MultideviceFeatureAccessManager::AccessStatus:: kAvailableButNotGranted;
diff --git a/ash/system/phonehub/phone_hub_tray_unittest.cc b/ash/system/phonehub/phone_hub_tray_unittest.cc index bfb276e4..a2f1dbf 100644 --- a/ash/system/phonehub/phone_hub_tray_unittest.cc +++ b/ash/system/phonehub/phone_hub_tray_unittest.cc
@@ -30,6 +30,7 @@ namespace { +using multidevice_setup::mojom::Feature; using AccessStatus = phonehub::MultideviceFeatureAccessManager::AccessStatus; using AccessProhibitedReason = phonehub::MultideviceFeatureAccessManager::AccessProhibitedReason; @@ -253,6 +254,8 @@ AccessStatus::kAccessGranted, AccessProhibitedReason::kUnknown); GetMultideviceFeatureAccessManager()->SetCameraRollAccessStatusInternal( AccessStatus::kAvailableButNotGranted); + GetMultideviceFeatureAccessManager()->SetFeatureReadyForAccess( + Feature::kPhoneHubCameraRoll); ClickTrayButton(); @@ -301,6 +304,8 @@ AccessStatus::kAvailableButNotGranted, AccessProhibitedReason::kUnknown); GetMultideviceFeatureAccessManager()->SetCameraRollAccessStatusInternal( AccessStatus::kAvailableButNotGranted); + GetMultideviceFeatureAccessManager()->SetFeatureReadyForAccess( + Feature::kPhoneHubCameraRoll); ClickTrayButton(); EXPECT_TRUE(multidevice_feature_opt_in_view()); @@ -348,6 +353,10 @@ AccessStatus::kAvailableButNotGranted); GetMultideviceFeatureAccessManager()->SetAppsAccessStatusInternal( AccessStatus::kAvailableButNotGranted); + GetMultideviceFeatureAccessManager()->SetFeatureReadyForAccess( + Feature::kEche); + GetMultideviceFeatureAccessManager()->SetFeatureReadyForAccess( + Feature::kPhoneHubCameraRoll); ClickTrayButton(); EXPECT_TRUE(multidevice_feature_opt_in_view()); @@ -377,6 +386,8 @@ AccessStatus::kAvailableButNotGranted); GetMultideviceFeatureAccessManager()->SetCameraRollAccessStatusInternal( AccessStatus::kAccessGranted); + GetMultideviceFeatureAccessManager()->SetFeatureReadyForAccess( + Feature::kEche); ClickTrayButton(); EXPECT_TRUE(multidevice_feature_opt_in_view()); @@ -435,6 +446,8 @@ AccessStatus::kAccessGranted); GetMultideviceFeatureAccessManager()->SetAppsAccessStatusInternal( AccessStatus::kAvailableButNotGranted); + GetMultideviceFeatureAccessManager()->SetFeatureReadyForAccess( + Feature::kEche); ClickTrayButton(); EXPECT_TRUE(multidevice_feature_opt_in_view()); @@ -450,6 +463,26 @@ LeftClickOn(notification_opt_in_set_up_button()); } +TEST_F(PhoneHubTrayTest, DoNotShowAppsAccessSetUpFlowIfFeatureIsNotReady) { + base::test::ScopedFeatureList feature_list; + feature_list.InitWithFeatures( + /*enabled_features=*/{chromeos::features::kPhoneHub, + chromeos::features::kEcheSWA, + chromeos::features:: + kEchePhoneHubPermissionsOnboarding}, + /*disabled_features=*/{}); + GetMultideviceFeatureAccessManager()->SetNotificationAccessStatusInternal( + AccessStatus::kAccessGranted, AccessProhibitedReason::kUnknown); + GetMultideviceFeatureAccessManager()->SetCameraRollAccessStatusInternal( + AccessStatus::kAccessGranted); + GetMultideviceFeatureAccessManager()->SetAppsAccessStatusInternal( + AccessStatus::kAvailableButNotGranted); + + ClickTrayButton(); + EXPECT_TRUE(multidevice_feature_opt_in_view()); + EXPECT_FALSE(multidevice_feature_opt_in_view()->GetVisible()); +} + TEST_F(PhoneHubTrayTest, StartCameraRollOnlySetUpFlow) { base::test::ScopedFeatureList feature_list; feature_list.InitWithFeatures( @@ -464,6 +497,8 @@ AccessStatus::kAvailableButNotGranted); GetMultideviceFeatureAccessManager()->SetAppsAccessStatusInternal( AccessStatus::kAccessGranted); + GetMultideviceFeatureAccessManager()->SetFeatureReadyForAccess( + Feature::kPhoneHubCameraRoll); ClickTrayButton(); EXPECT_TRUE(multidevice_feature_opt_in_view());
diff --git a/ash/webui/multidevice_debug/proximity_auth_webui_handler.cc b/ash/webui/multidevice_debug/proximity_auth_webui_handler.cc index 0f9bf7f4..e8e4b019 100644 --- a/ash/webui/multidevice_debug/proximity_auth_webui_handler.cc +++ b/ash/webui/multidevice_debug/proximity_auth_webui_handler.cc
@@ -30,9 +30,6 @@ namespace { -// TODO(https://crbug.com/1164001): remove when device_sync moved to ash -namespace device_sync = ::chromeos::device_sync; - constexpr const multidevice::SoftwareFeature kAllSoftareFeatures[] = { multidevice::SoftwareFeature::kBetterTogetherHost, multidevice::SoftwareFeature::kBetterTogetherClient,
diff --git a/ash/webui/multidevice_debug/proximity_auth_webui_handler.h b/ash/webui/multidevice_debug/proximity_auth_webui_handler.h index eb12f15..6cf2c71 100644 --- a/ash/webui/multidevice_debug/proximity_auth_webui_handler.h +++ b/ash/webui/multidevice_debug/proximity_auth_webui_handler.h
@@ -60,9 +60,8 @@ void OnForceSyncNow(bool success); void OnSetSoftwareFeatureState( const std::string public_key, - chromeos::device_sync::mojom::NetworkRequestResult result_code); - void OnGetDebugInfo( - chromeos::device_sync::mojom::DebugInfoPtr debug_info_ptr); + device_sync::mojom::NetworkRequestResult result_code); + void OnGetDebugInfo(device_sync::mojom::DebugInfoPtr debug_info_ptr); void NotifyOnEnrollmentFinished( bool success,
diff --git a/ash/webui/shimless_rma/mojom/shimless_rma.mojom b/ash/webui/shimless_rma/mojom/shimless_rma.mojom index 3817853..f1fbe662 100644 --- a/ash/webui/shimless_rma/mojom/shimless_rma.mojom +++ b/ash/webui/shimless_rma/mojom/shimless_rma.mojom
@@ -174,6 +174,15 @@ // Update RO firmware failed. kUpdateRoFirmwareFailed = 40, + + // WP is expected to be disabled, but it is enabled. + kWpEnabled = 41, + + // Unable to write data. + kCannotWrite = 42, + + // Failed to save logs. + kCannotSaveLog = 43, }; // TODO(gavindodd): This is copied from
diff --git a/ash/webui/shimless_rma/mojom/shimless_rma_mojom_traits.cc b/ash/webui/shimless_rma/mojom/shimless_rma_mojom_traits.cc index 1fc0b28..3ae6b21 100644 --- a/ash/webui/shimless_rma/mojom/shimless_rma_mojom_traits.cc +++ b/ash/webui/shimless_rma/mojom/shimless_rma_mojom_traits.cc
@@ -207,6 +207,12 @@ return MojomRmadErrorCode::kDaemonInitializationFailed; case ProtoRmadErrorCode::RMAD_ERROR_UPDATE_RO_FIRMWARE_FAILED: return MojomRmadErrorCode::kUpdateRoFirmwareFailed; + case ProtoRmadErrorCode::RMAD_ERROR_WP_ENABLED: + return MojomRmadErrorCode::kWpEnabled; + case ProtoRmadErrorCode::RMAD_ERROR_CANNOT_WRITE: + return MojomRmadErrorCode::kCannotWrite; + case ProtoRmadErrorCode::RMAD_ERROR_CANNOT_SAVE_LOG: + return MojomRmadErrorCode::kCannotSaveLog; case ProtoRmadErrorCode::RMAD_ERROR_NOT_SET: default: @@ -349,6 +355,15 @@ case MojomRmadErrorCode::kUpdateRoFirmwareFailed: *out = ProtoRmadErrorCode::RMAD_ERROR_UPDATE_RO_FIRMWARE_FAILED; return true; + case MojomRmadErrorCode::kWpEnabled: + *out = ProtoRmadErrorCode::RMAD_ERROR_WP_ENABLED; + return true; + case MojomRmadErrorCode::kCannotWrite: + *out = ProtoRmadErrorCode::RMAD_ERROR_CANNOT_WRITE; + return true; + case MojomRmadErrorCode::kCannotSaveLog: + *out = ProtoRmadErrorCode::RMAD_ERROR_CANNOT_SAVE_LOG; + return true; case MojomRmadErrorCode::kNotSet: NOTREACHED();
diff --git a/ash/webui/shimless_rma/mojom/shimless_rma_mojom_traits_unittest.cc b/ash/webui/shimless_rma/mojom/shimless_rma_mojom_traits_unittest.cc index 9c8b6466..5de0496 100644 --- a/ash/webui/shimless_rma/mojom/shimless_rma_mojom_traits_unittest.cc +++ b/ash/webui/shimless_rma/mojom/shimless_rma_mojom_traits_unittest.cc
@@ -189,7 +189,13 @@ {mojom::RmadErrorCode::kDaemonInitializationFailed, rmad::RmadErrorCode::RMAD_ERROR_DAEMON_INITIALIZATION_FAILED}, {mojom::RmadErrorCode::kUpdateRoFirmwareFailed, - rmad::RmadErrorCode::RMAD_ERROR_UPDATE_RO_FIRMWARE_FAILED}}); + rmad::RmadErrorCode::RMAD_ERROR_UPDATE_RO_FIRMWARE_FAILED}, + {mojom::RmadErrorCode::kWpEnabled, + rmad::RmadErrorCode::RMAD_ERROR_WP_ENABLED}, + {mojom::RmadErrorCode::kCannotWrite, + rmad::RmadErrorCode::RMAD_ERROR_CANNOT_WRITE}, + {mojom::RmadErrorCode::kCannotSaveLog, + rmad::RmadErrorCode::RMAD_ERROR_CANNOT_SAVE_LOG}}); TestProtoToMojo(enums); TestMojoToProto(enums);
diff --git a/base/task/deferred_sequenced_task_runner.h b/base/task/deferred_sequenced_task_runner.h index 8452c78..e5fe4d6 100644 --- a/base/task/deferred_sequenced_task_runner.h +++ b/base/task/deferred_sequenced_task_runner.h
@@ -40,9 +40,9 @@ bool PostDelayedTask(const Location& from_here, OnceClosure task, TimeDelta delay) override; - bool RunsTasksInCurrentSequence() const override; // SequencedTaskRunner implementation + bool RunsTasksInCurrentSequence() const override; bool PostNonNestableDelayedTask(const Location& from_here, OnceClosure task, TimeDelta delay) override;
diff --git a/base/trace_event/traced_value.h b/base/trace_event/traced_value.h index 6719bd3..549da1ff 100644 --- a/base/trace_event/traced_value.h +++ b/base/trace_event/traced_value.h
@@ -12,11 +12,13 @@ #include <string> #include <vector> +#include "base/base_export.h" #include "base/strings/string_piece.h" -#include "base/trace_event/trace_event_impl.h" +#include "base/trace_event/trace_arguments.h" namespace base { +class TraceEventMemoryOverhead; class Value; namespace trace_event {
diff --git a/base/trace_event/traced_value_unittest.cc b/base/trace_event/traced_value_unittest.cc index a357e848..b0a2765 100644 --- a/base/trace_event/traced_value_unittest.cc +++ b/base/trace_event/traced_value_unittest.cc
@@ -4,8 +4,8 @@ #include "base/trace_event/traced_value.h" -#include <stddef.h> - +#include <cmath> +#include <cstddef> #include <utility> #include "base/strings/string_util.h"
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index 5853cb0..f994a51 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -7.20220319.3.1 +7.20220320.3.1
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1 index 69a9876..f994a51 100644 --- a/build/fuchsia/linux_internal.sdk.sha1 +++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@ -7.20220320.0.1 +7.20220320.3.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index 5853cb0..f994a51 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -7.20220319.3.1 +7.20220320.3.1
diff --git a/cc/paint/filter_operation.cc b/cc/paint/filter_operation.cc index dc7fb38..d8768ef 100644 --- a/cc/paint/filter_operation.cc +++ b/cc/paint/filter_operation.cc
@@ -10,6 +10,7 @@ #include "cc/paint/filter_operation.h" #include "base/cxx17_backports.h" +#include "base/notreached.h" #include "base/trace_event/traced_value.h" #include "base/values.h" #include "cc/base/math_util.h"
diff --git a/cc/trees/image_animation_controller.h b/cc/trees/image_animation_controller.h index 63cfcc8..696dd468 100644 --- a/cc/trees/image_animation_controller.h +++ b/cc/trees/image_animation_controller.h
@@ -22,6 +22,10 @@ #include "cc/tiles/tile_priority.h" #include "components/viz/common/frame_sinks/begin_frame_args.h" +namespace base { +class SingleThreadTaskRunner; +} + namespace cc { class PaintImage;
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn index 5308a49..5eec2b8 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn
@@ -1619,6 +1619,7 @@ java_cpp_enum("download_enum_javagen") { sources = [ + "browser/download/android/download_open_source.h", "browser/download/download_dialog_types.h", "browser/download/download_prompt_status.h", ]
diff --git a/chrome/VERSION b/chrome/VERSION index b687588..a92bbd6 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=102 MINOR=0 -BUILD=4954 +BUILD=4956 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index 4cf42c08..ff9bbd1 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -218,6 +218,7 @@ ":ui_locale_string_resources", "//chrome/android/webapk/libs/common:splash_resources", "//chrome/app:java_strings_grd", + "//chrome/browser/download/android:java_resources", "//chrome/browser/feed/android:feed_java_resources", "//chrome/browser/feedback/android:java_resources", "//chrome/browser/image_descriptions:java_resources", @@ -873,7 +874,6 @@ "//chrome/browser/android/policy/policy_auditor.cc", "//chrome/browser/android/webapk/webapk_install_service.h", "//chrome/browser/android/webapk/webapk_installer.h", - "//chrome/browser/download/android/download_open_source.h", "//chrome/browser/long_screenshots/long_screenshots_tab_service.h", "//chrome/browser/notifications/notification_handler.h", "//chrome/browser/notifications/notification_platform_bridge_android.cc",
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni index 8ca2154..fa924352 100644 --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni
@@ -45,7 +45,6 @@ "java/res/drawable-hdpi/ic_drive_site_white_24dp.png", "java/res/drawable-hdpi/ic_email_googblue_36dp.png", "java/res/drawable-hdpi/ic_error_grey800_24dp_filled.png", - "java/res/drawable-hdpi/ic_error_outline_googblue_24dp.png", "java/res/drawable-hdpi/ic_error_outline_red_24dp.png", "java/res/drawable-hdpi/ic_error_white_24dp_filled.png", "java/res/drawable-hdpi/ic_event_googblue_36dp.png", @@ -122,7 +121,6 @@ "java/res/drawable-mdpi/ic_drive_site_white_24dp.png", "java/res/drawable-mdpi/ic_email_googblue_36dp.png", "java/res/drawable-mdpi/ic_error_grey800_24dp_filled.png", - "java/res/drawable-mdpi/ic_error_outline_googblue_24dp.png", "java/res/drawable-mdpi/ic_error_outline_red_24dp.png", "java/res/drawable-mdpi/ic_error_white_24dp_filled.png", "java/res/drawable-mdpi/ic_event_googblue_36dp.png", @@ -207,7 +205,6 @@ "java/res/drawable-xhdpi/ic_drive_site_white_24dp.png", "java/res/drawable-xhdpi/ic_email_googblue_36dp.png", "java/res/drawable-xhdpi/ic_error_grey800_24dp_filled.png", - "java/res/drawable-xhdpi/ic_error_outline_googblue_24dp.png", "java/res/drawable-xhdpi/ic_error_outline_red_24dp.png", "java/res/drawable-xhdpi/ic_error_white_24dp_filled.png", "java/res/drawable-xhdpi/ic_event_googblue_36dp.png", @@ -278,7 +275,6 @@ "java/res/drawable-xxhdpi/ic_drive_site_white_24dp.png", "java/res/drawable-xxhdpi/ic_email_googblue_36dp.png", "java/res/drawable-xxhdpi/ic_error_grey800_24dp_filled.png", - "java/res/drawable-xxhdpi/ic_error_outline_googblue_24dp.png", "java/res/drawable-xxhdpi/ic_error_outline_red_24dp.png", "java/res/drawable-xxhdpi/ic_error_white_24dp_filled.png", "java/res/drawable-xxhdpi/ic_event_googblue_36dp.png", @@ -347,7 +343,6 @@ "java/res/drawable-xxxhdpi/ic_drive_site_white_24dp.png", "java/res/drawable-xxxhdpi/ic_email_googblue_36dp.png", "java/res/drawable-xxxhdpi/ic_error_grey800_24dp_filled.png", - "java/res/drawable-xxxhdpi/ic_error_outline_googblue_24dp.png", "java/res/drawable-xxxhdpi/ic_error_outline_red_24dp.png", "java/res/drawable-xxxhdpi/ic_error_white_24dp_filled.png", "java/res/drawable-xxxhdpi/ic_event_googblue_36dp.png", @@ -413,7 +408,6 @@ "java/res/drawable/custom_tabs_handle_view_shape.xml", "java/res/drawable/devices_black_24dp.xml", "java/res/drawable/distilled_page_prefs_button_bg.xml", - "java/res/drawable/downloading_fill_animation_24dp.xml", "java/res/drawable/explore_sites_dense_tile_background.xml", "java/res/drawable/google_pay_with_divider.xml", "java/res/drawable/ic_add_box_rounded_corner.xml", @@ -425,7 +419,6 @@ "java/res/drawable/ic_checkmark_24dp.xml", "java/res/drawable/ic_cloud_offline_24dp.xml", "java/res/drawable/ic_error.xml", - "java/res/drawable/ic_file_download_scheduled_24dp.xml", "java/res/drawable/ic_find_in_page.xml", "java/res/drawable/ic_forward_arrow_black_24dp.xml", "java/res/drawable/ic_google_services_48dp.xml", @@ -457,8 +450,6 @@ "java/res/drawable/incognito_history_placeholder_image.xml", "java/res/drawable/incognito_switch_track.xml", "java/res/drawable/infobar_autofill_cc.xml", - "java/res/drawable/infobar_download_complete.xml", - "java/res/drawable/infobar_download_complete_animation.xml", "java/res/drawable/lens_camera_icon.xml", "java/res/drawable/long_screenshot.xml", "java/res/drawable/material_tooltip_background.xml",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index 30003af..0904a80 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -218,7 +218,6 @@ "java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityClient.java", "java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityClientWrappers.java", "java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivitySettingsLauncher.java", - "java/src/org/chromium/chrome/browser/browserservices/digitalgoods/AcknowledgeConverter.java", "java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsAdapter.java", "java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsConverter.java", "java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsFactoryFactory.java", @@ -538,8 +537,6 @@ "java/src/org/chromium/chrome/browser/download/DownloadForegroundServiceObservers.java", "java/src/org/chromium/chrome/browser/download/DownloadItem.java", "java/src/org/chromium/chrome/browser/download/DownloadManagerService.java", - "java/src/org/chromium/chrome/browser/download/DownloadMessageUiController.java", - "java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java", "java/src/org/chromium/chrome/browser/download/DownloadMetrics.java", "java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java", "java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java",
diff --git a/chrome/android/chrome_test_java_sources.gni b/chrome/android/chrome_test_java_sources.gni index e8c7309..17755fd 100644 --- a/chrome/android/chrome_test_java_sources.gni +++ b/chrome/android/chrome_test_java_sources.gni
@@ -199,7 +199,6 @@ "javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceTest.java", "javatests/src/org/chromium/chrome/browser/download/DownloadLocationChangeEnd2EndTest.java", "javatests/src/org/chromium/chrome/browser/download/DownloadManagerServiceTest.java", - "javatests/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerTest.java", "javatests/src/org/chromium/chrome/browser/download/DownloadNotificationServiceTest.java", "javatests/src/org/chromium/chrome/browser/download/DownloadSettingsTest.java", "javatests/src/org/chromium/chrome/browser/download/DownloadTest.java",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java index a7036ff6..fc6b9dc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -1748,32 +1748,30 @@ AsyncTabParamsManagerSingleton.getInstance())); // This must be initialized after initialization of tab reparenting controller. - if (ChromeFeatureList.isEnabled(ChromeFeatureList.ANDROID_LAYOUT_CHANGE_TAB_REPARENT)) { - DisplayAndroid display = getWindowAndroid().getDisplay(); - mDisplayAndroidObserver = new DisplayAndroidObserver() { - @Override - public void onDisplayModesChanged(List<Mode> supportedModes) { - maybeOnScreenSizeChange(); - } - - @Override - public void onCurrentModeChanged(Mode currentMode) { - maybeOnScreenSizeChange(); - } - - private void maybeOnScreenSizeChange() { - if (didChangeTabletMode()) { - onScreenLayoutSizeChange(); - } - } - }; - display.addObserver(mDisplayAndroidObserver); - - CommerceSubscriptionsServiceFactory factory = new CommerceSubscriptionsServiceFactory(); - - if (ShoppingFeatures.isShoppingListEnabled()) { - mSubscriptionsManager = factory.getForLastUsedProfile().getSubscriptionsManager(); + DisplayAndroid display = getWindowAndroid().getDisplay(); + mDisplayAndroidObserver = new DisplayAndroidObserver() { + @Override + public void onDisplayModesChanged(List<Mode> supportedModes) { + maybeOnScreenSizeChange(); } + + @Override + public void onCurrentModeChanged(Mode currentMode) { + maybeOnScreenSizeChange(); + } + + private void maybeOnScreenSizeChange() { + if (didChangeTabletMode()) { + onScreenLayoutSizeChange(); + } + } + }; + display.addObserver(mDisplayAndroidObserver); + + CommerceSubscriptionsServiceFactory factory = new CommerceSubscriptionsServiceFactory(); + + if (ShoppingFeatures.isShoppingListEnabled()) { + mSubscriptionsManager = factory.getForLastUsedProfile().getSubscriptionsManager(); } // Make sure the user is reporting into one of the feed spinner groups, so that we can
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/download/DownloadMessageUiDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/app/download/DownloadMessageUiDelegate.java index 854c2f47..facf8cf 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/download/DownloadMessageUiDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/download/DownloadMessageUiDelegate.java
@@ -11,9 +11,14 @@ import org.chromium.base.ApplicationStatus; import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.download.DownloadInfo; +import org.chromium.chrome.browser.download.DownloadManagerService; import org.chromium.chrome.browser.download.DownloadMessageUiController; +import org.chromium.chrome.browser.download.DownloadUtils; +import org.chromium.chrome.browser.profiles.OTRProfileID; import org.chromium.components.messages.MessageDispatcher; import org.chromium.components.messages.MessageDispatcherProvider; +import org.chromium.components.offline_items_collection.ContentId; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; @@ -62,4 +67,22 @@ mActivity = new WeakReference<ChromeActivity>((ChromeActivity) focusedActivity); return true; } + + @Override + public void openDownloadsPage(OTRProfileID otrProfileID, int source) { + DownloadManagerService.openDownloadsPage(otrProfileID, source); + } + + @Override + public void openDownload( + ContentId contentId, OTRProfileID otrProfileID, int source, Context context) { + DownloadUtils.openItem(contentId, otrProfileID, source, context); + } + + @Override + public void removeNotification(int notificationId, DownloadInfo downloadInfo) { + DownloadManagerService.getDownloadManagerService() + .getDownloadNotifier() + .removeDownloadNotification(notificationId, downloadInfo); + } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/AcknowledgeConverter.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/AcknowledgeConverter.java deleted file mode 100644 index 72ee4c5..0000000 --- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/AcknowledgeConverter.java +++ /dev/null
@@ -1,88 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.browserservices.digitalgoods; - -import static org.chromium.chrome.browser.browserservices.digitalgoods.DigitalGoodsConverter.convertResponseCode; - -import android.os.Bundle; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.browser.trusted.TrustedWebActivityCallback; - -import org.chromium.base.Log; -import org.chromium.payments.mojom.BillingResponseCode; -import org.chromium.payments.mojom.DigitalGoods.Acknowledge_Response; - -/** - * A converter that deals with the parameters and result for Acknowledge calls. - */ -class AcknowledgeConverter { - private static final String TAG = "DigitalGoods"; - - static final String PARAM_ACKNOWLEDGE_PURCHASE_TOKEN = "acknowledge.purchaseToken"; - static final String PARAM_ACKNOWLEDGE_MAKE_AVAILABLE_AGAIN = "acknowledge.makeAvailableAgain"; - static final String RESPONSE_ACKNOWLEDGE = "acknowledge.response"; - static final String RESPONSE_ACKNOWLEDGE_RESPONSE_CODE = "acknowledge.responseCode"; - - private AcknowledgeConverter() {} - - static Bundle convertParams(String purchaseToken, boolean makeAvailableAgain) { - Bundle bundle = new Bundle(); - bundle.putString(PARAM_ACKNOWLEDGE_PURCHASE_TOKEN, purchaseToken); - bundle.putBoolean(PARAM_ACKNOWLEDGE_MAKE_AVAILABLE_AGAIN, makeAvailableAgain); - return bundle; - } - - static TrustedWebActivityCallback convertCallback(Acknowledge_Response callback) { - return new TrustedWebActivityCallback() { - @Override - public void onExtraCallback(@NonNull String callbackName, @Nullable Bundle args) { - if (!RESPONSE_ACKNOWLEDGE.equals(callbackName)) { - Log.w(TAG, "Wrong callback name given: " + callbackName + "."); - returnClientAppError(callback); - return; - } - - if (args == null) { - Log.w(TAG, "No args provided."); - returnClientAppError(callback); - return; - } - - if (!(args.get(RESPONSE_ACKNOWLEDGE_RESPONSE_CODE) instanceof Integer)) { - Log.w(TAG, "Poorly formed args provided."); - returnClientAppError(callback); - return; - } - - int code = args.getInt(RESPONSE_ACKNOWLEDGE_RESPONSE_CODE); - callback.call(convertResponseCode(code, args)); - } - }; - } - - public static void returnClientAppUnavailable(Acknowledge_Response callback) { - callback.call(BillingResponseCode.CLIENT_APP_UNAVAILABLE); - } - - public static void returnClientAppError(Acknowledge_Response callback) { - callback.call(BillingResponseCode.CLIENT_APP_ERROR); - } - - /** - * Creates a {@link Bundle} that represents the result of an acknowledge call. This would be - * carried out by the client app and is only here to help testing. - */ - @VisibleForTesting - public static Bundle createResponseBundle(int responseCode) { - Bundle bundle = new Bundle(); - - bundle.putInt(RESPONSE_ACKNOWLEDGE_RESPONSE_CODE, responseCode); - - return bundle; - } -}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsAdapter.java index 42265fd..59252717 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsAdapter.java
@@ -13,7 +13,6 @@ import org.chromium.chrome.browser.browserservices.TrustedWebActivityClient; import org.chromium.chrome.browser.browserservices.TrustedWebActivityClientWrappers; import org.chromium.components.embedder_support.util.Origin; -import org.chromium.payments.mojom.DigitalGoods.Acknowledge_Response; import org.chromium.payments.mojom.DigitalGoods.GetDetails_Response; import org.chromium.payments.mojom.DigitalGoods.ListPurchases_Response; @@ -45,16 +44,6 @@ execute(scope, COMMAND_GET_DETAILS, args, callback, onError, onUnavailable); } - public void acknowledge(Uri scope, String purchaseToken, boolean makeAvailableAgain, - Acknowledge_Response response) { - Bundle args = AcknowledgeConverter.convertParams(purchaseToken, makeAvailableAgain); - TrustedWebActivityCallback callback = AcknowledgeConverter.convertCallback(response); - Runnable onError = () -> AcknowledgeConverter.returnClientAppError(response); - Runnable onUnavailable = () -> AcknowledgeConverter.returnClientAppUnavailable(response); - - execute(scope, COMMAND_ACKNOWLEDGE, args, callback, onError, onUnavailable); - } - public void listPurchases(Uri scope, ListPurchases_Response response) { Bundle args = new Bundle(); TrustedWebActivityCallback callback = ListPurchasesConverter.convertCallback(response);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsImpl.java index 8f2d458a..04834ec 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsImpl.java
@@ -10,7 +10,6 @@ import org.chromium.mojo.system.MojoException; import org.chromium.payments.mojom.DigitalGoods; -import org.chromium.payments.mojom.DigitalGoods.Acknowledge_Response; import org.chromium.payments.mojom.DigitalGoods.GetDetails_Response; import org.chromium.payments.mojom.DigitalGoods.ListPurchases_Response; import org.chromium.url.GURL; @@ -43,22 +42,22 @@ } @Override - public void acknowledge( - String purchaseToken, boolean makeAvailableAgain, Acknowledge_Response callback) { - GURL url = mDelegate.getUrl(); - if (url != null) { - mAdapter.acknowledge( - Uri.parse(url.getSpec()), purchaseToken, makeAvailableAgain, callback); - } - } - - @Override public void listPurchases(ListPurchases_Response callback) { GURL url = mDelegate.getUrl(); if (url != null) mAdapter.listPurchases(Uri.parse(url.getSpec()), callback); } @Override + public void listPurchaseHistory(ListPurchaseHistory_Response callback) { + // TODO(peconn) + } + + @Override + public void consume(String purchaseToken, Consume_Response callback) { + // TODO(peconn) + } + + @Override public void close() {} @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/ListPurchasesConverter.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/ListPurchasesConverter.java index cfa3b2c..c2523c7c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/ListPurchasesConverter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/digitalgoods/ListPurchasesConverter.java
@@ -17,10 +17,9 @@ import androidx.browser.trusted.TrustedWebActivityCallback; import org.chromium.base.Log; -import org.chromium.mojo_base.mojom.TimeDelta; import org.chromium.payments.mojom.BillingResponseCode; import org.chromium.payments.mojom.DigitalGoods.ListPurchases_Response; -import org.chromium.payments.mojom.PurchaseDetails; +import org.chromium.payments.mojom.PurchaseReference; import org.chromium.payments.mojom.PurchaseState; /** @@ -76,36 +75,23 @@ int code = args.getInt(KEY_RESPONSE_CODE); Parcelable[] array = args.getParcelableArray(KEY_PURCHASES_LIST); - PurchaseDetails[] details = convertParcelableArray( + PurchaseReference[] reference = convertParcelableArray( array, ListPurchasesConverter::convertPurchaseDetails) - .toArray(new PurchaseDetails[0]); - callback.call(convertResponseCode(code, args), details); + .toArray(new PurchaseReference[0]); + callback.call(convertResponseCode(code, args), reference); } }; } - static PurchaseDetails convertPurchaseDetails(Bundle purchase) { + /** Convert a PurchaseDetails bundle into a PurchaseReference object. */ + static PurchaseReference convertPurchaseDetails(Bundle purchase) { if (!checkField(purchase, KEY_ITEM_ID, String.class)) return null; if (!checkField(purchase, KEY_PURCHASE_TOKEN, String.class)) return null; - if (!checkField(purchase, KEY_ACKNOWLEDGED, Boolean.class)) return null; - if (!checkField(purchase, KEY_PURCHASE_STATE, Integer.class)) return null; - if (!checkField(purchase, KEY_PURCHASE_TIME_MICROSECONDS_PAST_UNIX_EPOCH, Long.class)) { - return null; - } - if (!checkField(purchase, KEY_WILL_AUTO_RENEW, Boolean.class)) return null; - TimeDelta purchaseTime = new TimeDelta(); - purchaseTime.microseconds = - purchase.getLong(KEY_PURCHASE_TIME_MICROSECONDS_PAST_UNIX_EPOCH); - - PurchaseDetails result = new PurchaseDetails(); + PurchaseReference result = new PurchaseReference(); result.itemId = purchase.getString(KEY_ITEM_ID); result.purchaseToken = purchase.getString(KEY_PURCHASE_TOKEN); - result.acknowledged = purchase.getBoolean(KEY_ACKNOWLEDGED); - result.purchaseState = convertPurchaseState(purchase.getInt(KEY_PURCHASE_STATE)); - result.purchaseTime = purchaseTime; - result.willAutoRenew = purchase.getBoolean(KEY_WILL_AUTO_RENEW); return result; } @@ -122,11 +108,11 @@ } static void returnClientAppUnavailable(ListPurchases_Response callback) { - callback.call(BillingResponseCode.CLIENT_APP_UNAVAILABLE, new PurchaseDetails[0]); + callback.call(BillingResponseCode.CLIENT_APP_UNAVAILABLE, new PurchaseReference[0]); } static void returnClientAppError(ListPurchases_Response callback) { - callback.call(BillingResponseCode.CLIENT_APP_ERROR, new PurchaseDetails[0]); + callback.call(BillingResponseCode.CLIENT_APP_ERROR, new PurchaseReference[0]); } @VisibleForTesting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java index 5550e26..127717d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
@@ -361,7 +361,7 @@ */ public void onActivityLaunched(DownloadMessageUiController.Delegate delegate) { if (!mActivityLaunched) { - mMessageUiController = new DownloadMessageUiControllerImpl(delegate); + mMessageUiController = DownloadMessageUiControllerFactory.create(delegate); DownloadNotificationService.clearResumptionAttemptLeft();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/app/tab_activity_glue/TabletPhoneLayoutChangeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/app/tab_activity_glue/TabletPhoneLayoutChangeTest.java index 1f68f7a7..b108661 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/app/tab_activity_glue/TabletPhoneLayoutChangeTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/app/tab_activity_glue/TabletPhoneLayoutChangeTest.java
@@ -4,6 +4,8 @@ package org.chromium.chrome.browser.app.tab_activity_glue; +import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_END_DEVICE; + import android.content.res.Configuration; import androidx.test.filters.MediumTest; @@ -16,13 +18,12 @@ import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Restriction; import org.chromium.chrome.browser.ChromeTabbedActivity; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.lifecycle.RecreateObserver; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.ui.base.DeviceFormFactor; @@ -33,7 +34,6 @@ */ @RunWith(ChromeJUnit4ClassRunner.class) @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -@EnableFeatures({ChromeFeatureList.ANDROID_LAYOUT_CHANGE_TAB_REPARENT}) public class TabletPhoneLayoutChangeTest { @Rule public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); @@ -45,6 +45,7 @@ @Test @MediumTest + @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) // See crbug.com/1302618. public void testIsRecreatedOnLayoutChange() throws TimeoutException { ChromeTabbedActivity cta = mActivityTestRule.getActivity(); boolean isTestOnTablet = cta.isTablet();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsTest.java index b0f89b3..8666794 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsTest.java
@@ -9,7 +9,6 @@ import static org.chromium.chrome.browser.browserservices.TestTrustedWebActivityService.COMMAND_SET_RESPONSE; import static org.chromium.chrome.browser.browserservices.TestTrustedWebActivityService.SET_RESPONSE_BUNDLE; import static org.chromium.chrome.browser.browserservices.TestTrustedWebActivityService.SET_RESPONSE_NAME; -import static org.chromium.chrome.browser.browserservices.digitalgoods.AcknowledgeConverter.RESPONSE_ACKNOWLEDGE; import android.net.Uri; import android.os.Build; @@ -167,40 +166,6 @@ assertEquals("\"Item 1\"", exec("itemDetails[0].title")); } - /** - * Tests that consume works correctly. - */ - @Test - @MediumTest - public void consume() throws TimeoutException { - DigitalGoodsFactoryImpl.setDigitalGoodsForTesting(createFixedDigitalGoods()); - - // Consume JS method currently results in a mojo call to Acknowledge. - setTwaServiceResponse(RESPONSE_ACKNOWLEDGE, AcknowledgeConverter.createResponseBundle(0)); - - exec("populateDigitalGoodsService()"); - waitForNonNull("digitalGoodsService"); - exec("callConsume('sku')"); - waitForNonNull("consumeFlag"); - } - - /** - * Tests that consume throws when acknowledge gives a non-zero response code. - */ - @Test - @MediumTest - public void consume_failsOnNonZeroResponse() throws TimeoutException { - DigitalGoodsFactoryImpl.setDigitalGoodsForTesting(createFixedDigitalGoods()); - - // Consume JS method currently results in a mojo call to Acknowledge. - setTwaServiceResponse(RESPONSE_ACKNOWLEDGE, AcknowledgeConverter.createResponseBundle(1)); - - exec("populateDigitalGoodsService()"); - waitForNonNull("digitalGoodsService"); - exec("callConsume('sku')"); - waitForNonNull("consumeError"); - } - private DigitalGoodsImpl createFixedDigitalGoods() { // There is one bit of production code that we need to change to make these tests work. // The page executing the JavaScript will be running in the EmbeddedTestServer and will
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/digitalgoods/FakeDigitalGoods.java b/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/digitalgoods/FakeDigitalGoods.java index 3855fcb8..de1e270 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/digitalgoods/FakeDigitalGoods.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/digitalgoods/FakeDigitalGoods.java
@@ -6,7 +6,6 @@ import org.chromium.mojo.system.MojoException; import org.chromium.payments.mojom.DigitalGoods; -import org.chromium.payments.mojom.DigitalGoods.Acknowledge_Response; import org.chromium.payments.mojom.DigitalGoods.GetDetails_Response; import org.chromium.payments.mojom.DigitalGoods.ListPurchases_Response; import org.chromium.payments.mojom.ItemDetails; @@ -54,11 +53,13 @@ } @Override - public void acknowledge( - String purchaseToken, boolean makeAvailableAgain, Acknowledge_Response callback) {} + public void listPurchases(ListPurchases_Response callback) {} @Override - public void listPurchases(ListPurchases_Response callback) {} + public void listPurchaseHistory(ListPurchaseHistory_Response callback) {} + + @Override + public void consume(String purchaseToken, Consume_Response callback) {} @Override public void close() {}
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadTest.java index 1ca4ff87..a818c57 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadTest.java
@@ -5,7 +5,6 @@ package org.chromium.chrome.browser.download; import android.app.Notification; -import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.os.Build; @@ -15,7 +14,6 @@ import android.util.Pair; import android.view.View; -import androidx.annotation.Nullable; import androidx.test.filters.MediumTest; import org.hamcrest.Matchers; @@ -56,11 +54,12 @@ import org.chromium.chrome.test.util.browser.Features; import org.chromium.components.download.DownloadState; import org.chromium.components.infobars.InfoBar; -import org.chromium.components.messages.MessageDispatcher; import org.chromium.components.offline_items_collection.ContentId; import org.chromium.components.offline_items_collection.FailState; +import org.chromium.components.offline_items_collection.OfflineItem; import org.chromium.components.offline_items_collection.OfflineItem.Progress; import org.chromium.components.offline_items_collection.PendingState; +import org.chromium.components.offline_items_collection.UpdateDelta; import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.test.util.DOMUtils; import org.chromium.content_public.browser.test.util.TestThreadUtils; @@ -68,7 +67,6 @@ import org.chromium.net.test.EmbeddedTestServer; import org.chromium.net.test.util.TestWebServer; import org.chromium.ui.base.PageTransition; -import org.chromium.ui.modaldialog.ModalDialogManager; import java.io.File; import java.util.ArrayList; @@ -125,39 +123,26 @@ } } - static class TestDownloadMessageUiController extends DownloadMessageUiControllerImpl { - public TestDownloadMessageUiController(Delegate delegate) { - super(delegate); - } + static class TestDownloadMessageUiController implements DownloadMessageUiController { + public TestDownloadMessageUiController() {} @Override - protected void showMessage(int state, DownloadProgressMessageUiData info) { - // Do nothing, so we don't impact other messages. - } - } - - static class TestDownloadMessageUiControllerDelegate - implements DownloadMessageUiController.Delegate { - @Nullable - @Override - public Context getContext() { - return null; - } - - @Nullable - @Override - public MessageDispatcher getMessageDispatcher() { - return null; - } - - @Nullable - @Override - public ModalDialogManager getModalDialogManager() { - return null; - } + public void onDownloadStarted() {} @Override - public boolean maybeSwitchToFocusedActivity() { + public void onNotificationShown(ContentId id, int notificationId) {} + + @Override + public void onItemsAdded(List<OfflineItem> items) {} + + @Override + public void onItemRemoved(ContentId id) {} + + @Override + public void onItemUpdated(OfflineItem item, UpdateDelta updateDelta) {} + + @Override + public boolean isShowing() { return false; } } @@ -371,8 +356,7 @@ () -> DownloadManagerService.getDownloadManagerService() .setInfoBarControllerForTesting( - new TestDownloadMessageUiController( - new TestDownloadMessageUiControllerDelegate()))); + new TestDownloadMessageUiController())); // Download a file. mDownloadTestRule.loadUrl(mTestServer.getURL(TEST_DOWNLOAD_DIRECTORY + "post.html"));
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsConverterTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsConverterTest.java index d7524374..e486cef 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsConverterTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/digitalgoods/DigitalGoodsConverterTest.java
@@ -9,10 +9,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import static org.chromium.chrome.browser.browserservices.digitalgoods.AcknowledgeConverter.PARAM_ACKNOWLEDGE_MAKE_AVAILABLE_AGAIN; -import static org.chromium.chrome.browser.browserservices.digitalgoods.AcknowledgeConverter.PARAM_ACKNOWLEDGE_PURCHASE_TOKEN; -import static org.chromium.chrome.browser.browserservices.digitalgoods.AcknowledgeConverter.RESPONSE_ACKNOWLEDGE; -import static org.chromium.chrome.browser.browserservices.digitalgoods.AcknowledgeConverter.RESPONSE_ACKNOWLEDGE_RESPONSE_CODE; import static org.chromium.chrome.browser.browserservices.digitalgoods.DigitalGoodsConverter.PLAY_BILLING_ITEM_ALREADY_OWNED; import static org.chromium.chrome.browser.browserservices.digitalgoods.DigitalGoodsConverter.PLAY_BILLING_ITEM_NOT_OWNED; import static org.chromium.chrome.browser.browserservices.digitalgoods.DigitalGoodsConverter.PLAY_BILLING_ITEM_UNAVAILABLE; @@ -30,13 +26,10 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.payments.mojom.BillingResponseCode; -import org.chromium.payments.mojom.DigitalGoods.Acknowledge_Response; import org.chromium.payments.mojom.DigitalGoods.GetDetails_Response; import org.chromium.payments.mojom.DigitalGoods.ListPurchases_Response; import org.chromium.payments.mojom.ItemDetails; -import org.chromium.payments.mojom.PurchaseDetails; - -import java.util.concurrent.atomic.AtomicInteger; +import org.chromium.payments.mojom.PurchaseReference; /** * Tests for {@link DigitalGoodsConverterTest}. @@ -148,40 +141,6 @@ } @Test - public void convertAcknowledgeParams() { - String token = "abcdef"; - boolean makeAvailableAgain = true; - - Bundle b = AcknowledgeConverter.convertParams(token, makeAvailableAgain); - - String outToken = b.getString(PARAM_ACKNOWLEDGE_PURCHASE_TOKEN); - boolean outMakeAvailableAgain = b.getBoolean(PARAM_ACKNOWLEDGE_MAKE_AVAILABLE_AGAIN); - - assertEquals(token, outToken); - assertEquals(makeAvailableAgain, outMakeAvailableAgain); - } - - @Test - public void convertAcknowledgeCallback() { - // Since there's only one value we want to get out of the callback, we can use Atomic* - // instead of creating a new class. - AtomicInteger state = new AtomicInteger(); - - Acknowledge_Response callback = (responseCode) -> state.set(responseCode); - - TrustedWebActivityCallback convertedCallback = - AcknowledgeConverter.convertCallback(callback); - - Bundle args = new Bundle(); - int responseCode = 0; - args.putInt(RESPONSE_ACKNOWLEDGE_RESPONSE_CODE, responseCode); - - convertedCallback.onExtraCallback(RESPONSE_ACKNOWLEDGE, args); - - assertEquals(responseCode, state.get()); - } - - @Test public void convertListPurchases() { String id = "id"; String token = "token"; @@ -193,19 +152,14 @@ Bundle bundle = ListPurchasesConverter.createPurchaseDetailsBundle( id, token, acknowledged, state, time, autoRenew); - PurchaseDetails details = ListPurchasesConverter.convertPurchaseDetails(bundle); - assertPurchaseDetails(details, id, token, acknowledged, state, time, autoRenew); + PurchaseReference reference = ListPurchasesConverter.convertPurchaseDetails(bundle); + assertPurchaseReference(reference, id, token); } - private static void assertPurchaseDetails(PurchaseDetails details, String itemId, - String purchaseToken, boolean acknowledged, int purchaseState, long purchaseTime, - boolean willAutoRenew) { - assertEquals(details.itemId, itemId); - assertEquals(details.purchaseToken, purchaseToken); - assertEquals(details.acknowledged, acknowledged); - assertEquals(details.purchaseState, purchaseState); - assertEquals(details.purchaseTime.microseconds, purchaseTime); - assertEquals(details.willAutoRenew, willAutoRenew); + private static void assertPurchaseReference( + PurchaseReference reference, String itemId, String purchaseToken) { + assertEquals(reference.itemId, itemId); + assertEquals(reference.purchaseToken, purchaseToken); } @Test @@ -226,35 +180,11 @@ bundle.putInt(ListPurchasesConverter.KEY_PURCHASE_TOKEN, 5); assertNull(ListPurchasesConverter.convertPurchaseDetails(bundle)); } - - { - Bundle bundle = validBundle.deepCopy(); - bundle.putInt(ListPurchasesConverter.KEY_ACKNOWLEDGED, 5); - assertNull(ListPurchasesConverter.convertPurchaseDetails(bundle)); - } - - { - Bundle bundle = validBundle.deepCopy(); - bundle.putBoolean(ListPurchasesConverter.KEY_PURCHASE_STATE, true); - assertNull(ListPurchasesConverter.convertPurchaseDetails(bundle)); - } - - { - Bundle bundle = validBundle.deepCopy(); - bundle.putInt(ListPurchasesConverter.KEY_PURCHASE_TIME_MICROSECONDS_PAST_UNIX_EPOCH, 5); - assertNull(ListPurchasesConverter.convertPurchaseDetails(bundle)); - } - - { - Bundle bundle = validBundle.deepCopy(); - bundle.putInt(ListPurchasesConverter.KEY_WILL_AUTO_RENEW, 5); - assertNull(ListPurchasesConverter.convertPurchaseDetails(bundle)); - } } @Test public void convertListPurchasesCallback() { - TestState<PurchaseDetails> state = new TestState<>(); + TestState<PurchaseReference> state = new TestState<>(); ListPurchases_Response callback = (responseCode, purchaseDetails) -> { state.responseCode = responseCode; state.results = purchaseDetails; @@ -272,8 +202,8 @@ assertEquals(DigitalGoodsConverter.convertResponseCode(responseCode, Bundle.EMPTY), state.responseCode); - assertPurchaseDetails(state.results[0], "1", "t1", true, 1, 1L, true); - assertPurchaseDetails(state.results[1], "2", "t2", false, 2, 2L, false); + assertPurchaseReference(state.results[0], "1", "t1"); + assertPurchaseReference(state.results[1], "2", "t2"); } @Test @@ -313,4 +243,4 @@ assertEquals(BillingResponseCode.ERROR, convertResponseCode(123, args)); assertEquals(BillingResponseCode.ERROR, convertResponseCode(-12, args)); } -} \ No newline at end of file +}
diff --git a/chrome/app/app_management_strings.grdp b/chrome/app/app_management_strings.grdp index 1545a04..2327ed1 100644 --- a/chrome/app/app_management_strings.grdp +++ b/chrome/app/app_management_strings.grdp
@@ -136,6 +136,9 @@ <message name="IDS_APP_MANAGEMENT_APP_DETAILS_TYPE_AND_SOURCE_COMBINED" desc="Full text for installation source and app type line"> <ph name="APP_TYPE">$1<ex>Web App</ex></ph> installed from <ph name="INSTALL_SOURCE">$2<ex>Chrome browser</ex></ph> </message> + <message name="IDS_APP_MANAGEMENT_APP_DETAILS_VERSION" desc="Text for application version"> + Version: <ph name="APP_VERSION">$1<ex>17.2</ex></ph> + </message> <!-- File Handling --> <message name="IDS_APP_MANAGEMENT_FILE_HANDLING_HEADER" desc="Main text for toggling a web app's ability to use the File Handling API. This controls whether the app can appear in an 'Open With' list in a file's context menu.">
diff --git a/chrome/app/app_management_strings_grdp/IDS_APP_MANAGEMENT_APP_DETAILS_VERSION.png.sha1 b/chrome/app/app_management_strings_grdp/IDS_APP_MANAGEMENT_APP_DETAILS_VERSION.png.sha1 new file mode 100644 index 0000000..cd332075 --- /dev/null +++ b/chrome/app/app_management_strings_grdp/IDS_APP_MANAGEMENT_APP_DETAILS_VERSION.png.sha1
@@ -0,0 +1 @@ +87285b870508ce3de0afce6739ca7c1030ccde7f \ No newline at end of file
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index f1bbca2..46e00a65 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -1437,6 +1437,7 @@ <translation id="2349896577940037438">Hvis indstillingen for yderligere web- og appaktivitet er aktiveret, gemmes disse data muligvis på din Google-konto. Du kan se dine data, slette dem, og ændre dine kontoindstillinger på account.google.com.</translation> <translation id="2350133097354918058">Genindlæst</translation> <translation id="2350182423316644347">Starter applikation...</translation> +<translation id="235028206512346451">Hvis du bevæger dig væk fra din enhed, låser din skærm automatisk. Når du befinder dig foran din enhed, forbliver din skærm ulåst i længere tid. Hvis du ikke bruger en låseskærm, går din enhed i dvale i stedet for at låse.</translation> <translation id="2352495879228166246">{NUM_ITEMS,plural, =1{1 element}one{{NUM_ITEMS} element}other{{NUM_ITEMS} elementer}}</translation> <translation id="2352662711729498748">< 1 MB</translation> <translation id="2352810082280059586">Noter på låseskærmen gemmes automatisk i <ph name="LOCK_SCREEN_APP_NAME" />. Din seneste note forbliver på låseskærmen.</translation> @@ -1979,6 +1980,7 @@ <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> <translation id="288734198558082692"><ph name="DEVICE" /> og <ph name="NUMBER_OF_DEVICES" /> andre</translation> <translation id="2889064240420137087">Åbn link med...</translation> +<translation id="2891566119238851894">Åbn søgning i sidepanel. Søgningen er ikke åben i sidepanelet.</translation> <translation id="2891922230654533301">Vil du logge ind på <ph name="APP_NAME" /> med din enhed?</translation> <translation id="2893168226686371498">Standardbrowser</translation> <translation id="2893180576842394309">Google kan bruge din historik til at tilpasse Søgning og andre Google-tjenester</translation> @@ -2737,6 +2739,7 @@ <translation id="3677959414150797585">Omfatter apps, websider og mere. Sender kun statistik til forbedring af forslag, hvis du har valgt at dele dine brugsdata.</translation> <translation id="3678156199662914018">Udvidelse: <ph name="EXTENSION_NAME" /></translation> <translation id="3678188444105291936">De sider, du ser i dette vindue, vises ikke i browserhistorikken, og de efterlader ikke andre spor som f.eks. cookies på computeren, når du logger ud. De filer, du downloader, og bogmærker, du opretter, bliver ikke gemt.</translation> +<translation id="368019053277764111">Åbn søgning i sidepanel</translation> <translation id="3680683624079082902">Stemme til oplæsning</translation> <translation id="3681311097828166361">Tak for din feedback. Du er offline nu, og din rapport sendes senere.</translation> <translation id="3682824389861648626">Grænse for bevægelse</translation> @@ -4847,6 +4850,7 @@ <translation id="5799478978078236781">Få tips, tilbud og opdateringer vedrørende <ph name="DEVICE_TYPE" />, og giv feedback.</translation> <translation id="5799508265798272974">Virtuel Linux-maskine: <ph name="LINUX_VM_NAME" /></translation> <translation id="5800020978570554460">Destinationsfilen er blevet forkortet eller fjernet siden sidste download.</translation> +<translation id="5800351251499368110">Luk søgning i sidepanel. Søgningen er åben i sidepanelet.</translation> <translation id="5801568494490449797">Præferencer</translation> <translation id="5804241973901381774">Tilladelser</translation> <translation id="5805697420284793859">Vinduesadministrator</translation> @@ -6358,6 +6362,7 @@ <translation id="7356908624372060336">Netværkslogs</translation> <translation id="735745346212279324">VPN afbrudt</translation> <translation id="7358324924540718595">Minder skjules i dag</translation> +<translation id="7358338787722390626">Luk søgning i sidepanel</translation> <translation id="735994578317267253">Få dine apps, indstillinger m.m. på enhver ChromeOS-enhed</translation> <translation id="7360233684753165754"><ph name="PAGE_NUMBER" /> sider til <ph name="PRINTER_NAME" /></translation> <translation id="7361297102842600584">Klik for at køre <ph name="PLUGIN_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index 093ec55..c171cb01 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -63,6 +63,7 @@ <translation id="1061130374843955397">Te damos la bienvenida a <ph name="DEVICE_TYPE" /></translation> <translation id="1061373870045429865">Crear código QR para este enlace</translation> <translation id="1061904396131502319">Ya casi es la hora de hacer un descanso</translation> +<translation id="1062628064301375934">Ayúdanos a crear una Web más privada</translation> <translation id="1066613507389053689">Hace falta actualizar Chrome OS</translation> <translation id="1067048845568873861">Creada</translation> <translation id="1067922213147265141">Otros servicios de Google</translation> @@ -584,6 +585,7 @@ <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (invitado)</translation> <translation id="1572266655485775982">Habilitar Wi-Fi</translation> <translation id="1572876035008611720">Introduce tu correo electrónico</translation> +<translation id="1573632872794824374">Estamos explorando nuevas funciones que permitan a los sitios ofrecer la misma experiencia de navegación usando menos información tuya</translation> <translation id="1575741822946219011">Idiomas y métodos de introducción de texto</translation> <translation id="1576594961618857597">Avatar blanco predeterminado</translation> <translation id="1578558981922970608">Forzar cierre</translation> @@ -1371,6 +1373,7 @@ <ph name="FOOTER_MESSAGE" /></translation> <translation id="2307630946657910723">Buscar parte de la página con <ph name="VISUAL_SEARCH_PROVIDER" /></translation> <translation id="2309620859903500144">Esta página no tiene permiso para acceder a los sensores de luz y movimiento.</translation> +<translation id="2311721625890389967">↓</translation> <translation id="2312219318583366810">URL de la página</translation> <translation id="2314165183524574721">El ajuste de visibilidad actual es oculto</translation> <translation id="2314774579020744484">Idioma utilizado al traducir páginas</translation> @@ -1637,6 +1640,7 @@ <translation id="2553340429761841190"><ph name="PRODUCT_NAME" /> no ha podido establecer conexión con <ph name="NETWORK_ID" />. Selecciona otra red o vuelve a intentarlo.</translation> <translation id="2553440850688409052">Ocultar este complemento</translation> <translation id="2554553592469060349">El archivo seleccionado es demasiado grande (tamaño máximo: 3 MB).</translation> +<translation id="2558569818338050235">Tu historial de navegación influye en los anuncios que ves</translation> <translation id="2558896001721082624">Mostrar siempre opciones de accesibilidad en el menú del sistema</translation> <translation id="2564520396658920462">La ejecución de JavaScript a través de AppleScript está desactivada. Para activarla, en la barra de menú, accede a Ver > Opciones para desarrolladores > Permitir JavaScript desde Eventos de Apple. Puedes consultar más información en la página https://support.google.com/chrome/?p=applescript</translation> <translation id="2564653188463346023">Revisión ortográfica mejorada</translation> @@ -1770,6 +1774,7 @@ <translation id="2709516037105925701">Autocompletar</translation> <translation id="2710101514844343743">Datos de uso y diagnóstico</translation> <translation id="271033894570825754">Nuevo</translation> +<translation id="2711073837061989559">Pruebas</translation> <translation id="2712173769900027643">Solicitar permiso</translation> <translation id="2713106313042589954">Desactivar cámara</translation> <translation id="2713444072780614174">Blanco</translation> @@ -1964,6 +1969,7 @@ <translation id="288734198558082692"><ph name="DEVICE" /> y <ph name="NUMBER_OF_DEVICES" /> más</translation> <translation id="2889064240420137087">Abrir enlace con...</translation> <translation id="2891922230654533301">¿Usar tu dispositivo para iniciar sesión en <ph name="APP_NAME" />?</translation> +<translation id="2893013536106749396">Elige tarjetas que te mantengan al día de las cosas que te importan.</translation> <translation id="2893168226686371498">Navegador predeterminado</translation> <translation id="2893180576842394309">Es posible que Google utilice tu historial para personalizar la Búsqueda y otros servicios de Google</translation> <translation id="2894757982205307093">Nueva pestaña en grupo</translation> @@ -2077,6 +2083,7 @@ <translation id="3003623123441819449">Caché de CSS</translation> <translation id="3003828226041301643">No se puede vincular el dispositivo con el dominio. Consulta en tu cuenta si tienes los privilegios necesarios para añadir dispositivos.</translation> <translation id="3003967365858406397">Tu <ph name="PHONE_NAME" /> creará una conexión Wi-Fi privada.</translation> +<translation id="3005574332301273731">No mostrar</translation> <translation id="3006881078666935414">No hay datos de uso</translation> <translation id="3007771295016901659">Duplicar pestaña</translation> <translation id="3008232374986381779">Ejecuta IDEs, editores y herramientas de Linux en tu <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> @@ -2133,6 +2140,7 @@ <translation id="3053013834507634016">Uso de claves de certificado</translation> <translation id="3053273573829329829">Habilitar el PIN de usuario</translation> <translation id="3054766768827382232">Al inhabilitarla, tus periféricos funcionan mejor, pero puede que expongan tus datos personales mediante un uso no autorizado.</translation> +<translation id="3055113921564083271">Intereses que has eliminado</translation> <translation id="3055590424724986000">Con el proveedor que elijas</translation> <translation id="3058498974290601450">Puedes activar la sincronización en cualquier momento desde la configuración</translation> <translation id="3058517085907878899">Nombre del dispositivo</translation> @@ -2250,6 +2258,7 @@ <translation id="3183944777708523606">Disposición del monitor</translation> <translation id="3184536091884214176">Configurar o gestionar impresoras CUPS. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> <translation id="3185014249447200271">{NUM_APPS,plural, =1{Esta aplicación está bloqueada}other{Algunas aplicaciones están bloqueadas}}</translation> +<translation id="3187472288455401631">Medición de anuncios</translation> <translation id="3188257591659621405">Mis archivos</translation> <translation id="3188465121994729530">Media móvil</translation> <translation id="3189187154924005138">Cursor grande</translation> @@ -2619,6 +2628,7 @@ <translation id="3575121482199441727">Permitir para este sitio web</translation> <translation id="3577745545227000795">Recogida de datos de hardware de <ph name="DEVICE_OS" /></translation> <translation id="3578594933904494462">Se está compartiendo el contenido de esta pestaña.</translation> +<translation id="3578874072190212775">Ayuda a los sitios a luchar contra el fraude y a distinguir a los bots de las personas</translation> <translation id="3581605050355435601">Configurar automáticamente la dirección IP</translation> <translation id="3582057310199111521">Introducida en un sitio web engañoso y encontrada en una quiebra de seguridad de datos</translation> <translation id="3584169441612580296">Leer y modificar fotos, música y otros archivos multimedia de tu ordenador</translation> @@ -3069,6 +3079,7 @@ <translation id="3979748722126423326">Habilitar <ph name="NETWORKDEVICE" /></translation> <translation id="3981058120448670012">Visible para los dispositivos cercanos con el nombre <ph name="DEVICE_NAME" /> durante <ph name="REMAINING_TIME" />...</translation> <translation id="3981760180856053153">Tipo de almacenamiento no válido</translation> +<translation id="3981902534690264083">Los anunciantes pueden comprender el rendimiento de los anuncios</translation> <translation id="3982375475032951137">Configura tu navegador con unos sencillos pasos</translation> <translation id="3983400541576569538">Es posible que se hayan perdido datos de algunas aplicaciones</translation> <translation id="3983586614702900908">dispositivos de un proveedor desconocido</translation> @@ -4295,6 +4306,7 @@ <translation id="5265797726250773323">No se ha podido instalar</translation> <translation id="5266113311903163739">Error de importación de la entidad emisora de certificados</translation> <translation id="526622169288322445">Más acciones de <ph name="ADDRESS_SUMMARY" /></translation> +<translation id="5268373933383932086">Tu página, tu estilo</translation> <translation id="5269977353971873915">Error de impresión</translation> <translation id="5273806377963980154">Editar URL del sitio</translation> <translation id="5275352920323889391">Perro</translation> @@ -5107,6 +5119,7 @@ <translation id="6080689532560039067">Comprueba la hora del sistema</translation> <translation id="6082877069782862752">Mapeo de teclas</translation> <translation id="608531959444400877"><ph name="WINDOW_TITLE" />: parte de un grupo sin nombre</translation> +<translation id="6085457109149794212">Consulta todas las opciones de las tarjetas en Personalizar Chrome.</translation> <translation id="6085886413119427067">Determina cómo conectarse a sitios web mediante una conexión segura</translation> <translation id="6086004606538989567">La cuenta que has verificado no tiene autorización para acceder a este dispositivo.</translation> <translation id="6086846494333236931">Instalada por tu administrador</translation> @@ -5560,6 +5573,7 @@ <translation id="6537613839935722475">El nombre puede contener letras, números y guiones (-).</translation> <translation id="6538098297809675636">No se ha podido detectar el código</translation> <translation id="653920215766444089">Buscando dispositivo señalador</translation> +<translation id="653983593749614101">Reanudando...</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> Habilita esta opción solo si tienes conciencia de los efectos de esta acción o si se te ha pedido que lo hagas, ya que la recogida de datos puede reducir el rendimiento.</translation> <translation id="6540672086173674880">Es posible que Google use tu historial de navegación para personalizar la Búsqueda y otros servicios de Google. Puedes cambiar esta opción en cualquier momento en myaccount.google.com/activitycontrols/search</translation> <translation id="6541638731489116978">Este sitio web no tiene permiso para acceder a los sensores de movimiento.</translation> @@ -5775,6 +5789,7 @@ <translation id="6767566652486411142">Elegir otro idioma...</translation> <translation id="6767639283522617719">No se puede vincular el dominio. Comprueba que la configuración de la unidad organizativa sea correcta.</translation> <translation id="6768034047581882264">No puede mostrar contenido no seguro</translation> +<translation id="6770042910635026163">Sitios que visitas que definen tus intereses</translation> <translation id="6770602306803890733">Mejora tu seguridad y la de todos los usuarios en la Web</translation> <translation id="6771503742377376720">Es una entidad emisora de certificados.</translation> <translation id="6775163072363532304">Aquí aparecerán los dispositivos disponibles.</translation> @@ -6333,6 +6348,7 @@ <translation id="7347943691222276892">Haz clic para salir de <ph name="SUBPAGE_TITLE" />.</translation> <translation id="7348093485538360975">Teclado en pantalla</translation> <translation id="7349010927677336670">Fluidez del vídeo</translation> +<translation id="7352531447904559593">Más información sobre la personalización de anuncios basada en el navegador</translation> <translation id="7352651011704765696">Se ha producido un problema</translation> <translation id="7353261921908507769">Tus contactos pueden compartir archivos contigo cuando estén cerca de ti. Las transferencias no se iniciarán hasta que las aceptes.</translation> <translation id="735361434055555355">Instalando Linux...</translation> @@ -6622,6 +6638,7 @@ <translation id="7631887513477658702">&Abrir siempre archivos de este tipo</translation> <translation id="7632948528260659758">No se han podido actualizar las siguientes aplicaciones de kiosco:</translation> <translation id="7633724038415831385">Esta es la única vez que tendrás que esperar por una actualización. En los Chromebooks, las actualizaciones de software se realizan en segundo plano.</translation> +<translation id="7634280112532283638">Reducción del spam y el fraude</translation> <translation id="7634566076839829401">Se ha producido un error. Vuelve a intentarlo.</translation> <translation id="7635048370253485243">Fijada por tu administrador</translation> <translation id="763632859238619983">No permitir a ningún sitio web instalar controladores de pago</translation> @@ -6974,6 +6991,7 @@ <translation id="7957074856830851026">Ver información del dispositivo, como el número de serie o el ID de recurso</translation> <translation id="7957615753207896812">Abrir la configuración del teclado</translation> <translation id="7959074893852789871">El archivo contenía varios certificados, pero algunos de ellos no se han importado:</translation> +<translation id="7959157064403954786">Prueba anuncios más transparentes</translation> <translation id="7959665254555683862">Nueva pestaña de incógnito</translation> <translation id="7961015016161918242">Nunca</translation> <translation id="7963001036288347286">Aceleración del panel táctil</translation> @@ -7661,6 +7679,7 @@ <translation id="866611985033792019">Confiar en este certificado para identificar a usuarios de correo electrónico</translation> <translation id="8666584013686199826">Preguntar cuando un sitio web quiera acceder a los dispositivos USB</translation> <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> se muestra ahora en pantalla completa y ha inhabilitado el cursor del ratón.</translation> +<translation id="8667760277771450375">Estamos explorando formas de restringir el seguimiento entre sitios, así como que los sitios puedan detener el spam publicitario y el fraude.</translation> <translation id="8668052347555487755">Modo de color</translation> <translation id="8669284339312441707">Más cálido</translation> <translation id="8670537393737592796">Para volver aquí rápidamente, instala <ph name="APP_NAME" /> haciendo clic en el botón Instalar</translation> @@ -8262,6 +8281,7 @@ <translation id="968000525894980488">Activa los Servicios de Google Play.</translation> <translation id="968037381421390582">Pe&gar y buscar "<ph name="SEARCH_TERMS" />"</translation> <translation id="969096075394517431">Cambiar idiomas</translation> +<translation id="969573236494556070">Limitar lo que se comparte entre sitios</translation> <translation id="970047733946999531">{NUM_TABS,plural, =1{1 pestaña}other{# pestañas}}</translation> <translation id="971510864672937292">¿Borrar datos del sitio y permisos de <ph name="SITE_NAME" /> y de todos los sitios que incluya?</translation> <translation id="971774202801778802">Añadir URL a marcadores</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index a93155cb..820d7788 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -63,6 +63,7 @@ <translation id="1061130374843955397">به <ph name="DEVICE_TYPE" /> خودتان خوش آمدید</translation> <translation id="1061373870045429865">ایجاد رمزینه پاسخسریع برای این پیوند</translation> <translation id="1061904396131502319">تقریباً زمان استراحت است</translation> +<translation id="1062628064301375934">به ما کمک کنید وب را خصوصیتر کنیم</translation> <translation id="1066613507389053689">بهروزرسانی Chrome OS الزامی است</translation> <translation id="1067048845568873861">ایجاد شد</translation> <translation id="1067922213147265141">سایر سرویسهای Google</translation> @@ -585,6 +586,7 @@ <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (مهمان)</translation> <translation id="1572266655485775982">فعال کردن Wi-Fi</translation> <translation id="1572876035008611720">ایمیلتان را وارد کنید</translation> +<translation id="1573632872794824374">درحال کاوش ویژگیهای جدیدی هستیم که به سایتها امکان میدهد تجربه مرور یکسانی را با مصرف دادههای شخصی کمتر ارائه دهند</translation> <translation id="1575741822946219011">زبانها و ورودیها</translation> <translation id="1576594961618857597">چهرهنمای پیشفرض سفید</translation> <translation id="1578558981922970608">بستن اجباری</translation> @@ -1382,6 +1384,7 @@ <ph name="FOOTER_MESSAGE" /></translation> <translation id="2307630946657910723">جستجوی قسمتی از صفحه با <ph name="VISUAL_SEARCH_PROVIDER" /></translation> <translation id="2309620859903500144">دسترسی این سایت به حسگرهای نور یا حرکت مسدود شده است.</translation> +<translation id="2311721625890389967">↓</translation> <translation id="2312219318583366810">نشانی وب صفحه</translation> <translation id="2314165183524574721">تنظیم نمایان بودن کنونی «پنهان» است</translation> <translation id="2314774579020744484">زبان استفادهشده هنگام ترجمه صفحات</translation> @@ -1433,6 +1436,7 @@ <translation id="2349896577940037438">اگر تنظیم «فعالیت وب و برنامه» تکمیلی روشن باشد، ممکن است این دادهها در «حساب Google» شما ذخیره شود. میتوانید در account.google.com، دادههایتان را ببینید، حذف کنید، و تنظیمات حسابتان را تغییر دهید.</translation> <translation id="2350133097354918058">تازهسازی شد</translation> <translation id="2350182423316644347">راهاندازی برنامه کاربردی...</translation> +<translation id="235028206512346451">اگر از دستگاهتان دور شوید، صفحهنمایش بهطور خودکار قفل میشود. وقتی مقابل دستگاهتان هستید، صفحهنمایش بهمدت طولانیتری بیدار میماند. اگر از صفحه قفل استفاده نمیکنید، دستگاه بهجای قفل شدن به خواب میرود.</translation> <translation id="2352495879228166246">{NUM_ITEMS,plural, =1{۱ مورد}one{{NUM_ITEMS} مورد}other{{NUM_ITEMS} مورد}}</translation> <translation id="2352662711729498748">کمتر از ۱ مگابایت</translation> <translation id="2352810082280059586">یادداشتهای صفحه درحالت قفل بهطور خودکار در <ph name="LOCK_SCREEN_APP_NAME" /> ذخیره میشوند. جدیدترین یادداشت روی صفحه قفل باقی میماند.</translation> @@ -1648,6 +1652,7 @@ <translation id="2553340429761841190"><ph name="PRODUCT_NAME" /> نتوانست به <ph name="NETWORK_ID" /> متصل شود. لطفاً یک شبکه دیگر را انتخاب کرده یا دوباره امتحان کنید.</translation> <translation id="2553440850688409052">پنهان کردن این افزایه</translation> <translation id="2554553592469060349">فایل انتخابی بیش از حد بزرگ است (حداکثر اندازه: ۳ مگابایت).</translation> +<translation id="2558569818338050235">سابقه مرورتان بر آگهیهایی که میبینید تأثیر میگذارد</translation> <translation id="2558896001721082624">گزینههای دسترسپذیری در منوی سیستم همیشه نمایش داده شوند</translation> <translation id="2564520396658920462">اجرای جاوااسکریپت ازطریق AppleScript خاموش شده است. برای روشن کردن آن، از نوار منو به View (مشاهده) > Developer (برنامهنویس) > Allow JavaScript from Apple Events (مجاز کردن JavaScript از رویدادهای Apple) بروید. برای اطلاعات بیشتر به این نشانی بروید: https://support.google.com/chrome/?p=applescript</translation> <translation id="2564653188463346023">غلطگیر املا بهبودیافته</translation> @@ -1781,6 +1786,7 @@ <translation id="2709516037105925701">تکمیل خودکار</translation> <translation id="2710101514844343743">دادههای استفاده و عیبیابی</translation> <translation id="271033894570825754">جدید</translation> +<translation id="2711073837061989559">دورههای آزمایشی</translation> <translation id="2712173769900027643">درخواست اجازه</translation> <translation id="2713106313042589954">خاموش کردن دوربین</translation> <translation id="2713444072780614174">سفید</translation> @@ -1975,7 +1981,9 @@ <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> <translation id="288734198558082692"><ph name="DEVICE" /> و <ph name="NUMBER_OF_DEVICES" /> مورد دیگر</translation> <translation id="2889064240420137087">بازکردن پیوند با...</translation> +<translation id="2891566119238851894">جستجو در پانل کناری باز میشود. جستجو در پانل کناری باز نیست.</translation> <translation id="2891922230654533301">برای وارد شدن به سیستم <ph name="APP_NAME" /> از دستگاهتان استفاده شود؟</translation> +<translation id="2893013536106749396">کارتهایی را انتخاب کنید که شما را از چیزهایی که برایتان مهم است مطلع میکند</translation> <translation id="2893168226686371498">مرورگر پیشفرض</translation> <translation id="2893180576842394309">Google ممکن است از سابقه مرور شما برای شخصی کردن جستجو و سایر سرویسهای Google استفاده کند</translation> <translation id="2894757982205307093">برگه جدید در گروه</translation> @@ -2089,6 +2097,7 @@ <translation id="3003623123441819449">حافظهٔ پنهان CSS</translation> <translation id="3003828226041301643">نمیتوان دستگاه را به دامنه وصل کرد. حسابتان را بررسی کنید تا مطمئن شوید برای اضافه کردن دستگاه مجاز هستید.</translation> <translation id="3003967365858406397"><ph name="PHONE_NAME" /> شما اتصال Wi-Fi خصوصی ایجاد خواهد کرد.</translation> +<translation id="3005574332301273731">نشان داده نشود</translation> <translation id="3006881078666935414">هیچ داده مصرفی وجود ندارد</translation> <translation id="3007771295016901659">کپی کردن برگه</translation> <translation id="3008232374986381779">ابزارها، ویرایشگرها و محیطهای یکپارچه توسعه نرمافزار (IDEs) Linux را در <ph name="DEVICE_TYPE" /> اجرا کنید. <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation> @@ -2145,6 +2154,7 @@ <translation id="3053013834507634016">کاربرد کلید گواهی</translation> <translation id="3053273573829329829">فعال کردن پین کاربر</translation> <translation id="3054766768827382232">غیرفعالسازی ممکن است باعث شود لوازم جانبی بهتر عمل کنند اما ممکن است دادههای شخصیتان را ازطریق استفاده غیرمجاز درمعرض خطر قرار دهد.</translation> +<translation id="3055113921564083271">علایقی که برداشتهاید</translation> <translation id="3055590424724986000">با ارائهدهندهای به انتخاب خودتان</translation> <translation id="3058498974290601450">هرزمان خواستید میتوانید همگامسازی را در تنظیمات روشن کنید</translation> <translation id="3058517085907878899">نامگذاری دستگاه</translation> @@ -2262,6 +2272,7 @@ <translation id="3183944777708523606">تنظیم نمایشگر</translation> <translation id="3184536091884214176">چاپگرهای CUPS را راهاندازی یا مدیریت کنید. <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation> <translation id="3185014249447200271">{NUM_APPS,plural, =1{این برنامه مسدود شده است}one{برخی برنامهها مسدود شدهاند}other{برخی برنامهها مسدود شدهاند}}</translation> +<translation id="3187472288455401631">سنجش آگهی</translation> <translation id="3188257591659621405">فایلهای من</translation> <translation id="3188465121994729530">میانگین متحرک</translation> <translation id="3189187154924005138">نشانگر بزرگ</translation> @@ -2631,6 +2642,7 @@ <translation id="3575121482199441727">مجاز برای این سایت</translation> <translation id="3577745545227000795">مجموعه دادههای سختافزار <ph name="DEVICE_OS" /></translation> <translation id="3578594933904494462">محتوای این برگه اشتراکگذاری میشود.</translation> +<translation id="3578874072190212775">کمک به سایتها در مبارزه با تقلب و تشخیص روباتها از افراد</translation> <translation id="3581605050355435601">پیکربندی خودکار نشانی IP</translation> <translation id="3582057310199111521">در سایت فریبدهنده وارد و در نقض داده پیدا شد</translation> <translation id="3584169441612580296">خواندن و تغییر عکسها، موسیقی، و رسانههای دیگر از رایانهتان</translation> @@ -2733,6 +2745,7 @@ <translation id="3677959414150797585">شامل برنامهها، صفحههای وب و موارد دیگر میشود. تنها درصورتیکه همرسانی دادههای استفاده را انتخاب کرده باشید، آمار را برای بهبود پیشنهادها ارسال میکند.</translation> <translation id="3678156199662914018">برنامهٔ افزودنی: <ph name="EXTENSION_NAME" /></translation> <translation id="3678188444105291936">صفحههایی که در این پنجره مشاهده میکنید در سابقه مرورگر نشان داده نمیشوند و بعد از خروج از سیستم هیچ رد دیگری (مثلاً کوکی) از خودشان در رایانه بهجای نمیگذارند. فایلهایی که بارگیری میکنید و نشانکهایی که ایجاد میکنید حفظ نخواهند شد.</translation> +<translation id="368019053277764111">باز کردن جستجو در پانل کناری</translation> <translation id="3680683624079082902">صدای نوشتار به گفتار</translation> <translation id="3681311097828166361">از بازخوردتان سپاسگزاریم. درحالحاضر آفلاین هستید و گزارشتان بعداً ارسال میشود.</translation> <translation id="3682824389861648626">آستانه حرکت</translation> @@ -3083,6 +3096,7 @@ <translation id="3979748722126423326">فعال کردن <ph name="NETWORKDEVICE" /></translation> <translation id="3981058120448670012">نمایان برای دستگاههای اطراف با نام <ph name="DEVICE_NAME" /> بهمدت <ph name="REMAINING_TIME" />…</translation> <translation id="3981760180856053153">نوع ذخیره نامعتبری وارد شده است.</translation> +<translation id="3981902534690264083">تبلیغکنندگان میتوانند نحوه عملکرد آگهیها را درک کنند</translation> <translation id="3982375475032951137">راهاندازی مرورگر طی چند مرحله ساده</translation> <translation id="3983400541576569538">ممکن است دادههای برخی برنامهها از دست بروند</translation> <translation id="3983586614702900908">دستگاههای ارائهدهنده ناشناس</translation> @@ -4310,6 +4324,7 @@ <translation id="5265797726250773323">هنگام نصب خطایی روی داد</translation> <translation id="5266113311903163739">خطای ورود ارائه دهنده مجوز</translation> <translation id="526622169288322445">کنشهای بیشتر برای <ph name="ADDRESS_SUMMARY" /></translation> +<translation id="5268373933383932086">صفحه شما، روش شما</translation> <translation id="5269977353971873915">چاپ نشد</translation> <translation id="5273806377963980154">ویرایش نشانی وب سایت</translation> <translation id="5275352920323889391">سگ</translation> @@ -4845,6 +4860,7 @@ <translation id="5799478978078236781">نکتهها، پیشنهادها، و بهروزرسانیهای مربوط به <ph name="DEVICE_TYPE" /> را دریافت کنید و بازخورد ارائه دهید.</translation> <translation id="5799508265798272974">ماشین مجازی Linux: <ph name="LINUX_VM_NAME" /></translation> <translation id="5800020978570554460">فایل مقصد از زمان آخرین بارگیری برداشته شده است یا ناقص است.</translation> +<translation id="5800351251499368110">جستجو در پانل کناری بسته میشود. جستجو در پانل کناری باز است.</translation> <translation id="5801568494490449797">اولویتها</translation> <translation id="5804241973901381774">مجوزها</translation> <translation id="5805697420284793859">مدیر پنجره</translation> @@ -5123,6 +5139,7 @@ <translation id="6080689532560039067">بررسی زمان سیستم</translation> <translation id="6082877069782862752">نگاشتن کلید</translation> <translation id="608531959444400877"><ph name="WINDOW_TITLE" /> - بخشی از گروه بدون نام</translation> +<translation id="6085457109149794212">همه گزینههای کارت را در «سفارشی کردن Chrome» ببینید</translation> <translation id="6085886413119427067">تعیین چگونگی اتصال به وبسایتها ازطریق اتصالی ایمن</translation> <translation id="6086004606538989567">حسابی که بهتأیید رساندید اجازه ندارد به این دستگاه دسترسی پیدا کند.</translation> <translation id="6086846494333236931">سرپرست سیستم شما نصب کرده است.</translation> @@ -5576,6 +5593,7 @@ <translation id="6537613839935722475">نام میتواند حاوی حرف، عدد، و خط تیره (-) باشد</translation> <translation id="6538098297809675636">خطای شناسایی کد</translation> <translation id="653920215766444089">درحال جستجوی دستگاه اشارهگر</translation> +<translation id="653983593749614101">درحال ازسر گرفتن…</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />توجه:<ph name="END_BOLD" /> فقط درصورتی آن را فعال کنید که اطلاع دارید چه کاری انجام میدهید یا از شما خواسته شده باشد این کار را انجام دهید، زیرا جمعآوری دادهها ممکن است عملکرد را کاهش دهد.</translation> <translation id="6540672086173674880">ممکن است Google از سابقه مرور شما برای شخصیسازی «جستجو» و دیگر سرویسهای Google استفاده کند. هرزمان خواستید میتوانید این تنظیم را در myaccount.google.com/activitycontrols/search تغییر دهید</translation> <translation id="6541638731489116978">دسترسی این سایت به حسگرهای حرکتی مسدود شده است.</translation> @@ -5791,6 +5809,7 @@ <translation id="6767566652486411142">انتخاب یک زبان دیگر…</translation> <translation id="6767639283522617719">نمیتوان دستگاه را به دامنه وصل کرد. مطمئن شوید تنظیمات مربوط به واحد سازمانی صحیح است.</translation> <translation id="6768034047581882264">اجازه ندارد محتوای ناامن را نشان دهد</translation> +<translation id="6770042910635026163">سایتهایی که با بازدید از آنها علایق شما تعریف میشود</translation> <translation id="6770602306803890733">امنیت را برای شما و همه کاربران دیگر وب بهبود میبخشد</translation> <translation id="6771503742377376720">یک ارائه دهنده مجوز است</translation> <translation id="6775163072363532304">دستگاههای دردسترس اینجا نمایش داده میشوند.</translation> @@ -6349,6 +6368,7 @@ <translation id="7347943691222276892">برای خارج شدن از <ph name="SUBPAGE_TITLE" />، کلیک کنید.</translation> <translation id="7348093485538360975">صفحهکلید مجازی</translation> <translation id="7349010927677336670">روان بودن ویدیو</translation> +<translation id="7352531447904559593">درباره شخصیسازی آگهی مبتنی بر مرورگر بیشتر بدانید</translation> <translation id="7352651011704765696">مشکلی پیش آمد</translation> <translation id="7353261921908507769">وقتی مخاطبینتان نزدیک شما باشند میتوانند با شما همرسانی کنند. تا درخواست را نپذیرید، انتقال شروع نخواهد شد.</translation> <translation id="735361434055555355">درحال نصب Linux…</translation> @@ -6356,6 +6376,7 @@ <translation id="7356908624372060336">گزارشهای شبکه</translation> <translation id="735745346212279324">VPN قطع است</translation> <translation id="7358324924540718595">خاطرات امروز پنهان شد</translation> +<translation id="7358338787722390626">بستن جستجو در پانل کناری</translation> <translation id="735994578317267253">دریافت برنامهها، تنظیمات و موارد دیگر در دستگاههای ChromeOS</translation> <translation id="7360233684753165754"><ph name="PAGE_NUMBER" /> صفحه در <ph name="PRINTER_NAME" /></translation> <translation id="7361297102842600584">برای اجرای <ph name="PLUGIN_NAME" /> کلیک راست کنید</translation> @@ -6638,6 +6659,7 @@ <translation id="7631887513477658702">&همیشه این نوع فایلها باز شوند</translation> <translation id="7632948528260659758">بهروزرسانی برنامههای کیوسک زیر انجام نشد:</translation> <translation id="7633724038415831385">فقط همین یکبار باید برای بهروزرسانی صبر کنید. در Chromebook، بهروزرسانیهای نرمافزار در پسزمینه انجام میشود.</translation> +<translation id="7634280112532283638">کاهش هرزنامه و تقلب</translation> <translation id="7634566076839829401">مشکلی پیش آمد. لطفاً دوباره امتحان کنید.</translation> <translation id="7635048370253485243">سرپرستتان آن را پین کرده است</translation> <translation id="763632859238619983">هیچ سایتی برای نصب کنترلکنندههای پرداخت مجاز نباشد</translation> @@ -6989,6 +7011,7 @@ <translation id="7957074856830851026">دیدن اطلاعات دستگاه، مانند شماره سریال یا شناسه دارایی آن</translation> <translation id="7957615753207896812">باز کردن تنظیمات دستگاه صفحه کلید</translation> <translation id="7959074893852789871">این فایل دارای چندین مجوز است، برخی از آنها وارد نشدهاند:</translation> +<translation id="7959157064403954786">امتحان کردن آگهیهای شفافتر</translation> <translation id="7959665254555683862">برگه ناشناس جدید</translation> <translation id="7961015016161918242">هرگز</translation> <translation id="7963001036288347286">شتاب صفحه لمسی</translation> @@ -7676,6 +7699,7 @@ <translation id="866611985033792019">برای شناسایی کاربران ایمیل، به این گواهی اطمینان شود</translation> <translation id="8666584013686199826">وقتی سایتی میخواهد به دستگاههای USB دسترسی پیدا کند سؤال شود</translation> <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> در حال حاضر تمام صفحه است و مکاننمای ماوس شما را غیرفعال کرده است.</translation> +<translation id="8667760277771450375">درحال کاوش روشهایی برای محدود کردن ردیابی بینسایتی و درعینحال امکان دادن به سایتها برای متوقف کردن هرزآگهی و تقلب هستیم.</translation> <translation id="8668052347555487755">حالت رنگی</translation> <translation id="8669284339312441707">گرمتر</translation> <translation id="8670537393737592796">برای اینکه سریع به اینجا برگردید، روی دکمه نصب کلیک کنید و برنامه <ph name="APP_NAME" /> را نصب کنید</translation> @@ -8278,6 +8302,7 @@ <translation id="968000525894980488">«خدمات Google Play» را روشن کنید.</translation> <translation id="968037381421390582">جایگذاری و جستجوی «<ph name="SEARCH_TERMS" />»</translation> <translation id="969096075394517431">تغییر زبانها</translation> +<translation id="969573236494556070">محدود کردن همرسانی بین سایتها</translation> <translation id="970047733946999531">{NUM_TABS,plural, =1{۱ برگه}one{# برگه}other{# برگه}}</translation> <translation id="971510864672937292">دادهها و اجازههای سایت <ph name="SITE_NAME" /> و همه سایتهای تحت آن پاک شود؟</translation> <translation id="971774202801778802">نشانی وب نشانک</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index 8e23944d..b24faf9 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -1423,6 +1423,7 @@ <translation id="2349896577940037438">Եթե միացնեք Վեբ որոնման և հավելվածների լրացուցիչ պատմությունը, այս տվյալները կպահվեն ձեր Google հաշվում։ Դուք կարող եք դիտել և ջնջել ձեր տվյալները, ինչպես նաև փոխել հաշվի կարգավորումները account.google.com էջում։</translation> <translation id="2350133097354918058">Կրկին բեռնվեց</translation> <translation id="2350182423316644347">Հավելվածի նախապատրաստում…</translation> +<translation id="235028206512346451">Երբ հեռանաք ձեր սարքից, սարքի էկրանն ավտոմատ կկողպվի։ Երբ էկրանի դիմաց լինեք, այն միացված կմնա ավելի երկար։ Եթե սարքում էկրանի կողպում կարգավորված չէ, սարքը չի կողպվի, այլ կանցնի քնի ռեժիմին։</translation> <translation id="2352495879228166246">{NUM_ITEMS,plural, =1{1 տարր}one{{NUM_ITEMS} տարր}other{{NUM_ITEMS} տարր}}</translation> <translation id="2352662711729498748"><1 ՄԲ</translation> <translation id="2352810082280059586">Կողպէկրանի ծանուցումներն ավտոմատ պահվում են <ph name="LOCK_SCREEN_APP_NAME" /> հավելվածում: Ձեր վերջին նշումը կպահպանվի կողպէկրանի վրա:</translation> @@ -1964,6 +1965,7 @@ <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> <translation id="288734198558082692">«<ph name="DEVICE" />» սարքն ու ևս <ph name="NUMBER_OF_DEVICES" /> սարք</translation> <translation id="2889064240420137087">Բացել հղումը` օգտագործելով…</translation> +<translation id="2891566119238851894">Բացել որոնումը կողային վահանակում։ Որոնումը բացված չէ կողային վահանակում։</translation> <translation id="2891922230654533301">Օգտագործե՞լ ձեր սարքը՝ <ph name="APP_NAME" /> հավելվածում հաշիվ մտնելու համար</translation> <translation id="2893168226686371498">Կանխադրված դիտարկիչ</translation> <translation id="2893180576842394309">Google-ը կարող է ձեր այցելությունների պատմությունն օգտագործել` Որոնումն ու Google-ի մյուս ծառայություններն անհատականացնելու համար:</translation> @@ -2722,6 +2724,7 @@ <translation id="3677959414150797585">Ներառում է հավելվածներ, կայքեր և այլն։ Ուղարկում է վիճակագրություն՝ առաջարկները բարելավելու համար, միայն եթե դուք որոշել եք կիսվել օգտագործման տվյալներով։</translation> <translation id="3678156199662914018">Ընդլայնում` <ph name="EXTENSION_NAME" /></translation> <translation id="3678188444105291936">Այս պատուհանով բացված էջերը չեն ցուցադրվի այցելությունների պատմության մեջ, և հաշվից դուրս գալուց հետո այլ հետագծեր (օրինակ՝ քուքիներ) չեն մնա համակարգչում։ Ձեր ներբեռնած ֆայլերը և ստեղծած էջանիշները չեն պահպանվի։</translation> +<translation id="368019053277764111">Բացել որոնումը կողային վահանակում</translation> <translation id="3680683624079082902">Տեքստի հնչեցման ձայնը</translation> <translation id="3681311097828166361">Շնորհակալություն կարծիք հայտնելու համար: Դուք ներկայումս միացած չեք ցանցին, և ձեր հաղորդումը կուղարկվի ավելի ուշ:</translation> <translation id="3682824389861648626">Տեղաշարժի սահմանափակում</translation> @@ -4834,6 +4837,7 @@ <translation id="5799478978078236781">Ստացեք <ph name="DEVICE_TYPE" /> սարքի հետ կապված խորհուրդներ, առաջարկներ և նորություններ, ինչպես նաև կիսվեք ձեր դիտողություններով։</translation> <translation id="5799508265798272974">Linux վիրտուալ մեքենա՝ <ph name="LINUX_VM_NAME" /></translation> <translation id="5800020978570554460">Վերջին ներբեռնումից հետո ընտրված ֆայլը վնասվել կամ հեռացվել է:</translation> +<translation id="5800351251499368110">Փակել որոնումը կողային վահանակում։ Որոնումը բացված է կողային վահանակում։</translation> <translation id="5801568494490449797">Նախընտրանքներ</translation> <translation id="5804241973901381774">Թույլտվություններ</translation> <translation id="5805697420284793859">Պատուհանների կառավարիչ</translation> @@ -6345,6 +6349,7 @@ <translation id="7356908624372060336">Ցանցային մատյաններ</translation> <translation id="735745346212279324">VPN-ն ապակապակցված է</translation> <translation id="7358324924540718595">Հիշողություններն այսօր թաքցված են</translation> +<translation id="7358338787722390626">Փակել որոնումը կողային վահանակում</translation> <translation id="735994578317267253">Ստացեք ձեր հավելվածները, կարգավորումներն ու ավելին ցանկացած ChromeOS սարքում</translation> <translation id="7360233684753165754"><ph name="PAGE_NUMBER" /> էջ <ph name="PRINTER_NAME" /> տպիչով</translation> <translation id="7361297102842600584">Սեղմեք մկնիկի աջ կոճակը՝ <ph name="PLUGIN_NAME" /> փլագինն աշխատեցնելու համար</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 7f0adc6..6ee96fd4e 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -1439,6 +1439,7 @@ <translation id="2349896577940037438">Jei papildomas Žiniatinklio ir programų veiklos nustatymas įjungtas, šie duomenys gali būti išsaugoti „Google“ paskyroje. Apsilankę adresu account.google.com galite peržiūrėti savo duomenis, juos ištrinti ir keisti paskyros nustatymus.</translation> <translation id="2350133097354918058">Įkelta iš naujo</translation> <translation id="2350182423316644347">Inicijuojama programa...</translation> +<translation id="235028206512346451">Jei pasitrauksite nuo įrenginio, ekranas automatiškai užsirakins. Kai būsite priešais įrenginį, ekranas ilgiau neužsirakins. Jei nenaudojate užrakinimo ekrano, bus įjungta įrenginio miego būsena, bet jis nebus užrakintas.</translation> <translation id="2352495879228166246">{NUM_ITEMS,plural, =1{1 elementas}one{{NUM_ITEMS} elementas}few{{NUM_ITEMS} elementai}many{{NUM_ITEMS} elemento}other{{NUM_ITEMS} elementų}}</translation> <translation id="2352662711729498748">< 1 MB</translation> <translation id="2352810082280059586">Užrakinimo ekrano pastabos automatiškai išsaugomos „<ph name="LOCK_SCREEN_APP_NAME" />“. Naujausia pastaba liks užrakinimo ekrane.</translation> @@ -1981,6 +1982,7 @@ <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> <translation id="288734198558082692"><ph name="DEVICE" /> ir dar <ph name="NUMBER_OF_DEVICES" /></translation> <translation id="2889064240420137087">Atidaryti nuorodą naudojant...</translation> +<translation id="2891566119238851894">Atidarykite paiešką šoniniame skydelyje. Paieška neatidaryta šoniniame skydelyje.</translation> <translation id="2891922230654533301">Naudoti jūsų įrenginį prisijungiant prie „<ph name="APP_NAME" />“?</translation> <translation id="2893168226686371498">Numatytoji naršyklė</translation> <translation id="2893180576842394309">„Google“ gali naudoti jūsų istoriją, kad suasmenintų Paiešką ir kitas „Google“ paslaugas</translation> @@ -2739,6 +2741,7 @@ <translation id="3677959414150797585">Įtraukiami tinklalapiai, programos ir daugiau. Siunčiama statistika siekiant patobulinti pasiūlymus, tik jei pasirinkote bendrinti naudojimo duomenis.</translation> <translation id="3678156199662914018">Plėtinys: <ph name="EXTENSION_NAME" /></translation> <translation id="3678188444105291936">Puslapiai, kuriuos peržiūrite šiame lange, nerodomi naršyklės istorijoje. Kai atsijungsite, kompiuteryje neliks ir kitų jų pėdsakų, pvz., slapukų. Atsisiųsti failai ir sukurtos žymės nebus išsaugoti.</translation> +<translation id="368019053277764111">Atidaryti paiešką šoniniame skydelyje</translation> <translation id="3680683624079082902">Teksto į kalbą balsas</translation> <translation id="3681311097828166361">Dėkojame už atsiliepimus. Dabar esate neprisijungę, todėl jūsų pranešimas bus išsiųstas vėliau.</translation> <translation id="3682824389861648626">Judesių slenkstis</translation> @@ -4850,6 +4853,7 @@ <translation id="5799478978078236781">Gaukite „<ph name="DEVICE_TYPE" />“ patarimų, pasiūlymų bei naujinių ir pateikite atsiliepimų.</translation> <translation id="5799508265798272974">„Linux“ virtualus įrenginys: „<ph name="LINUX_VM_NAME" />“</translation> <translation id="5800020978570554460">Paskirties failas buvo sutrumpintas arba pašalintas po paskutinio atsisiuntimo.</translation> +<translation id="5800351251499368110">Uždarykite paiešką šoniniame skydelyje. Paieška atidaryta šoniniame skydelyje.</translation> <translation id="5801568494490449797">Nuostatos</translation> <translation id="5804241973901381774">Leidimai</translation> <translation id="5805697420284793859">Langų tvarkytuvė</translation> @@ -6361,6 +6365,7 @@ <translation id="7356908624372060336">Tinklo žurnalai</translation> <translation id="735745346212279324">VPN atjungtas</translation> <translation id="7358324924540718595">Šios dienos prisiminimai paslėpti</translation> +<translation id="7358338787722390626">Uždaryti paiešką šoniniame skydelyje</translation> <translation id="735994578317267253">Gaukite programų, nustatymų ir kt. bet kuriame „Chrome“ OS įrenginyje</translation> <translation id="7360233684753165754"><ph name="PAGE_NUMBER" /> psl. į „<ph name="PRINTER_NAME" />“</translation> <translation id="7361297102842600584">Spustelėkite dešiniuoju pelės klavišu, kad paleistumėte „<ph name="PLUGIN_NAME" />“</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index 915897e..c5c52e2 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -1437,6 +1437,7 @@ <translation id="2349896577940037438">ਜੇ ਤੁਹਾਡੀ ਵਧੀਕ 'ਵੈੱਬ ਅਤੇ ਐਪ ਸਰਗਰਮੀ' ਸੈਟਿੰਗ ਚਾਲੂ ਹੋਵੇ, ਤਾਂ ਇਹ ਡਾਟਾ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। account.google.com 'ਤੇ ਤੁਸੀਂ ਆਪਣਾ ਡਾਟਾ ਦੇਖ ਸਕਦੇ ਹੋ, ਇਸਨੂੰ ਮਿਟਾ ਸਕਦੇ ਹੋ ਅਤੇ ਆਪਣੀਆਂ ਖਾਤਾ ਸੈਟਿੰਗਾਂ ਬਦਲ ਸਕਦੇ ਹੋ।</translation> <translation id="2350133097354918058">ਰੀਲੋਡ ਹੋਈ</translation> <translation id="2350182423316644347">ਐਪਲੀਕੇਸ਼ਨ ਸ਼ੁਰੂ ਕਰ ਰਿਹਾ ਹੈ...</translation> +<translation id="235028206512346451">ਜੇ ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ ਤੋਂ ਦੂਰ ਚਲੇ ਜਾਂਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਲਾਕ ਹੋ ਜਾਵੇਗੀ। ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ ਦੇ ਸਾਹਮਣੇ ਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਜ਼ਿਆਦਾ ਦੇਰ ਤੱਕ ਸੁਚੇਤ ਰਹੇਗੀ। ਜੇ ਤੁਸੀਂ ਲਾਕ ਸਕ੍ਰੀਨ ਨਹੀਂ ਵਰਤ ਰਹੇ, ਤਾਂ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਲਾਕ ਹੋਣ ਦੀ ਬਜਾਏ ਸਲੀਪ ਮੋਡ ਵਿੱਚ ਚਲਾ ਜਾਵੇਗਾ।</translation> <translation id="2352495879228166246">{NUM_ITEMS,plural, =1{1 ਆਈਟਮ}one{{NUM_ITEMS} ਆਈਟਮ}other{{NUM_ITEMS} ਆਈਟਮਾਂ}}</translation> <translation id="2352662711729498748">< 1 MB</translation> <translation id="2352810082280059586">ਲਾਕ ਸਕ੍ਰੀਨ ਨੋਟ-ਕਥਨ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ <ph name="LOCK_SCREEN_APP_NAME" /> ਰੱਖਿਅਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਤੁਹਾਡਾ ਸਭ ਤੋਂ ਹਾਲੀਆ ਨੋਟ-ਕਥਨ ਲਾਕ ਸਕ੍ਰੀਨ 'ਤੇ ਰਹੇਗਾ।</translation> @@ -1979,6 +1980,7 @@ <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> <translation id="288734198558082692"><ph name="DEVICE" /> ਅਤੇ <ph name="NUMBER_OF_DEVICES" /> ਹੋਰ</translation> <translation id="2889064240420137087">ਇਸ ਨਾਲ ਲਿੰਕ ਖੋਲ੍ਹੇੋ...</translation> +<translation id="2891566119238851894">ਸਾਈਡ ਪੈਨਲ ਵਿੱਚ ਖੋਜ ਨੂੰ ਖੋਲ੍ਹੋ। ਸਾਈਡ ਪੈਨਲ ਵਿੱਚ ਖੋਜ ਖੁੱਲ੍ਹੀ ਨਹੀਂ ਹੈ।</translation> <translation id="2891922230654533301">ਕੀ <ph name="APP_NAME" /> 'ਤੇ ਸਾਈਨ-ਇਨ ਕਰਨ ਲਈ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਵਰਤਣਾ ਹੈ?</translation> <translation id="2893168226686371498">ਪੂਰਵ-ਨਿਰਧਾਰਤ ਬ੍ਰਾਊਜ਼ਰ</translation> <translation id="2893180576842394309">Google ਖੋਜ ਅਤੇ ਹੋਰਾਂ Google ਸੇਵਾਵਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ ਤੁਹਾਡੇ ਇਤਿਹਾਸ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ</translation> @@ -2736,6 +2738,7 @@ <translation id="3677959414150797585">ਐਪਾਂ, ਵੈੱਬ-ਪੰਨੇ ਅਤੇ ਬਹੁਤ ਕੁਝ ਸ਼ਾਮਲ ਹਨ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਵਰਤੋਂ ਡਾਟੇ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਦੀ ਚੋਣ ਕੀਤੇ ਜਾਣ 'ਤੇ ਹੀ ਸੁਝਾਵਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਅੰਕੜੇ ਭੇਜੇ ਜਾਂਦੇ ਹਨ।</translation> <translation id="3678156199662914018">ਐਕਸਟੈਂਸ਼ਨ: <ph name="EXTENSION_NAME" /></translation> <translation id="3678188444105291936">ਜੋ ਪੰਨੇ ਤੁਸੀਂ ਇਸ ਵਿੰਡੋ ਵਿੱਚ ਦੇਖਦੇ ਹੋ, ਉਹ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਵਿੱਚ ਦਿਖਾਈ ਨਹੀਂ ਦੇਣਗੇ ਅਤੇ ਉਹ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਾਈਨ-ਆਊਟ ਕਰਨ ਤੋਂ ਬਾਅਦ ਕੰਪਿਊਟਰ 'ਤੇ ਹੋਰ ਟ੍ਰੇਸ ਨਹੀਂ ਛੱਡਣਗੇ, ਜਿਵੇਂ ਕੁਕੀਜ਼। ਜੋ ਫ਼ਾਈਲਾਂ ਤੁਸੀਂ ਡਾਊਨਲੋਡ ਕਰਦੇ ਹੋ ਅਤੇ ਬੁੱਕਮਾਰਕ ਜੋ ਤੁਸੀਂ ਬਣਾਉਂਦੇ ਹੋ, ਉਹ ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤੇ ਜਾਣਗੇ।</translation> +<translation id="368019053277764111">ਸਾਈਡ ਪੈਨਲ ਵਿੱਚ ਖੋਜ ਨੂੰ ਖੋਲ੍ਹੋ</translation> <translation id="3680683624079082902">ਲਿਖਤ-ਤੋਂ-ਬੋਲੀ ਅਵਾਜ਼</translation> <translation id="3681311097828166361">ਤੁਹਾਡੇ ਵਿਚਾਰ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ। ਤੁਸੀਂ ਹੁਣ ਆਫ਼ਲਾਈਨ ਹੋ, ਅਤੇ ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਬਾਅਦ ਵਿੱਚ ਭੇਜੀ ਜਾਵੇਗੀ।</translation> <translation id="3682824389861648626">ਹਰਕਤ ਦੀ ਘੱਟੋ-ਘੱਟ ਸੀਮਾ</translation> @@ -4846,6 +4849,7 @@ <translation id="5799478978078236781"><ph name="DEVICE_TYPE" /> ਨੁਕਤੇ, ਪੇਸ਼ਕਸ਼ਾਂ ਅਤੇ ਅੱਪਡੇਟ ਪ੍ਰਾਪਤ ਕਰੋ ਅਤੇ ਵਿਚਾਰ ਸਾਂਝਾ ਕਰੋ।</translation> <translation id="5799508265798272974">Linux ਆਭਾਸੀ ਮਸ਼ੀਨ: <ph name="LINUX_VM_NAME" /></translation> <translation id="5800020978570554460">ਡੈਸਟੀਨੇਸ਼ਨ ਫਾਈਲ ਪਿਛਲੀ ਡਾਊਨਲੋਡ ਤੋਂ ਬਾਅਦ ਛੋਟੀ ਕੀਤੀ ਗਈ ਸੀ ਜਾਂ ਹਟਾ ਦਿੱਤੀ ਗਈ ਸੀ।</translation> +<translation id="5800351251499368110">ਸਾਈਡ ਪੈਨਲ ਵਿੱਚ ਖੋਜ ਨੂੰ ਬੰਦ ਕਰੋ। ਸਾਈਡ ਪੈਨਲ ਵਿੱਚ ਖੋਜ ਚਾਲੂ ਹੈ।</translation> <translation id="5801568494490449797">ਤਰਜੀਹਾਂ</translation> <translation id="5804241973901381774">ਅਨੁਮਤੀਆਂ</translation> <translation id="5805697420284793859">Window ਪ੍ਰਬੰਧਕ</translation> @@ -6358,6 +6362,7 @@ <translation id="7356908624372060336">ਨੈੱਟਵਰਕ ਲੌਗ</translation> <translation id="735745346212279324">VPN ਡਿਸਕਨੈਕਟ ਹੋ ਗਿਆ</translation> <translation id="7358324924540718595">ਅੱਜ ਦੇ ਲਈ ਯਾਦਾਂ ਲੁਕਾ ਦਿੱਤੀਆਂ ਗਈਆਂ ਹਨ</translation> +<translation id="7358338787722390626">ਸਾਈਡ ਪੈਨਲ ਵਿੱਚ ਖੋਜ ਨੂੰ ਬੰਦ ਕਰੋ</translation> <translation id="735994578317267253">ਕਿਸੇ ਵੀ Chrome OS ਡੀਵਾਈਸ 'ਤੇ ਆਪਣੀਆਂ ਐਪਾਂ, ਸੈਟਿੰਗਾਂ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਪ੍ਰਾਪਤ ਕਰੋ</translation> <translation id="7360233684753165754"><ph name="PRINTER_NAME" /> ਲਈ <ph name="PAGE_NUMBER" /> ਪੰਨੇ</translation> <translation id="7361297102842600584"><ph name="PLUGIN_NAME" /> ਨੂੰ ਚਲਾਉਣ ਲਈ ਸੱਜਾ-ਕਲਿੱਕ ਕਰੋ</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index eb83744..d66a1a6 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -4678,7 +4678,7 @@ <translation id="561698261642843490">Firefoxஐ மூடு</translation> <translation id="56197088284879152">பின்வரும் தொலைநிலைச் சாதனத்திற்கான இணைப்பு நெரிசலாக உள்ளது: "<ph name="DEVICE_NAME" />".</translation> <translation id="5620568081365989559"><ph name="FOLDER_PATH" />க்கான முழு அணுகலை DevTools கோருகிறது. -நீங்கள் முக்கிய தகவல் எதையும் வெளிப்படுத்தவில்லை என்பதை உறுதிப்படுத்தவும்.</translation> +நீங்கள் பாதுகாக்கப்பட வேண்டிய தகவல் எதையும் வெளிப்படுத்தவில்லை என்பதை உறுதிப்படுத்தவும்.</translation> <translation id="5620612546311710611">பயன்பாட்டுப் புள்ளிவிவரங்கள்</translation> <translation id="5620655347161642930">கடவுச்சொற்களை ஏற்று...</translation> <translation id="5623282979409330487">இந்தத் தளம் உங்கள் மோஷன் சென்சார்களைப் பயன்படுத்துகிறது.</translation> @@ -5428,7 +5428,7 @@ <ph name="BEGIN_PARAGRAPH2" />உங்கள் Chrome சாதன அமைப்புகளுக்குச் சென்று, இந்த அறிக்கைகள் அனுப்பப்படுவதை எப்போது வேண்டுமானாலும் அனுமதிக்கலாம் அல்லது தடுக்கலாம். நீங்கள் டொமைன் நிர்வாகி எனில் நிர்வாகிக் கன்சோலில் இந்த அமைப்பை மாற்றலாம்.<ph name="END_PARAGRAPH2" /> <ph name="BEGIN_PARAGRAPH3" />இந்த அம்சத்தை முடக்குவதால் சிஸ்டம் புதுப்பிப்புகள், பாதுகாப்பு போன்ற அத்தியாவசியச் சேவைகளைப் பெறத் தேவைப்படும் தகவல்களை அனுப்புவதற்கான உங்கள் சாதனத்தின் திறனில் பாதிப்பு ஏற்படாது.<ph name="END_PARAGRAPH3" /> <ph name="BEGIN_PARAGRAPH4" />சாதன உரிமையாளர் "உபயோகம் & பிழை கண்டறிதல் தரவை அனுப்புங்கள்" என்பதை இயக்கினால், சிதைவு அறிக்கைகளும் Googleளுக்குப் பதிவேற்றப்படலாம்.<ph name="END_PARAGRAPH3" /></translation> -<translation id="6385994920693662133">எச்சரிக்கை - விவரமான பதிவு இயக்கப்பட்டது; பின்வரும் பதிவுகளில் URLகளோ பிற அதிமுக்கியத் தகவல்களோ இருக்கலாம். இந்தத் தகவல்களை மீண்டும் ஒருமுறை சரிபார்த்து, இவற்றைச் சமர்ப்பிப்பதில் உங்களுக்குத் தயக்கம் எதுவுமில்லை என்பதை உறுதிசெய்துகொள்ளவும்.</translation> +<translation id="6385994920693662133">எச்சரிக்கை - விவரமான பதிவு இயக்கப்பட்டது; பின்வரும் பதிவுகளில் URLகளோ பிற பாதுகாக்கப்பட வேண்டிய தகவல்களோ இருக்கலாம். இந்தத் தகவல்களை மீண்டும் ஒருமுறை சரிபார்த்து, இவற்றைச் சமர்ப்பிப்பதில் உங்களுக்குத் தயக்கம் எதுவுமில்லை என்பதை உறுதிசெய்துகொள்ளவும்.</translation> <translation id="6387674443318562538">செங்குத்தாகப் பிரி</translation> <translation id="6388429472088318283">மொழிகளைத் தேடு</translation> <translation id="6388577073199278153">உங்கள் மொபைல் கணக்கை அணுக முடியவில்லை</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index a78e8e50..149f0a8b4 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -1435,6 +1435,7 @@ <translation id="2349896577940037438">మీ అదనపు వెబ్ & యాప్ యాక్టివిటీ సెట్టింగ్ను ఆన్ చేసినట్లయితే, ఈ డేటా మీ Google ఖాతాలో సేవ్ చేయబడవచ్చు. మీరు account.google.comలో మీ డేటాను చూడవచ్చు, దానిని తొలగించవచ్చు, మీ ఖాతా సెట్టింగ్లను మార్చవచ్చు.</translation> <translation id="2350133097354918058">మళ్లీ లోడ్ చేయబడింది</translation> <translation id="2350182423316644347">అప్లికేషన్ను ప్రారంభిస్తోంది...</translation> +<translation id="235028206512346451">మీరు మీ పరికరం నుండి దూరంగా వెళ్లినప్పుడు, ఆటోమేటిక్గా మీ స్క్రీన్ లాక్ అవుతుంది. మీరు మీ పరికరం ముందు ఉన్నప్పుడు, మీ స్క్రీన్ మేల్కొనే ఉంటుంది. మీరు లాక్ స్క్రీన్ను ఉపయోగించకుంటే, మీ పరికరం లాక్ అవ్వడానికి బదులుగా స్లీప్ మోడ్లో ఉంటుంది.</translation> <translation id="2352495879228166246">{NUM_ITEMS,plural, =1{1 ఐటెమ్}other{{NUM_ITEMS} ఐటెమ్లు}}</translation> <translation id="2352662711729498748">< 1 MB</translation> <translation id="2352810082280059586">లాక్ స్క్రీన్ గమనికలు ఆటోమేటిక్గా <ph name="LOCK_SCREEN_APP_NAME" />కి సేవ్ చేయబడ్డాయి. మీ అత్యంత తాజా గమనిక లాక్ స్క్రీన్పై అలాగే ఉంటుంది.</translation> @@ -1977,6 +1978,7 @@ <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> <translation id="288734198558082692"><ph name="DEVICE" />, ఇంకా మరో <ph name="NUMBER_OF_DEVICES" /></translation> <translation id="2889064240420137087">దీనితో లింక్ తెరువు...</translation> +<translation id="2891566119238851894">సైడ్ ప్యానెల్లో సెర్చ్ను తెరవండి. సైడ్ ప్యానెల్లో సెర్చ్ తెరిచి లేదు.</translation> <translation id="2891922230654533301"><ph name="APP_NAME" />కు సైన్ ఇన్ చేయడానికి మీ పరికరాన్ని ఉపయోగించాలా?</translation> <translation id="2893168226686371498">ఆటోమేటిక్ బ్రౌజర్</translation> <translation id="2893180576842394309">శోధన, ఇతర Google సేవలను వ్యక్తిగతీకరించడానికి Google మీ చరిత్రను ఉపయోగించే అవకాశం ఉంటుంది</translation> @@ -2735,6 +2737,7 @@ <translation id="3677959414150797585">యాప్లు, వెబ్పేజీలు, మరిన్ని ఇందులో ఉంటాయి. మీరు డేటా వినియోగాన్ని షేర్ చేయడాన్ని ఎంచుకుంటే మాత్రమే సూచనలు మెరుగుపరచడానికి గణాంకాలను పంపుతుంది.</translation> <translation id="3678156199662914018">ఎక్స్టెన్షన్: <ph name="EXTENSION_NAME" /></translation> <translation id="3678188444105291936">మీరు ఈ విండోలో వీక్షించే పేజీలు బ్రౌజింగ్ హిస్టరీలో కనిపించవు, మీరు సైన్ అవుట్ చేసిన తర్వాత కంప్యూటర్లో అవి కుక్కీల వంటి ఇతర ట్రేస్లను వదలవు. మీరు డౌన్లోడ్ చేసే ఫైళ్లు, అలాగే క్రియేట్ చేసే బుక్మార్క్లు భద్రపరచబడవు.</translation> +<translation id="368019053277764111">సైడ్ ప్యానెల్లో సెర్చ్ను తెరవండి</translation> <translation id="3680683624079082902">టెక్ట్స్-టు-స్పీచ్ వాయిస్</translation> <translation id="3681311097828166361">మీ అభిప్రాయం తెలియజేసినందుకు ధన్యవాదాలు. మీరు ప్రస్తుతం ఆఫ్లైన్లో ఉన్నారు, మీ రిపోర్ట్ తర్వాత పంపబడుతుంది.</translation> <translation id="3682824389861648626">కదలిక థ్రెషోల్డ్</translation> @@ -4845,6 +4848,7 @@ <translation id="5799478978078236781"><ph name="DEVICE_TYPE" /> చిట్కాలు, ఆఫర్లతో పాటు అప్డేట్లను పొందండి, ఫీడ్బ్యాక్ను షేర్ చేయండి.</translation> <translation id="5799508265798272974">Linux వర్చువల్ మెషీన్: <ph name="LINUX_VM_NAME" /></translation> <translation id="5800020978570554460">గమ్యస్థానం ఫైల్ చివరి డౌన్లోడ్ తర్వాత కుదించబడింది లేదా తీసివేయబడింది.</translation> +<translation id="5800351251499368110">సైడ్ ప్యానెల్లో సెర్చ్ను మూసివేయండి. సైడ్ ప్యానెల్లో సెర్చ్ తెరిచి ఉంది.</translation> <translation id="5801568494490449797">ప్రాధాన్యతలు</translation> <translation id="5804241973901381774">అనుమతులు</translation> <translation id="5805697420284793859">విండో మేనేజర్</translation> @@ -6356,6 +6360,7 @@ <translation id="7356908624372060336">నెట్వర్క్ లాగ్స్</translation> <translation id="735745346212279324">VPN డిస్కనెక్ట్ చేయబడింది</translation> <translation id="7358324924540718595">ఈ రోజుకు దాచబడిన మెమరీలు</translation> +<translation id="7358338787722390626">సైడ్ ప్యానెల్లో సెర్చ్ను మూసివేయండి</translation> <translation id="735994578317267253">ఏ ChromeOS పరికరంలో అయినా మీ యాప్లు, సెట్టింగ్లు, మరిన్నింటిని పొందండి</translation> <translation id="7360233684753165754"><ph name="PRINTER_NAME" />కు <ph name="PAGE_NUMBER" /> పేజీలు</translation> <translation id="7361297102842600584"><ph name="PLUGIN_NAME" />ను అమలు చేయడానికి కుడి క్లిక్ చేయండి</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index c1652d9..a1398cc 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -63,6 +63,7 @@ <translation id="1061130374843955397">اپنے <ph name="DEVICE_TYPE" /> میں خوش آمدید</translation> <translation id="1061373870045429865">اس لنک کے لیے QR کوڈ تخلیق کریں</translation> <translation id="1061904396131502319">وقفے کا وقت تقریباً ہو گیا ہے</translation> +<translation id="1062628064301375934">مزید نجی ویب بنانے میں ہماری مدد کریں</translation> <translation id="1066613507389053689">Chrome OS کو اپ ڈیٹ کرنے کی ضرورت ہے</translation> <translation id="1067048845568873861">بنائی گئی</translation> <translation id="1067922213147265141">دیگر Google سروسز</translation> @@ -584,6 +585,7 @@ <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (مہمان)</translation> <translation id="1572266655485775982">Wi-Fi فعال</translation> <translation id="1572876035008611720">اپنا ای میل درج کریں</translation> +<translation id="1573632872794824374">ہم نئی خصوصیات دریافت کر رہے ہیں جو سائٹس کو آپ کی کم معلومات کا استعمال کر کے وہی براؤزنگ تجربہ فراہم کرنے کی اجازت دیتی ہیں</translation> <translation id="1575741822946219011">زبانیں اور ان پٹس</translation> <translation id="1576594961618857597">ڈیفالٹ سفید اوتار</translation> <translation id="1578558981922970608">زبردستی بند کریں</translation> @@ -1370,6 +1372,7 @@ <ph name="FOOTER_MESSAGE" /></translation> <translation id="2307630946657910723"><ph name="VISUAL_SEARCH_PROVIDER" /> کے ساتھ صفحہ کا حصہ تلاش کریں</translation> <translation id="2309620859903500144">اس سائٹ کو آپ کے موشن اور لائٹ سینسرز تک رسائی حاصل کرنے سے مسدود کر دیا گیا ہے۔</translation> +<translation id="2311721625890389967">↓</translation> <translation id="2312219318583366810">صفحہ کا URL</translation> <translation id="2314165183524574721">موجودہ نظر آنے کی ترتیب پوشیدہ ہے</translation> <translation id="2314774579020744484">صفحات کا ترجمہ کرتے وقت استعمال کی جانے والی زبان</translation> @@ -1636,6 +1639,7 @@ <translation id="2553340429761841190"><ph name="PRODUCT_NAME" /> <ph name="NETWORK_ID" /> سے منسلک نہیں ہو سکا۔ براہ کرم دوسرا نیٹ ورک منتخب کریں یا دوبارہ کوشش کریں۔</translation> <translation id="2553440850688409052">یہ پلگ اِن چھپائیں</translation> <translation id="2554553592469060349">منتخب کردہ فائل کافی بڑی ہے (زیادہ سے زیادہ سائز: 3mb)۔</translation> +<translation id="2558569818338050235">آپ کی براؤزنگ کی سرگزشت آپ کے دیکھے جانے والے اشتہارات کو متاثر کرتی ہے</translation> <translation id="2558896001721082624">سسٹم مینو میں ایکسیسبیلٹی کے اختیارات ہمیشہ دکھائیں</translation> <translation id="2564520396658920462">AppleScript کے ذریعے JavaScript کو رو بہ عمل لانا آف ہے۔ مینو بار سے اسے آن کرنے کے لئے دیکھیں > ڈویلپر > Apple ایونٹس سے JavaScript کو اجازت دیں پر جائیں۔ مزید معلومات کے لئے: https://support.google.com/chrome/?p=applescript</translation> <translation id="2564653188463346023">بہتر کردہ املا کی جانچ</translation> @@ -1769,6 +1773,7 @@ <translation id="2709516037105925701">آٹو فل</translation> <translation id="2710101514844343743">استعمال اور ڈائیگناسٹکس کا ڈیٹا</translation> <translation id="271033894570825754">نیا</translation> +<translation id="2711073837061989559">ٹرائلز</translation> <translation id="2712173769900027643">اجازت طلب کریں</translation> <translation id="2713106313042589954">کیمرا آف کریں</translation> <translation id="2713444072780614174">سفید</translation> @@ -1963,6 +1968,7 @@ <translation id="288734198558082692"><ph name="DEVICE" /> اور <ph name="NUMBER_OF_DEVICES" /> دیگر</translation> <translation id="2889064240420137087">اس کے ساتھ لنک کھولیں…</translation> <translation id="2891922230654533301"><ph name="APP_NAME" /> میں سائن ان کرنے کیلئے آپ کے آلے کا استعمال کریں؟</translation> +<translation id="2893013536106749396">ایسے کارڈز کا انتخاب کریں جو آپ کو ان چیزوں کے بارے میں اپ ڈیٹ کرتے رہیں جو آپ کے لیے اہم ہیں</translation> <translation id="2893168226686371498">ڈیفالٹ براؤزر</translation> <translation id="2893180576842394309">تلاش اور Google کی دیگر سروسز کو ذاتی نوعیت کا بنانے کے لیے Google آپ کی سرگزشت کا استعمال کر سکتا ہے</translation> <translation id="2894757982205307093">گروپ میں نیا ٹیب</translation> @@ -2076,6 +2082,7 @@ <translation id="3003623123441819449">CSS کیش</translation> <translation id="3003828226041301643">ڈومین میں آلہ کو شامل نہیں کیا جا سکا۔ اس بات کو یقینی بنانے کے لیے اپنا اکاؤنٹ چیک کریں کہ آپ کے پاس آلات شامل کرنے کیلئے مراعات ہیں۔</translation> <translation id="3003967365858406397">آپ کا <ph name="PHONE_NAME" /> ایک نجی Wi-Fi کنکشن بنائے گا۔</translation> +<translation id="3005574332301273731">نہ دکھائیں</translation> <translation id="3006881078666935414">ڈیٹا کا کوئی استعمال نہیں</translation> <translation id="3007771295016901659">ڈپلیکیٹ ٹیب</translation> <translation id="3008232374986381779">اپنے <ph name="DEVICE_TYPE" /> پر Linux ٹولز، ایڈیٹرز اور IDEs چلائیں۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation> @@ -2132,6 +2139,7 @@ <translation id="3053013834507634016">سرٹیفکیٹ کلید استعمال</translation> <translation id="3053273573829329829">صارف کا پن فعال کریں</translation> <translation id="3054766768827382232">غیر فعال کرنے سے آپ کے پیریفیرلز بہتر کام انجام دے سکتے ہیں لیکن غیر مجاز استعمال کے ذریعے آپ کے ذاتی ڈیٹا کو ظاہر کیا جا سکتا ہے۔</translation> +<translation id="3055113921564083271">آپ کی ہٹائی گئی دلچسپیاں</translation> <translation id="3055590424724986000">اپنی پسند کے فراہم کنندہ کے ساتھ</translation> <translation id="3058498974290601450">آپ ترتیبات میں کسی بھی وقت مطابقت پذیری کو آن کر سکتے ہیں</translation> <translation id="3058517085907878899">آلہ کا نام</translation> @@ -2249,6 +2257,7 @@ <translation id="3183944777708523606">مانیٹر کا انتظام</translation> <translation id="3184536091884214176">ترتیب دیں یا CUPS پرنٹرز کا نظم کریں۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation> <translation id="3185014249447200271">{NUM_APPS,plural, =1{یہ ایپ مسدود ہے}other{کچھ ایپس مسدود ہیں}}</translation> +<translation id="3187472288455401631">Ad measurement</translation> <translation id="3188257591659621405">میری فائلز</translation> <translation id="3188465121994729530">اوسط کی منتقلی</translation> <translation id="3189187154924005138">بڑا کرسر</translation> @@ -2618,6 +2627,7 @@ <translation id="3575121482199441727">اس سائٹ کے لیے اجازت دیں</translation> <translation id="3577745545227000795"><ph name="DEVICE_OS" /> ہارڈویئر ڈیٹا کلکشن</translation> <translation id="3578594933904494462">اس ٹیب کے مواد کا اشتراک کیا جا رہا ہے۔</translation> +<translation id="3578874072190212775">دھوکہ دہی سے لڑنے اور بوٹس کو لوگوں سے ممتاز کرنے میں سائٹس کی مدد کریں</translation> <translation id="3581605050355435601">خودکار طور پر IP پتہ کنفیگر کریں</translation> <translation id="3582057310199111521">فریب والی سائٹ پر درج کیا گیا اور ڈیٹا کی خلاف ورزی میں پایا گیا</translation> <translation id="3584169441612580296">اپنے کمپیوٹر سے تصاویر، موسیقی اور دیگر میڈیا پڑھیں اور تبدیل کریں</translation> @@ -3070,6 +3080,7 @@ <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> کو فعال کریں</translation> <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> کے لئے <ph name="DEVICE_NAME" /> کے بطور قریبی آلات کے لئے مرئی ہے...</translation> <translation id="3981760180856053153">محفوظ کرنے کی غلط قسم درج کی گئی۔</translation> +<translation id="3981902534690264083">مشتہرین اشتہارات کی کارکردگی کا طریقہ سمجھ سکتے ہیں</translation> <translation id="3982375475032951137">اپنے براؤزر کو چند آسان مراحل میں سیٹ کریں</translation> <translation id="3983400541576569538">کچھ ایپس کا ڈیٹا غائب ہو سکتا ہے</translation> <translation id="3983586614702900908">ایک نامعلوم وینڈر کی جانب سے آلات</translation> @@ -4296,6 +4307,7 @@ <translation id="5265797726250773323">انسٹال کرنے کے دوران خرابی</translation> <translation id="5266113311903163739">سرٹیفکیشن اتھارٹی درآمد کرنے میں خرابی</translation> <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> کے لیے مزید کارروائیاں</translation> +<translation id="5268373933383932086">آپ کا صفحہ، آپ کا طریقہ</translation> <translation id="5269977353971873915">پرنٹ ناکام ہوگیا</translation> <translation id="5273806377963980154">سائٹ کا URL ترمیم کریں</translation> <translation id="5275352920323889391">کتا</translation> @@ -5108,6 +5120,7 @@ <translation id="6080689532560039067">اپنے سسٹم کا وقت چیک کریں</translation> <translation id="6082877069782862752">کلید کی نقشہ سازی</translation> <translation id="608531959444400877"><ph name="WINDOW_TITLE" /> - بغیر نام والے گروپ کا حصہ</translation> +<translation id="6085457109149794212">حسب ضرورت Chrome میں کارڈ کے تمام اختیارات دیکھیں</translation> <translation id="6085886413119427067">کسی محفوظ کنکشن پر ویب سائٹس سے منسلک ہونے کے طریقے کا تعین کرتا ہے</translation> <translation id="6086004606538989567">آپ کے توثیق کردہ اکاؤنٹ کو اس آلے تک رسائی حاصل کرنے کی اجازت نہیں ہے۔</translation> <translation id="6086846494333236931">آپ کے منتظم نے انسٹال کیا ہے</translation> @@ -5561,6 +5574,7 @@ <translation id="6537613839935722475">نام حروف، اعداد اور ہائفنز (-) کا استعمال کر سکتا ہے</translation> <translation id="6538098297809675636">کوڈ کا پتہ لگانے میں خرابی</translation> <translation id="653920215766444089">پوائنٹنگ آلات کی تلاش کی جا رہی ہے</translation> +<translation id="653983593749614101">دوبارہ شروع ہو رہا ہے...</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />نوٹ:<ph name="END_BOLD" /> صرف اس وقت فعال کریں جب آپ کو معلوم ہو کہ آپ کیا کر رہے ہیں یا اگر آپ سے ایسا کرنے کو کہا گیا ہو، کیونکہ ڈیٹا جمع کرنے سے کارکردگی کم ہو سکتی ہے۔</translation> <translation id="6540672086173674880">تلاش اور Google کی دیگر سروسز کو ذاتی نوعیت کا بنانے کیلئے Google آپ کی براؤزنگ کی سرگزشت کا استعمال کر سکتا ہے۔ آپ myaccount.google.com/activitycontrols/search پر اسے کسی بھی وقت تبدیل کر سکتے ہيں</translation> <translation id="6541638731489116978">اس سائٹ کو آپ کے موشن سینسرز تک رسائی حاصل کرنے سے مسدود کر دیا گیا ہے۔</translation> @@ -5776,6 +5790,7 @@ <translation id="6767566652486411142">کسی دوسری زبان کا انتخاب کریں...</translation> <translation id="6767639283522617719">ڈومین میں شامل نہیں کیا جا سکا۔ یقینی بنائیں کہ ترتیبات تنظیمی یونٹ کے لیے درست ہیں۔</translation> <translation id="6768034047581882264">غیر محفوظ مواد دکھانے کی اجازت نہیں ہے</translation> +<translation id="6770042910635026163">آپ کی ملاحظہ کی جانے والی سائٹس آپ کی دلچسپیوں کا تعین کرتی ہیں</translation> <translation id="6770602306803890733">آپ کے لیے اور ویب پر سبھی کے لیے سیکیورٹی کو بہتر بناتی ہے</translation> <translation id="6771503742377376720">ایک سرٹیفیکیشن ادارہ ہے</translation> <translation id="6775163072363532304">دستیاب آلات یہاں دکھائی دیں گے۔</translation> @@ -6334,6 +6349,7 @@ <translation id="7347943691222276892"><ph name="SUBPAGE_TITLE" /> سے دور نیویگیٹ کرنے کے لیے کلک کریں۔</translation> <translation id="7348093485538360975">آن اسکرین کی بورڈ</translation> <translation id="7349010927677336670">ویڈیو کا بغیر کسی رکاوٹ کے چلنا</translation> +<translation id="7352531447904559593">براؤزر پر مبنی اشتہار کی ذاتی نوعیت سازی کے بارے میں مزید جانیں</translation> <translation id="7352651011704765696">کچھ غلط ہو گیا</translation> <translation id="7353261921908507769">ان کے قریب ہونے پر آپ کے رابطے آپ کے ساتھ اشتراک کر سکتے ہیں۔ آپ کے قبول کئے بغیر منتقلیاں شروع نہیں ہوں گی۔</translation> <translation id="735361434055555355">Linux کو انسٹال کیا جا رہا ہے…</translation> @@ -6623,6 +6639,7 @@ <translation id="7631887513477658702">اس قسم کی فائلیں &ہمیشہ کھولیں</translation> <translation id="7632948528260659758">درج ذیل کیوسک ایپس اپ ڈیٹنگ کیلئے ناکام ہو گئی ہیں:</translation> <translation id="7633724038415831385">صرف یہ ہی وہ وقت ہے جب آپ کسی اپ ڈیٹ کا انتظار کریں گے۔ Chromebooks پر سافٹ ویئر اپ ڈیٹ پس منظر میں ہوتے ہیں۔</translation> +<translation id="7634280112532283638">اسپام اور دھوکہ دہی میں تخفیف</translation> <translation id="7634566076839829401">کچھ غلط ہو گیا۔ براہ کرم دوبارہ کوشش کریں۔</translation> <translation id="7635048370253485243">آپ کے منتظم کے ذریعے پن کردہ</translation> <translation id="763632859238619983">کسی سائٹ کو ادائیگی کے ہینڈلرز انسٹال کرنے کی اجازت نہ دیں</translation> @@ -6974,6 +6991,7 @@ <translation id="7957074856830851026">آلہ کی معلومات دیکھیں، جیسے اس کا نمبر شمار یا اثاثہ ID</translation> <translation id="7957615753207896812">کی بورڈ آلہ کی ترتیبات کو کھولیں</translation> <translation id="7959074893852789871">فائل میں متعدد سرٹیفیکیٹس شامل ہیں، ان میں سے کچھ کو درآمد نہیں کیا گیا:</translation> +<translation id="7959157064403954786">مزید شفاف اشتہارات آزمائیں</translation> <translation id="7959665254555683862">نیا پوشیدگی ٹیب</translation> <translation id="7961015016161918242">کبھی نہیں</translation> <translation id="7963001036288347286">ٹچ پیڈ کا ایکسیلریشن</translation> @@ -7660,6 +7678,7 @@ <translation id="866611985033792019">ای میل صارفین کی شناخت کرنے کیلئے اس سرٹیفکیٹ پر بھروسہ کریں</translation> <translation id="8666584013686199826">جب کوئی سائٹ USB آلات تک رسائی حاصل کرنا چاہے تو پوچھیں</translation> <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> اب پوری اسکرین میں ہے اور اس نے آپ کا ماؤس کرسر غیر فعال کر دیا ہے۔</translation> +<translation id="8667760277771450375">ہم اشتہاری اسپام اور دھوکہ دہی کو روکنے کے لیے سائٹس کو فعال کرتے وقت کراس سائٹ ٹریکنگ کو محدود کرنے کے طریقے دریافت کر رہے ہیں۔</translation> <translation id="8668052347555487755">رنگ کی وضع</translation> <translation id="8669284339312441707">گرم</translation> <translation id="8670537393737592796">فوری طور پر یہاں واپس آنے کے لیے، 'انسٹال کریں' بٹن پر کلک کر کے <ph name="APP_NAME" /> انسٹال کریں</translation> @@ -8261,6 +8280,7 @@ <translation id="968000525894980488">Google Play سروسز کو آن کریں۔</translation> <translation id="968037381421390582">پیسٹ کریں اور “<ph name="SEARCH_TERMS" />” تلاش کریں</translation> <translation id="969096075394517431">زبانیں تبدیل کریں</translation> +<translation id="969573236494556070">سائٹس کے درمیان اشتراک کو محدود کریں</translation> <translation id="970047733946999531">{NUM_TABS,plural, =1{1 ٹیب}other{# ٹیبز}}</translation> <translation id="971510864672937292"><ph name="SITE_NAME" /> اور اس کے ماتحت تمام سائٹس کے لیے سائٹ کا ڈیٹا اور اجازتیں صاف کریں؟</translation> <translation id="971774202801778802">URL کو بُک مارک کریں</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index 4ef3776..ebb058f 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -63,6 +63,7 @@ <translation id="1061130374843955397"><ph name="DEVICE_TYPE" /> qurilmasiga xush kelibsiz!</translation> <translation id="1061373870045429865">Bu havola uchun QR kod yaratish</translation> <translation id="1061904396131502319">Tanaffus qilish vaqti keldi</translation> +<translation id="1062628064301375934">Internetni yanada shaxsiy qilishimizga yordam bering</translation> <translation id="1066613507389053689">Chrome OS tizimini yangilash zarur</translation> <translation id="1067048845568873861">Yaratilgan sanasi</translation> <translation id="1067922213147265141">Boshqa Google xizmatlari</translation> @@ -582,6 +583,7 @@ <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Mehmon)</translation> <translation id="1572266655485775982">Wi-Fi’ni yoqish</translation> <translation id="1572876035008611720">Elektron pochta</translation> +<translation id="1573632872794824374">Biz saytlarga kamroq maʼlumotlaringiz bilan bir xil brauzer xizmatlarini taqdim etishiga imkon beruvchi yangi funksiyalarni oʻrganib chiqmoqdamiz</translation> <translation id="1575741822946219011">Tillar va klaviaturalar</translation> <translation id="1576594961618857597">Standart oq avatar</translation> <translation id="1578558981922970608">Majburiy yopish</translation> @@ -1372,6 +1374,7 @@ <ph name="FOOTER_MESSAGE" /></translation> <translation id="2307630946657910723">Sahifa qismidan <ph name="VISUAL_SEARCH_PROVIDER" /> yordamida qidirish</translation> <translation id="2309620859903500144">Bu sahifa uchun harakat yoki yorug‘lik sensorlaridan foydalanish taqiqlandi</translation> +<translation id="2311721625890389967">↓</translation> <translation id="2312219318583366810">Sahifa URL manzili</translation> <translation id="2314165183524574721">Ayni vaqtda hech kimga koʻrinmaslik sozlangan</translation> <translation id="2314774579020744484">Tarjima qilishda ishlatiladigan til</translation> @@ -1639,6 +1642,7 @@ <translation id="2553340429761841190"><ph name="PRODUCT_NAME" /> brauzeri <ph name="NETWORK_ID" /> tarmog‘iga ulana olmadi. Boshqa tarmoqni tanlang yoki qayta urinib ko‘ring.</translation> <translation id="2553440850688409052">Bu plaginni yashirish</translation> <translation id="2554553592469060349">Tanlangan fayl juda katta (maksimal hajm: 3mb).</translation> +<translation id="2558569818338050235">Ochilgan saytlar tarixi chiqadigan reklamaga taʼsir qiladi</translation> <translation id="2558896001721082624">Maxsus imkoniyatlarni tizim menyusida ko‘rsatish</translation> <translation id="2564520396658920462">JavaScriptni AppleScript orqali bajarish funksiyasi o‘chiq. Uni yoqish uchun menyudagi “Ko‘rish > Dasturchilar uchun” sahifasi orqali Apple Events uchun JavaScript ishlatishga ruxsat bering. Batafsil axborot: https://support.google.com/chrome/?p=applescript</translation> <translation id="2564653188463346023">Kengaytirilgan imlo tekshiruvi</translation> @@ -1772,6 +1776,7 @@ <translation id="2709516037105925701">Avtoto‘ldirish</translation> <translation id="2710101514844343743">Foydalanish va diagnostika axboroti</translation> <translation id="271033894570825754">Yangi</translation> +<translation id="2711073837061989559">Sinovlar</translation> <translation id="2712173769900027643">Ruxsat so‘rash</translation> <translation id="2713106313042589954">Kamerani faolsizlantirish</translation> <translation id="2713444072780614174">Oq</translation> @@ -1968,6 +1973,7 @@ <translation id="2889064240420137087">Havolani ochish...</translation> <translation id="2891566119238851894">Yon panelda qidiruvni oching. Yon panelda qidiruv yopiq.</translation> <translation id="2891922230654533301"><ph name="APP_NAME" /> ilovasiga qurilma orqali kirilsinmi?</translation> +<translation id="2893013536106749396">Qiziqishingiz asosida xabar olishni istagan kartochkalarni tanlang</translation> <translation id="2893168226686371498">Standart brauzer</translation> <translation id="2893180576842394309">Qidiruv va boshqa xizmatlarni sizga moslashtirish uchun Google tarix maʼlumotlaringizdan foydalanishi mumkin</translation> <translation id="2894757982205307093">Joriy guruhda yangi varaq ochish</translation> @@ -2081,6 +2087,7 @@ <translation id="3003623123441819449">CSS Kesh hajmi</translation> <translation id="3003828226041301643">Qurilma domenga ulana olmadi. Qurilmalarni ulash huquqi sizga berilmaganga o‘xshaydi.</translation> <translation id="3003967365858406397"><ph name="PHONE_NAME" /> maxfiy Wi-Fi ulanish hosil qiladi.</translation> +<translation id="3005574332301273731">Koʻrsatilmasin</translation> <translation id="3006881078666935414">Sarf axboroti mavjud emas</translation> <translation id="3007771295016901659">Varaqni nusxalash</translation> <translation id="3008232374986381779"><ph name="DEVICE_TYPE" /> qurilmangizda Linux uskunalar, tahrirchilar va IDE qobiqlarini ishga tushiring. <ph name="LINK_BEGIN" />Batafsil<ph name="LINK_END" /></translation> @@ -2137,6 +2144,7 @@ <translation id="3053013834507634016">Sertifikat kalitining qo‘llanilishi</translation> <translation id="3053273573829329829">PIN bilan qulflash mumkin</translation> <translation id="3054766768827382232">Bu harakat tashqi qurilmalarning ishlashini yaxshilashi mumkin, ammo shu bilan birga shaxsiy maʼlumotlaringizni oshkor etish xavfini oshiradi.</translation> +<translation id="3055113921564083271">Olib tashlagan qiziqishlaringiz</translation> <translation id="3055590424724986000">Siz tanlagan provayder orqali</translation> <translation id="3058498974290601450">Istalgan vaqt sozlamalar orqali sinxronizatsiyani yoqish mumkin</translation> <translation id="3058517085907878899">Qurilma nomi</translation> @@ -2254,6 +2262,7 @@ <translation id="3183944777708523606">Monitor joylashuv tartibi</translation> <translation id="3184536091884214176">CUPS printerlarni sozlash va boshqarish. <ph name="LINK_BEGIN" />Batafsil<ph name="LINK_END" /></translation> <translation id="3185014249447200271">{NUM_APPS,plural, =1{Bu ilova bloklandi}other{Ayrim ilovalar bloklandi}}</translation> +<translation id="3187472288455401631">Reklamani oʻlchash</translation> <translation id="3188257591659621405">Fayllarim</translation> <translation id="3188465121994729530">O‘zgaruvchan o‘rtacha qiymat</translation> <translation id="3189187154924005138">Katta kursor</translation> @@ -2623,6 +2632,7 @@ <translation id="3575121482199441727">Bu saytda chiqaversin</translation> <translation id="3577745545227000795"><ph name="DEVICE_OS" /> qurilmasidan maʼlumotlarni yigʻish</translation> <translation id="3578594933904494462">Bu ichki oynadagi kontentga umumiy ruxsat ochilgan.</translation> +<translation id="3578874072190212775">Saytlarga firibgarlikka qarshi kurash va botlarni odamlardan farqlashda yordam berish</translation> <translation id="3581605050355435601">IP manzilni avtomatik sozlash</translation> <translation id="3582057310199111521">Qalbaki va axborotlari oshkor qilingan saytga kirdingiz.</translation> <translation id="3584169441612580296">Kompyuteringizdagi rasmlar, musiqa va boshqa mediafayllarni ko‘rish va o‘zgartirishga ruxsat</translation> @@ -3075,6 +3085,7 @@ <translation id="3979748722126423326"><ph name="NETWORKDEVICE" />‘ni yoqish</translation> <translation id="3981058120448670012">Boshqalarga <ph name="REMAINING_TIME" /> vaqtda <ph name="DEVICE_NAME" /> sifatida koʻrinadi...</translation> <translation id="3981760180856053153">Saqlash uchun yaroqsiz format kiritildi</translation> +<translation id="3981902534690264083">Reklama beruvchilar reklamalar qanday chiqishini oʻrganishi mumkin</translation> <translation id="3982375475032951137">Brauzerni oddiy bir nechta qadam bilan sozlang</translation> <translation id="3983400541576569538">Ayrim ilova maʼlumotlari tozalanishi mumkin</translation> <translation id="3983586614702900908">noma’lum ishlab chiqaruvchining qurilmalari</translation> @@ -4302,6 +4313,7 @@ <translation id="5265797726250773323">O‘rnatilmadi</translation> <translation id="5266113311903163739">Sertifikatlash markazidan import qilishda xatolik</translation> <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> uchun boshqa amallar</translation> +<translation id="5268373933383932086">Sahifani oʻz didingizda moslang</translation> <translation id="5269977353971873915">Chop etib bo‘lmadi</translation> <translation id="5273806377963980154">Sayt URL manzilini tahrirlash</translation> <translation id="5275352920323889391">Kuchuk</translation> @@ -5115,6 +5127,7 @@ <translation id="6080689532560039067">Tizim vaqtini tekshirish</translation> <translation id="6082877069782862752">Tugmalarning tayinlanishi</translation> <translation id="608531959444400877"><ph name="WINDOW_TITLE" /> – nomsiz guruhning qismi</translation> +<translation id="6085457109149794212">Chromeni moslash sahifasidagi barcha kartochka sozlamalarini ochish</translation> <translation id="6085886413119427067">Xavfsiz aloqadan foydalanadigan saytlarga qanday ulanishini aniqlaydi</translation> <translation id="6086004606538989567">Siz kirgan hisob bu qurilmadan foydalana olmaydi.</translation> <translation id="6086846494333236931">Administratoringiz tomonidan o‘rnatilgan</translation> @@ -5568,6 +5581,7 @@ <translation id="6537613839935722475">Nomda harflar, raqamlar va tirelar (-) ishlatish mumkin</translation> <translation id="6538098297809675636">Kod aniqlanmadi</translation> <translation id="653920215766444089">Ishora qurilmasi qidirilmoqda</translation> +<translation id="653983593749614101">Davom ettirilmoqda...</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Eslatma:<ph name="END_BOLD" /> Ushbu funksiya faqat zarurligida yoqilsin, chunki ma’lumotlarni yig‘ish jarayoni unumdorlikni pasaytirishi mumkin.</translation> <translation id="6540672086173674880">Google brauzer tarixidan qidiruv va boshqa Google xizmatlarini sizga moslashtirish maqsadlarida foydalanishi mumkin. Bu ruxsatni myaccount.google.com/activitycontrols/search sahifasidan boshqarishingiz mumkin.</translation> @@ -5784,6 +5798,7 @@ <translation id="6767566652486411142">Boshqa tilni tanlang...</translation> <translation id="6767639283522617719">Domenga ulana olmadi. Tashkilot qismi uchun bu sozlamalarni tekshiring.</translation> <translation id="6768034047581882264">Xavfli kontentni chiqarish uchun ruxsat berilmagan</translation> +<translation id="6770042910635026163">Qiziqishlarni ifodalovchi siz kiradigan saytlar</translation> <translation id="6770602306803890733">Siz va yaqinlaringizni internetdan yaxshiroq himoyalaydi</translation> <translation id="6771503742377376720">Bu sertifikatlashtirish markazi</translation> <translation id="6775163072363532304">Ulangan qurilmalar shu yerda chiqadi.</translation> @@ -6342,6 +6357,7 @@ <translation id="7347943691222276892"><ph name="SUBPAGE_TITLE" /> sahifasini tark etish uchun bosing.</translation> <translation id="7348093485538360975">Ekran klaviaturasi</translation> <translation id="7349010927677336670">Videoning ravonligi</translation> +<translation id="7352531447904559593">Brauzer asosidagi reklamani moslashtirish haqida batafsil</translation> <translation id="7352651011704765696">Xatolik yuz berdi.</translation> <translation id="7353261921908507769">Kontaktlaringiz sizga yaqinligida sizga fayl ulasha oladi. Uzatmalar qabul qilinmaguncha boshlanmaydi.</translation> <translation id="735361434055555355">Linux o‘rnatilmoqda...</translation> @@ -6632,6 +6648,7 @@ <translation id="7631887513477658702">&Bu turdagi fayllar har doim ochilsin</translation> <translation id="7632948528260659758">Quyidagi kiosk-ilovalarni yangilash amalga oshmadi:</translation> <translation id="7633724038415831385">Faqat shu safar kutish talab qilinmoqda. Chromebook qurilmalarida dasturiy yangilanishlar fonda bajariladi.</translation> +<translation id="7634280112532283638">Spam va firibgarlikka qarshi kurash</translation> <translation id="7634566076839829401">Xatolik yuz berdi. Qaytadan urinib ko‘ring.</translation> <translation id="7635048370253485243">Administratoringiz qadagan</translation> <translation id="763632859238619983">Saytlarga to‘lov vositalarini o‘rnatishni taqiqlash</translation> @@ -6983,6 +7000,7 @@ <translation id="7957074856830851026">Seriya raqami va obyekt identifikatori kabi qurilma axborotini koʻrish</translation> <translation id="7957615753207896812">Klaviatura sozlamalarini ochish</translation> <translation id="7959074893852789871">Faylda import qilinmagan bir necha sertifikatlar mavjud:</translation> +<translation id="7959157064403954786">Yanada shaffof reklamalarni sinash</translation> <translation id="7959665254555683862">Yangi inkognito &varaq</translation> <translation id="7961015016161918242">Hech qachon</translation> <translation id="7963001036288347286">Sensorli panelni tezlatish</translation> @@ -7669,6 +7687,7 @@ <translation id="866611985033792019">Ushbu sertifikat elektron pochta foydalanuvchilarini identifikatsiya qilishda ishonchli deb hisoblansin</translation> <translation id="8666584013686199826">Sayt USB qurilmalardan foydalanmoqchi bo‘lganda ruxsat so‘ralsin</translation> <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> to‘liq ekranda ochilib, sichqon kursorini yashirdi.</translation> +<translation id="8667760277771450375">Biz saytlarda spam va firibgarlik reklamalaridan himoyani yoqish orqali kuzatuv mexanizmlarini taqiqlash yoʻllarini oʻrganib chiqmoqdamiz.</translation> <translation id="8668052347555487755">Rangli rejim</translation> <translation id="8669284339312441707">Iliqroq</translation> <translation id="8670537393737592796">Buni tezroq ochish uchun <ph name="APP_NAME" /> ilovasini oʻrnatish tugmasini bosing</translation> @@ -8271,6 +8290,7 @@ <translation id="968000525894980488">Google Play xizmatlarini yoqing.</translation> <translation id="968037381421390582">Joyla&sh va qidirish: <ph name="SEARCH_TERMS" /></translation> <translation id="969096075394517431">Tillarni o‘zgartirish</translation> +<translation id="969573236494556070">Saytlararo axborot ulashuvini cheklash</translation> <translation id="970047733946999531">{NUM_TABS,plural, =1{1 ta ichki oyna}other{# ta ichki oyna}}</translation> <translation id="971510864672937292"><ph name="SITE_NAME" /> saytlari, ruxsatlari va pastidagi barcha saytlar tozalansinmi?</translation> <translation id="971774202801778802">Xatcho‘p URL manzili</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb index ae18df90..a5797d60 100644 --- a/chrome/app/resources/google_chrome_strings_es.xtb +++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -81,6 +81,7 @@ <translation id="2665296953892887393">Ayudar a mejorar Google Chrome enviando informes sobre fallos y <ph name="UMA_LINK" /> a Google</translation> <translation id="2689103672227170538">Esta extensión ha cambiado la página que se muestra al iniciar Chrome.</translation> <translation id="2742320827292110288">Advertencia: Google Chrome no puede evitar que las extensiones registren tu historial de navegación. Para inhabilitar esta extensión en el modo de incógnito, desmarca esta opción.</translation> +<translation id="2746842245914314523">Puedes obtener más información sobre estas funciones en la configuración de Chrome. Durante las pruebas, tu interacción con los sitios puede que no sea más privada que sin estas nuevas funciones.</translation> <translation id="2765403129283291972">Chrome necesita permiso para acceder al micrófono en este sitio web</translation> <translation id="2770231113462710648">Cambiar navegador predeterminado por:</translation> <translation id="2775140325783767197">Chrome no puede comprobar tus contraseñas. Revisa tu conexión a Internet.</translation> @@ -135,11 +136,13 @@ <translation id="3785324443014631273">ChromeOS Flex no ha podido sincronizar tus datos debido a un error de inicio de sesión.</translation> <translation id="3835168907083856002">Se creará un perfil nuevo de Chrome para <ph name="USER_EMAIL_ADDRESS" />.</translation> <translation id="386202838227397562">Cierra todas las ventanas de Google Chrome y vuelve a intentarlo.</translation> +<translation id="3862592757180800623">Puedes cambiar de opinión en cualquier momento en la configuración de Chrome. Durante las pruebas, tu interacción con los sitios puede que no sea más privada que sin estas nuevas funciones.</translation> <translation id="3865754807470779944">Está instalada la versión <ph name="PRODUCT_VERSION" /> de Chrome</translation> <translation id="3873044882194371212">Abrir enlace en una ventana de incó&gnito de Chrome</translation> <translation id="3889417619312448367">Desinstalar Google Chrome</translation> <translation id="4050175100176540509">En la última versión puedes encontrar mejoras de seguridad importantes y nuevas funciones.</translation> <translation id="4053720452172726777">Personaliza y controla Google Chrome</translation> +<translation id="4106587138345390261">Chrome está explorando nuevas funciones que permitan a los sitios ofrecer la misma experiencia de navegación usando menos información tuya.</translation> <translation id="4110895483821904099">Configura tu nuevo perfil de Chrome</translation> <translation id="4147555960264124640">Vas a iniciar sesión con una cuenta gestionada, lo que significa que proporcionarás a su administrador control sobre tu perfil de Google Chrome. Tus datos de Chrome como, por ejemplo, tus aplicaciones, tus marcadores, tu historial, tus contraseñas y otras opciones se vincularán de forma permanente a la cuenta <ph name="USER_NAME" />. Podrás eliminar estos datos a través del Panel de control de cuentas de Google, pero no podrás asociar estos datos a otra cuenta. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">El programa de instalación no ha podido descomprimir el archivo. Vuelve a descargar Google Chrome.</translation> @@ -148,6 +151,7 @@ <translation id="4242034826641750751">Chrome necesita los permisos del micrófono y de la cámara para este sitio</translation> <translation id="424864128008805179">¿Quieres cerrar sesión en Chrome?</translation> <translation id="4251615635259297716">¿Quieres vincular tus datos de Chrome a esta cuenta?</translation> +<translation id="4262915912852657291"><ph name="BEGIN_BOLD" />Qué datos se usan:<ph name="END_BOLD" /> tu historial de navegación, un registro de los sitios que has visitado usando Chrome en este dispositivo.</translation> <translation id="4281844954008187215">Términos del Servicio</translation> <translation id="4293420128516039005">Inicia sesión para sincronizar y personalizar Chrome en todos tus dispositivos</translation> <translation id="4325083532956419387">Versión de Chrome OS</translation> @@ -308,10 +312,12 @@ <translation id="8290100596633877290">¡Vaya! Se ha producido un fallo en Google Chrome. ¿Quieres reiniciar el navegador ahora?</translation> <translation id="8342675569599923794">Este archivo es peligroso, por lo que Chrome lo ha bloqueado.</translation> <translation id="8370517070665726704">Copyright <ph name="YEAR" /> Google LLC. Todos los derechos reservados.</translation> +<translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Cómo usamos estos datos:<ph name="END_BOLD" /> Chrome puede estimar tus intereses. Después, un sitio que visites puede pedirle a Chrome consultar tus intereses para personalizar los anuncios que veas.</translation> <translation id="8394720698884623075">Comprueba URLs con una lista de sitios no seguros guardada en Chrome.</translation> <translation id="840084489713044809">Google Chrome quiere exportar tus contraseñas.</translation> <translation id="8433638294851456451">Para enviar un número desde aquí a tu teléfono Android, inicia sesión en Chrome con ambos dispositivos.</translation> <translation id="8498858610309223613">Se acaba de instalar una actualización de seguridad especial para Google Chrome. Reinicia ahora y restauraremos las pestañas.</translation> +<translation id="8516431725144212809">Tus intereses estimados por Chrome</translation> <translation id="8521348052903287641">Regla entrante para que Google Chrome Dev permita tráfico mDNS.</translation> <translation id="8540666473246803645">Google Chrome</translation> <translation id="8550334526674375523">Este perfil de trabajo es completamente independiente de tu perfil personal.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb index 2efd4548..60501f3f 100644 --- a/chrome/app/resources/google_chrome_strings_fa.xtb +++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -77,6 +77,7 @@ <translation id="2665296953892887393">با ارسال گزارشهای خرابی و <ph name="UMA_LINK" /> به Google، به بهبود Google Chrome کمک کنید.</translation> <translation id="2689103672227170538">این افزونه، صفحهای را تغییر داده است که هنگام راهاندازی Chrome نشان داده میشود.</translation> <translation id="2742320827292110288">اخطار: Google Chrome نمی تواند مانع از ثبت سابقه مرور شما توسط افزونهها شود. برای غیرفعال کردن این افزونه در «حالت ناشناس»، این گزینه را لغو انتخاب کنید.</translation> +<translation id="2746842245914314523">در تنظیمات Chrome میتوانید اطلاعات بیشتری درباره این ویژگیها کسب کنید. درطول دورههای آزمایشی، ممکن است تعاملتان با سایتها از زمانیکه از این ویژگیهای جدید استفاده نمیکنید خصوصیتر نباشد.</translation> <translation id="2765403129283291972">Chrome برای این سایت به مجوز دسترسی به میکروفون نیاز دارد</translation> <translation id="2770231113462710648">تغییر مرورگر پیشفرض به:</translation> <translation id="2775140325783767197">Chrome نمیتواند گذرواژههایتان را بررسی کند. اتصال اینترنت را بررسی کنید.</translation> @@ -131,11 +132,13 @@ <translation id="3785324443014631273">بهدلیل خطای ورود به سیستم، ChromeOS Flex نتوانست دادههایتان را همگامسازی کند.</translation> <translation id="3835168907083856002">با این کار، نمایه Chrome جدیدی برای <ph name="USER_EMAIL_ADDRESS" /> ایجاد خواهد شد</translation> <translation id="386202838227397562">لطفاً همه پنجرههای Google Chrome را ببندید و دوباره امتحان کنید.</translation> +<translation id="3862592757180800623">هروقت بخواهید میتوانید در تنظیمات Chrome نظرتان را عوض کنید. درطول دورههای آزمایشی، ممکن است تعاملتان با سایتها از زمانیکه از این ویژگیهای جدید استفاده نمیکنید خصوصیتر نباشد.</translation> <translation id="3865754807470779944">Chrome نسخه <ph name="PRODUCT_VERSION" /> نصب شده است</translation> <translation id="3873044882194371212">باز کردن پیوند در پنجره &ناشناس Chrome</translation> <translation id="3889417619312448367">حذف نصب Google Chrome</translation> <translation id="4050175100176540509">بهبودهای امنیتی مهم و ویژگیهای جدید در جدیدترین نسخه در دسترس است.</translation> <translation id="4053720452172726777">سفارشی کردن و کنترل Google Chrome</translation> +<translation id="4106587138345390261">Chrome درحال کاوش ویژگیهای جدیدی است که به سایتهای امکان میدهد تجربه مرور یکسانی را با مصرف اطلاعات شخصی کمتر ارائه دهند</translation> <translation id="4110895483821904099">راهاندازی نمایه Chrome جدید</translation> <translation id="4147555960264124640">شما با حساب مدیریتشده وارد سیستم میشوید و به سرپرست آن اجازه کنترل بر نمایه Google Chrome خود را میدهید. دادههای Chrome شما شامل برنامهها، نشانکها، سابقه، گذرواژهها و سایر تنظیمات برای همیشه به <ph name="USER_NAME" /> مرتبط خواهد شد. میتوانید این دادهها را از طریق داشبورد حسابهای Google حذف کنید اما نمیتوانید این دادهها را به حساب دیگری مرتبط سازید. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">نصبکننده در خارج کردن آرشیو از حالت فشرده ناموفق بود. لطفاً دوباره Google Chrome را بارگیری کنید.</translation> @@ -144,6 +147,7 @@ <translation id="4242034826641750751">Chrome برای این سایت به اجازه دوربین و میکروفون نیاز دارد</translation> <translation id="424864128008805179">از سیستم Chrome خارج می شوید؟</translation> <translation id="4251615635259297716">دادههای Chrome شما به این حساب مرتبط شوند؟</translation> +<translation id="4262915912852657291"><ph name="BEGIN_BOLD" />انواع دادهای که استفاده میشود:<ph name="END_BOLD" /> سابقه مرور شما، سابقه سایتهایی که بااستفاده از Chrome در این دستگاه از آنها بازدید کردهاید.</translation> <translation id="4281844954008187215">شرایط استفاده از سرویس</translation> <translation id="4293420128516039005">برای همگامسازی و شخصیسازی Chrome در همه دستگاههایتان، به سیستم وارد شوید</translation> <translation id="4325083532956419387">نسخه Chrome OS</translation> @@ -300,10 +304,12 @@ <translation id="8290100596633877290">اوه! Google Chrome با اشکال مواجه شده است. دوباره راهاندازی شود؟</translation> <translation id="8342675569599923794">این فایل خطرناک است، بنابراین Chrome آن را مسدود کرده است.</translation> <translation id="8370517070665726704">حق نشر <ph name="YEAR" /> Google LLC. کلیه حقوق محفوظ است.</translation> +<translation id="8383226135083126309"><ph name="BEGIN_BOLD" />نحوه استفاده ما از این دادهها:<ph name="END_BOLD" /> Chrome میتواند علایق شما را برآورد کند. بعداً، سایتی که از آن بازدید میکنید میتواند برای شخصی کردن آگهیهایی که به شما نشان میدهد از Google بخواهد علایق شما را ببیند.</translation> <translation id="8394720698884623075">نشانیهای وب را با فهرست سایتهای ناامنی که در Chrome ذخیره شده است مقایسه میکند</translation> <translation id="840084489713044809">Google Chrome میخواهد گذرواژههای شما را صادر کند.</translation> <translation id="8433638294851456451">برای ارسال شماره از اینجا به تلفن Android خود، در هر دو دستگاه به سیستم Chrome وارد شوید.</translation> <translation id="8498858610309223613">لحظاتی پیش بهروزرسانی امنیتی ویژهای برای Google Chrome اعمال شد. هماکنون بازراهاندازی کنید و ما برگههایتان را بازیابی خواهیم کرد.</translation> +<translation id="8516431725144212809">علایق شما بهطوریکه Chrome برآورد کرده است</translation> <translation id="8521348052903287641">قانون ترافیک ورودی Google Chrome نسخه Dev برای امکان دادن به ترافیک mDNS.</translation> <translation id="8540666473246803645">Google Chrome</translation> <translation id="8550334526674375523">این نمایه کاری کاملاً مجزا از نمایه شخصیتان است.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ur.xtb b/chrome/app/resources/google_chrome_strings_ur.xtb index b585730a..d227cfe 100644 --- a/chrome/app/resources/google_chrome_strings_ur.xtb +++ b/chrome/app/resources/google_chrome_strings_ur.xtb
@@ -80,6 +80,7 @@ <translation id="2665296953892887393">Google کو کریش کی رپورٹیں اور <ph name="UMA_LINK" /> بھیج کر Google Chrome کو بہتر بنانے میں مدد کریں</translation> <translation id="2689103672227170538">آپ کی جانب سے Chrome شروع کرنے پر دکھائی دینے والے صفحہ کو اس ایکسٹینشن نے تبدیل کر دیا ہے۔</translation> <translation id="2742320827292110288">وارننگ: Google Chrome ایکسٹینشنز کو آپ کی براؤزنگ سرگزشت ریکارڈ کرنے سے نہیں روک سکتا۔ اس ایکسٹینشن کو پوشیدگی وضع میں غیر فعال کرنے کے لیے اس اختیار کو غیر منتخب کریں۔</translation> +<translation id="2746842245914314523">آپ Chrome کی ترتیبات میں ان خصوصیات کے بارے میں مزید جان سکتے ہیں۔ ٹرائلز کے دوران، سائٹس کے ساتھ آپ کا تعامل ان نئی خصوصیات کے بغیر اس سے زیادہ نجی نہیں ہو سکتا ہے۔</translation> <translation id="2765403129283291972">Chrome کو اس سائٹ کیلئے آپ کے مائیکروفون تک رسائی کی اجازت درکار ہے</translation> <translation id="2770231113462710648">ڈیفالٹ براؤزر کو اس میں تبدیل کریں:</translation> <translation id="2775140325783767197">Chrome آپ کے پاس ورڈز چیک نہیں کر سکتا ہے۔ اپنا انٹرنیٹ کنکشن چیک کرنے کی کوشش کریں۔</translation> @@ -134,11 +135,13 @@ <translation id="3785324443014631273">ChromeOS Flex سائن ان میں ایک خرابی کی وجہ سے آپ کے ڈیٹا کی مطابقت پذیری نہیں کر سکا۔</translation> <translation id="3835168907083856002">اس سے <ph name="USER_EMAIL_ADDRESS" /> کیلئے ایک نئی Chrome پروفائل تخلیق ہو جائے گی</translation> <translation id="386202838227397562">براہ کرم سبھی Google Chrome ونڈوز بند کریں اور دوبارہ کوشش کریں۔</translation> +<translation id="3862592757180800623">آپ Chrome کی ترتیبات میں کسی بھی وقت اپنا ارادہ بدل سکتے ہیں۔ ٹرائلز کے دوران، سائٹس کے ساتھ آپ کا تعامل ان نئی خصوصیات کے بغیر اس سے زیادہ نجی نہیں ہو سکتا ہے۔</translation> <translation id="3865754807470779944">Chrome ورژن <ph name="PRODUCT_VERSION" /> انسٹال نہیں ہے</translation> <translation id="3873044882194371212">لنک کو Chrome &پوشیدگی ونڈو میں کھولیں</translation> <translation id="3889417619312448367">Google Chrome کو اَن انسٹال کریں</translation> <translation id="4050175100176540509">اہم سیکیورٹی اصلاحات اور نئی خصوصیات تازہ ترین ورژن میں دستیاب ہیں۔</translation> <translation id="4053720452172726777">Google Chrome کو حسب ضرورت بنائیں اور کنٹرول کریں</translation> +<translation id="4106587138345390261">Chrome نئی خصوصیات کو دریافت کر رہا ہے جو سائٹس کو آپ کی کم معلومات کا استعمال کر کے وہی براؤزنگ تجربہ فراہم کرنے کی اجازت دیتی ہیں</translation> <translation id="4110895483821904099">اپنی نئی Chrome پروفائل سیٹ اپ کریں</translation> <translation id="4147555960264124640">آپ ایک زیر انتظام اکاؤنٹ کے ساتھ سائن ان کر رہے ہیں اور اس کے منتظم کو اپنے Google Chrome پروفائل پر کنٹرول دے رہے ہیں۔ آپ کا Chrome کا ڈیٹا جیسے آپ کی ایپس، بُک مارکس، سرگزشت، پاس ورڈز اور دیگر ترتیبات <ph name="USER_NAME" /> سے مستقل طور پر جڑ جائیں گی۔ آپ Google اکاؤنٹس ڈیش بورڈ کے ذریعہ یہ ڈیٹا حذف کر سکیں گے، لیکن آپ یہ ڈیٹا دوسرے اکاؤنٹ کے ساتھ وابستہ نہیں کر سکیں گے۔ <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">انسٹالر آرکائیو کا کمپریشن ختم کرنے میں ناکام ہوگیا۔ براہ کرم Google Chrome کو دوبارہ ڈاؤن لوڈ کریں۔</translation> @@ -147,6 +150,7 @@ <translation id="4242034826641750751">Chrome کو اس سائٹ کے لیے کیمرے اور مائیکروفون کی اجازتیں درکار ہیں</translation> <translation id="424864128008805179">Chrome سے سائن آؤٹ کریں؟</translation> <translation id="4251615635259297716">آپ کا Chrome ڈیٹا اس اکاؤنٹ سے لنک کریں؟</translation> +<translation id="4262915912852657291"><ph name="BEGIN_BOLD" />کون سا ڈیٹا استعمال کیا جاتا ہے:<ph name="END_BOLD" /> آپ کی براؤزنگ کی سرگزشت، ان سائٹس کا ریکارڈ جو آپ اس آلے پر Chrome کا استعمال کر کے ملاحظہ کر چکے ہیں۔</translation> <translation id="4281844954008187215">سروس کی شرائط</translation> <translation id="4293420128516039005">اپنے آلات پر Chrome کو مطابقت پذیر اور ذاتی نوعیت کا بنانے کے لیے سائن ان کریں</translation> <translation id="4325083532956419387">Chrome OS ورژن</translation> @@ -307,10 +311,12 @@ <translation id="8290100596633877290">افوہ! Google Chrome کریش ہوگیا ہے۔ ابھی دوبارہ شروع کریں؟</translation> <translation id="8342675569599923794">یہ فائل خطرناک ہے، اس لیے Chrome نے اسے مسدود کر دیا ہے۔</translation> <translation id="8370517070665726704">کاپی رائٹ<ph name="YEAR" /> Google LLC۔ جملہ حقوق محفوظ ہیں۔</translation> +<translation id="8383226135083126309"><ph name="BEGIN_BOLD" />ہمارا اس ڈیٹا کو استعمال کرنے کا طریقہ:<ph name="END_BOLD" /> Chrome آپ کی دلچسپیوں کا اندازہ لگا سکتا ہے۔ بعد میں، آپ کی ملاحظہ کی جانے والی سائٹ آپ کو دکھائی دینے والے اشتہارات کو ذاتی نوعیت کا بنانے کے لیے Chrome سے آپ کی دلچسپیوں کو دیکھنے کا مطالبہ کر سکتی ہے۔</translation> <translation id="8394720698884623075">Chrome میں اسٹور کردہ غیر محفوظ سائٹس کی فہرست کے URLs چیک کرتا ہے</translation> <translation id="840084489713044809">Google Chrome آپ کے پاس ورڈز برآمد کرنا چاہتا ہے۔</translation> <translation id="8433638294851456451">یہاں سے اپنے Android فون پر نمبر بھیجنے کے لیے، دونوں آلات پر Chrome میں سائن ان کریں۔</translation> <translation id="8498858610309223613">Google Chrome کے لیے ایک خاص سیکیورٹی اپ ڈیٹ ابھی ابھی لاگو کیا گیا ہے۔ ابھی دوبارہ شروع کریں اور ہم آپ کے ٹیبز کو بحال کر دیں گے۔</translation> +<translation id="8516431725144212809">Chrome کے مطابق اندازہ لگائی گئی آپ کی دلچسپیاں</translation> <translation id="8521348052903287641">mDNS ٹریفک کی اجازت دینے کے لیے Google Chrome Dev کے لیے ان باؤنڈ اصول۔</translation> <translation id="8540666473246803645">Google Chrome</translation> <translation id="8550334526674375523">یہ دفتری پروفائل آپ کی ذاتی پروفائل سے پوری طرح علیحدہ ہے۔</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uz.xtb b/chrome/app/resources/google_chrome_strings_uz.xtb index aeba8d7..dad930fd 100644 --- a/chrome/app/resources/google_chrome_strings_uz.xtb +++ b/chrome/app/resources/google_chrome_strings_uz.xtb
@@ -78,6 +78,7 @@ <translation id="2665296953892887393">Google‘ga ishdan chiqishlar hisoboti va <ph name="UMA_LINK" />‘ni jo‘natib Google Chrome yaxshilanishiga yordam berish.</translation> <translation id="2689103672227170538">Bu kengaytma Chrome ishga tushganda ko‘rinadigan sahifani o‘zgartirdi.</translation> <translation id="2742320827292110288">Diqqat: Google Chrome kengaytmalar kezish tarixini yozib olishiga to‘sqinlik qilolmaydi. Bu kengaytmani inkognito rejimida o‘chirish uchun ushbu parametrdan belgini olib tashlang.</translation> +<translation id="2746842245914314523">Bu funksiyalar haqida batafsil axborotni Chrome sozlamalari orqali olish mumkin. Sinov davrida saytlar bilan ishlash maxfiyligi yangi funksiyalar bilan biroz pasayishi mumkin.</translation> <translation id="2765403129283291972">Bu sayt mikrofoningizdan foydalanishi uchun Chrome brauzeriga ruxsat berishingiz lozim</translation> <translation id="2770231113462710648">Standart brauzer etib tayinlash:</translation> <translation id="2775140325783767197">Chrome parollaringizni tekshira olmadi. Internet aloqasini tekshiring.</translation> @@ -132,11 +133,13 @@ <translation id="3785324443014631273">Hisobga kirishdagi xatolik sababli ChromeOS Flex maʼlumotlarni sinxronlay olmadi.</translation> <translation id="3835168907083856002">Bunda <ph name="USER_EMAIL_ADDRESS" /> uchun yangi Chrome profili yaratiladi</translation> <translation id="386202838227397562">Barcha Google Chrome oynalarini yoping va qaytadan urinib ko‘ring.</translation> +<translation id="3862592757180800623">Fikringiz oʻzgarsa, buni istalgan vaqt Chrome sozlamalari orqali oʻzgartirish mumkin. Sinov davrida saytlar bilan ishlash maxfiyligi yangi funksiyalar bilan biroz pasayishi mumkin.</translation> <translation id="3865754807470779944">Chrome <ph name="PRODUCT_VERSION" /> versiyasi oʻrnatilgan</translation> <translation id="3873044882194371212">Havolani &inkognito oynada ochish</translation> <translation id="3889417619312448367">Google Chrome’ni o‘chirib tashlash</translation> <translation id="4050175100176540509">So‘nggi versiyada himoya devori yaxshilandi va yangi funksiyalar qo‘shildi.</translation> <translation id="4053720452172726777">Google Chrome’ni sozlash va boshqarish</translation> +<translation id="4106587138345390261">Chrome saytlarga kamroq maʼlumotlaringiz bilan bir xil brauzer xizmatlarini taqdim etishiga imkon beruvchi yangi funksiyalarni oʻrganib chiqmoqda</translation> <translation id="4110895483821904099">Yangi Chrome profilini sozlang</translation> <translation id="4147555960264124640">Siz boshqaruvdagi hisobga kiryapsiz va uning administratoriga Google Chrome profilingizni boshqarishga ruxsat beryapsiz. Ilovalar, xatcho‘plar, brauzer tarixi, parollar va boshqa sozlamalar kabi barcha Chrome ma’lumotlaringiz <ph name="USER_NAME" /> hisobiga biriktiriladi. Siz bu ma’lumotlarni Google hisoblar shaxsiy kabinetidan o‘chirishingiz mumkin, lekin bu ma’lumotlarni boshqa hisob bilan bog‘lay olmaysiz. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">Fayllarni arxivdan chiqarib bo‘lmadi. Google Chrome‘ni qayta yuklab oling.</translation> @@ -145,6 +148,7 @@ <translation id="4242034826641750751">Chrome bu saytda kamera va mikrofondan foydalanishiga ruxsat kerak</translation> <translation id="424864128008805179">Chrome hisobidan chiqmoqchimisiz?</translation> <translation id="4251615635259297716">Chrome ma’lumotlari bu hisobga bog‘lansinmi?</translation> +<translation id="4262915912852657291"><ph name="BEGIN_BOLD" />Qanday maʼlumotlar ishlatilishi:<ph name="END_BOLD" /> Bu qurilmada Chrome orqali siz kirgan saytlar tarixidagi qaydlar.</translation> <translation id="4281844954008187215">Xizmat shartlari</translation> <translation id="4293420128516039005">Chrome brauzerini barcha qurilmalringizda sinxronlash va o‘zingizga moslab olish uchun hisobingizga kiring</translation> <translation id="4325083532956419387">Chrome OS versiyasi</translation> @@ -305,10 +309,12 @@ <translation id="8290100596633877290">Google Chrome ishdan chiqdi. Qaytadan ishga tushirilsinmi?</translation> <translation id="8342675569599923794">Bu fayl zararli edi va u Chrome tomonidan bloklandi.</translation> <translation id="8370517070665726704">© Google LLC, <ph name="YEAR" /> Barcha huquqlar himoyalangan.</translation> +<translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Bu axborotdan qanday foydalanamiz:<ph name="END_BOLD" /> Chrome qiziqishlaringizni taxmin qila oladi. Keyinchalik sayt sizga chiqadigan reklamani moslashtirish maqsadida Chromedan qiziqishlaringiz haqida soʻrashi mumkin.</translation> <translation id="8394720698884623075">URL manzillar Chrome bilgan zararli saytlar roʻyxati orqali tekshiriladi</translation> <translation id="840084489713044809">Google Chrome parollaringizni eksport qilmoqchi.</translation> <translation id="8433638294851456451">Bu yerdan Android telefoningizga raqam yuborish uchun ikkala qurilmada Chrome hisobingizga kiring.</translation> <translation id="8498858610309223613">Google Chrome xavfsizlik tizimiga maxsus yangilanish oʻrnatildi. Qayta ishga tushiring va ochiq sahifalarni tiklang.</translation> +<translation id="8516431725144212809">Chrome taxmin qilgan qiziqishlaringiz</translation> <translation id="8521348052903287641">Google Chrome Dev mDNS trafigiga ruxsat berishiga oid kiruvchi qoida.</translation> <translation id="8540666473246803645">Google Chrome</translation> <translation id="8550334526674375523">Bu ish profili shaxsiy profilingizdan butunlay ajratilgan.</translation>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 9abdcbc..0ba3d00 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -4335,11 +4335,6 @@ flag_descriptions::kAccessibilityPageZoomName, flag_descriptions::kAccessibilityPageZoomDescription, kOsAndroid, FEATURE_VALUE_TYPE(features::kAccessibilityPageZoom)}, - {"enable-android-layout-change-tab-reparenting", - flag_descriptions::kAndroidLayoutChangeTabReparentingName, - flag_descriptions::kAndroidLayoutChangeTabReparentingDescription, - kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kAndroidLayoutChangeTabReparenting)}, #endif // BUILDFLAG(IS_ANDROID) {"enable-experimental-accessibility-language-detection", flag_descriptions::kExperimentalAccessibilityLanguageDetectionName, @@ -8072,8 +8067,10 @@ #endif #if BUILDFLAG(IS_CHROMEOS) + // TODO(crbug.com/1308294): Replace kOsLinux with Lacros in Link + // Capturing/Intent Chip flags. {"link-capturing-ui-update", flag_descriptions::kLinkCapturingUiUpdateName, - flag_descriptions::kLinkCapturingUiUpdateDescription, kOsCrOS, + flag_descriptions::kLinkCapturingUiUpdateDescription, kOsCrOS | kOsLinux, FEATURE_VALUE_TYPE(apps::features::kLinkCapturingUiUpdate)}, #endif @@ -8282,14 +8279,20 @@ FEATURE_VALUE_TYPE(network::features::kOmitCorsClientCert)}, #if BUILDFLAG(IS_CHROMEOS) + // TODO(crbug.com/1308294): Replace kOsLinux with Lacros in Link + // Capturing/Intent Chip flags. {"link-capturing-infobar", flag_descriptions::kLinkCapturingInfoBarName, - flag_descriptions::kLinkCapturingInfoBarDescription, kOsCrOS, + flag_descriptions::kLinkCapturingInfoBarDescription, kOsCrOS | kOsLinux, FEATURE_VALUE_TYPE(apps::features::kLinkCapturingInfoBar)}, {"intent-chip-skips-intent-picker", flag_descriptions::kIntentChipSkipsPickerName, - flag_descriptions::kIntentChipSkipsPickerDescription, kOsCrOS, + flag_descriptions::kIntentChipSkipsPickerDescription, kOsCrOS | kOsLinux, FEATURE_VALUE_TYPE(apps::features::kIntentChipSkipsPicker)}, + + {"intent-chip-app-icon", flag_descriptions::kIntentChipAppIconName, + flag_descriptions::kIntentChipAppIconDescription, kOsCrOS | kOsLinux, + FEATURE_VALUE_TYPE(apps::features::kIntentChipAppIcon)}, #endif // NOTE: Adding a new flag requires adding a corresponding entry to enum
diff --git a/chrome/browser/apps/digital_goods/digital_goods_impl.cc b/chrome/browser/apps/digital_goods/digital_goods_impl.cc index c4b88b8..1f09568f 100644 --- a/chrome/browser/apps/digital_goods/digital_goods_impl.cc +++ b/chrome/browser/apps/digital_goods/digital_goods_impl.cc
@@ -60,38 +60,13 @@ std::move(callback)); } -void DigitalGoodsImpl::Acknowledge(const std::string& purchase_token, - bool make_available_again, - AcknowledgeCallback callback) { - auto* digital_goods_service = GetArcDigitalGoodsBridge(); - - if (!digital_goods_service) { - std::move(callback).Run( - payments::mojom::BillingResponseCode::kClientAppUnavailable); - return; - } - - const std::string package_name = - apps::GetTwaPackageName(&render_frame_host()); - const std::string scope = apps::GetScope(&render_frame_host()); - if (package_name.empty() || scope.empty()) { - LogErrorState(package_name, scope); - std::move(callback).Run( - payments::mojom::BillingResponseCode::kClientAppUnavailable); - return; - } - - digital_goods_service->Acknowledge(package_name, scope, purchase_token, - make_available_again, std::move(callback)); -} - void DigitalGoodsImpl::ListPurchases(ListPurchasesCallback callback) { auto* digital_goods_service = GetArcDigitalGoodsBridge(); if (!digital_goods_service) { std::move(callback).Run( payments::mojom::BillingResponseCode::kClientAppUnavailable, - /*purchase_details_list=*/{}); + /*purchase_reference_list=*/{}); return; } @@ -102,7 +77,7 @@ LogErrorState(package_name, scope); std::move(callback).Run( payments::mojom::BillingResponseCode::kClientAppUnavailable, - /*purchase_details_list=*/{}); + /*purchase_reference_list=*/{}); return; } @@ -110,6 +85,56 @@ std::move(callback)); } +void DigitalGoodsImpl::ListPurchaseHistory( + ListPurchaseHistoryCallback callback) { + auto* digital_goods_service = GetArcDigitalGoodsBridge(); + + if (!digital_goods_service) { + std::move(callback).Run( + payments::mojom::BillingResponseCode::kClientAppUnavailable, + /*purchase_reference_list=*/{}); + return; + } + + const std::string package_name = + apps::GetTwaPackageName(&render_frame_host()); + const std::string scope = apps::GetScope(&render_frame_host()); + if (package_name.empty() || scope.empty()) { + LogErrorState(package_name, scope); + std::move(callback).Run( + payments::mojom::BillingResponseCode::kClientAppUnavailable, + /*purchase_reference_list=*/{}); + return; + } + + digital_goods_service->ListPurchaseHistory(package_name, scope, + std::move(callback)); +} + +void DigitalGoodsImpl::Consume(const std::string& purchase_token, + ConsumeCallback callback) { + auto* digital_goods_service = GetArcDigitalGoodsBridge(); + + if (!digital_goods_service) { + std::move(callback).Run( + payments::mojom::BillingResponseCode::kClientAppUnavailable); + return; + } + + const std::string package_name = + apps::GetTwaPackageName(&render_frame_host()); + const std::string scope = apps::GetScope(&render_frame_host()); + if (package_name.empty() || scope.empty()) { + LogErrorState(package_name, scope); + std::move(callback).Run( + payments::mojom::BillingResponseCode::kClientAppUnavailable); + return; + } + + digital_goods_service->Consume(package_name, scope, purchase_token, + std::move(callback)); +} + // Private methods: DigitalGoodsImpl::DigitalGoodsImpl(content::RenderFrameHost* rfh) : content::DocumentUserData<DigitalGoodsImpl>(rfh), receiver_(this) {}
diff --git a/chrome/browser/apps/digital_goods/digital_goods_impl.h b/chrome/browser/apps/digital_goods/digital_goods_impl.h index 0a63bc6..f0df451 100644 --- a/chrome/browser/apps/digital_goods/digital_goods_impl.h +++ b/chrome/browser/apps/digital_goods/digital_goods_impl.h
@@ -29,10 +29,10 @@ // payments::mojom::DigitalGoods overrides. void GetDetails(const std::vector<std::string>& item_ids, GetDetailsCallback callback) override; - void Acknowledge(const std::string& purchase_token, - bool make_available_again, - AcknowledgeCallback callback) override; void ListPurchases(ListPurchasesCallback callback) override; + void ListPurchaseHistory(ListPurchaseHistoryCallback callback) override; + void Consume(const std::string& purchase_token, + ConsumeCallback callback) override; private: explicit DigitalGoodsImpl(content::RenderFrameHost* render_frame_host);
diff --git a/chrome/browser/apps/intent_helper/intent_picker_features.cc b/chrome/browser/apps/intent_helper/intent_picker_features.cc index 3803422f..763bc20 100644 --- a/chrome/browser/apps/intent_helper/intent_picker_features.cc +++ b/chrome/browser/apps/intent_helper/intent_picker_features.cc
@@ -16,6 +16,9 @@ const base::Feature kIntentChipSkipsPicker{"IntentChipSkipsPicker", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kIntentChipAppIcon{"AppIconInIntentChip", + base::FEATURE_DISABLED_BY_DEFAULT}; + bool LinkCapturingUiUpdateEnabled() { return base::FeatureList::IsEnabled(kLinkCapturingUiUpdate); } @@ -30,4 +33,9 @@ base::FeatureList::IsEnabled(kIntentChipSkipsPicker); } +bool AppIconInIntentChipEnabled() { + return LinkCapturingInfoBarEnabled() && + base::FeatureList::IsEnabled(kIntentChipAppIcon); +} + } // namespace apps::features
diff --git a/chrome/browser/apps/intent_helper/intent_picker_features.h b/chrome/browser/apps/intent_helper/intent_picker_features.h index 4407f76..be11d0e 100644 --- a/chrome/browser/apps/intent_helper/intent_picker_features.h +++ b/chrome/browser/apps/intent_helper/intent_picker_features.h
@@ -12,6 +12,7 @@ extern const base::Feature kLinkCapturingUiUpdate; extern const base::Feature kLinkCapturingInfoBar; extern const base::Feature kIntentChipSkipsPicker; +extern const base::Feature kIntentChipAppIcon; // Returns true if the overall link capturing UI update feature is enabled. bool LinkCapturingUiUpdateEnabled(); @@ -26,6 +27,11 @@ // LinkCapturingUiUpdateEnabled() returns true. bool LinkCapturingInfoBarEnabled(); +// Returns true if the Intent Chip should show the app icon for the app which +// can handle the current URL. If false, a generic icon should always be used. +// Only returns true if LinkCapturingUiUpdateEnabled() returns true. +bool AppIconInIntentChipEnabled(); + } // namespace apps::features #endif // CHROME_BROWSER_APPS_INTENT_HELPER_INTENT_PICKER_FEATURES_H_
diff --git a/chrome/browser/ash/accessibility/dictation_browsertest.cc b/chrome/browser/ash/accessibility/dictation_browsertest.cc index 4e5b19f1..dc9a9d9 100644 --- a/chrome/browser/ash/accessibility/dictation_browsertest.cc +++ b/chrome/browser/ash/accessibility/dictation_browsertest.cc
@@ -1361,7 +1361,35 @@ }; // Consistently failing on Linux ChromiumOS MSan (https://crbug.com/1302688). -#if BUILDFLAG(IS_CHROMEOS) && !defined(MEMORY_SANITIZER) +#if BUILDFLAG(IS_CHROMEOS) && defined(MEMORY_SANITIZER) +#define MAYBE_ShownWhenSpeechRecognitionStarts \ + DISABLED_ShownWhenSpeechRecognitionStarts +#define MAYBE_DisplaysInterimSpeechResults DISABLED_DisplaysInterimSpeechResults +#define MAYBE_DisplaysMacroSuccess DISABLED_DisplaysMacroSuccess +#define MAYBE_ResetsToStandbyModeAfterFinalSpeechResult \ + DISABLED_ResetsToStandbyModeAfterFinalSpeechResult +#define MAYBE_DisplaysMacroSuccess DISABLED_DisplaysMacroSuccess +#define MAYBE_HiddenWhenDictationDeactivates \ + DISABLED_HiddenWhenDictationDeactivates +#define MAYBE_StandbyHints DISABLED_StandbyHints +#define MAYBE_HintsShownWhenTextCommitted DISABLED_HintsShownWhenTextCommitted +#define MAYBE_HintsShownAfterTextSelected DISABLED_HintsShownAfterTextSelected +#define MAYBE_HintsShownAfterCommandExecuted \ + DISABLED_HintsShownAfterCommandExecuted +#else +#define MAYBE_ShownWhenSpeechRecognitionStarts ShownWhenSpeechRecognitionStarts +#define MAYBE_DisplaysInterimSpeechResults DisplaysInterimSpeechResults +#define MAYBE_DisplaysMacroSuccess DisplaysMacroSuccess +#define MAYBE_ResetsToStandbyModeAfterFinalSpeechResult \ + ResetsToStandbyModeAfterFinalSpeechResult +#define MAYBE_DisplaysMacroSuccess DisplaysMacroSuccess +#define MAYBE_HiddenWhenDictationDeactivates HiddenWhenDictationDeactivates +#define MAYBE_StandbyHints StandbyHints +#define MAYBE_HintsShownWhenTextCommitted HintsShownWhenTextCommitted +#define MAYBE_HintsShownAfterTextSelected HintsShownAfterTextSelected +#define MAYBE_HintsShownAfterCommandExecuted HintsShownAfterCommandExecuted +#endif + INSTANTIATE_TEST_SUITE_P( Network, DictationUITest, @@ -1371,9 +1399,9 @@ OnDevice, DictationUITest, ::testing::Values(speech::SpeechRecognitionType::kOnDevice)); -#endif -IN_PROC_BROWSER_TEST_P(DictationUITest, ShownWhenSpeechRecognitionStarts) { +IN_PROC_BROWSER_TEST_P(DictationUITest, + MAYBE_ShownWhenSpeechRecognitionStarts) { ToggleDictationWithKeystroke(); WaitForRecognitionStarted(); WaitForProperties(/*visible=*/true, @@ -1382,7 +1410,7 @@ /*hints=*/absl::optional<std::vector<std::u16string>>()); } -IN_PROC_BROWSER_TEST_P(DictationUITest, DisplaysInterimSpeechResults) { +IN_PROC_BROWSER_TEST_P(DictationUITest, MAYBE_DisplaysInterimSpeechResults) { ToggleDictationWithKeystroke(); WaitForRecognitionStarted(); // Send an interim speech result. @@ -1393,7 +1421,7 @@ /*hints=*/absl::optional<std::vector<std::u16string>>()); } -IN_PROC_BROWSER_TEST_P(DictationUITest, DisplaysMacroSuccess) { +IN_PROC_BROWSER_TEST_P(DictationUITest, MAYBE_DisplaysMacroSuccess) { ToggleDictationWithKeystroke(); WaitForRecognitionStarted(); // Perform a command. @@ -1410,7 +1438,7 @@ } IN_PROC_BROWSER_TEST_P(DictationUITest, - ResetsToStandbyModeAfterFinalSpeechResult) { + MAYBE_ResetsToStandbyModeAfterFinalSpeechResult) { ToggleDictationWithKeystroke(); WaitForRecognitionStarted(); WaitForProperties(/*visible=*/true, @@ -1431,7 +1459,7 @@ /*hints=*/absl::optional<std::vector<std::u16string>>()); } -IN_PROC_BROWSER_TEST_P(DictationUITest, HiddenWhenDictationDeactivates) { +IN_PROC_BROWSER_TEST_P(DictationUITest, MAYBE_HiddenWhenDictationDeactivates) { ToggleDictationWithKeystroke(); WaitForRecognitionStarted(); WaitForProperties(/*visible=*/true, @@ -1447,7 +1475,7 @@ /*hints=*/absl::optional<std::vector<std::u16string>>()); } -IN_PROC_BROWSER_TEST_P(DictationUITest, StandbyHints) { +IN_PROC_BROWSER_TEST_P(DictationUITest, MAYBE_StandbyHints) { ToggleDictationWithKeystroke(); WaitForRecognitionStarted(); WaitForProperties(/*visible=*/true, @@ -1497,7 +1525,7 @@ sm.Replay(); } -IN_PROC_BROWSER_TEST_P(DictationUITest, HintsShownWhenTextCommitted) { +IN_PROC_BROWSER_TEST_P(DictationUITest, MAYBE_HintsShownWhenTextCommitted) { ToggleDictationWithKeystroke(); WaitForRecognitionStarted(); @@ -1523,7 +1551,7 @@ kHelp}); } -IN_PROC_BROWSER_TEST_P(DictationUITest, HintsShownAfterTextSelected) { +IN_PROC_BROWSER_TEST_P(DictationUITest, MAYBE_HintsShownAfterTextSelected) { ToggleDictationWithKeystroke(); WaitForRecognitionStarted(); @@ -1549,7 +1577,7 @@ kHelp}); } -IN_PROC_BROWSER_TEST_P(DictationUITest, HintsShownAfterCommandExecuted) { +IN_PROC_BROWSER_TEST_P(DictationUITest, MAYBE_HintsShownAfterCommandExecuted) { ToggleDictationWithKeystroke(); WaitForRecognitionStarted();
diff --git a/chrome/browser/ash/app_mode/kiosk_app_manager.cc b/chrome/browser/ash/app_mode/kiosk_app_manager.cc index fc758e8..2e11e9b1 100644 --- a/chrome/browser/ash/app_mode/kiosk_app_manager.cc +++ b/chrome/browser/ash/app_mode/kiosk_app_manager.cc
@@ -62,8 +62,6 @@ namespace { -using ::chromeos::InstallAttributes; - // Domain that is used for kiosk-app account IDs. constexpr char kKioskAppAccountDomain[] = "kiosk-apps";
diff --git a/chrome/browser/ash/app_mode/kiosk_app_manager.h b/chrome/browser/ash/app_mode/kiosk_app_manager.h index faf73b5..d266182 100644 --- a/chrome/browser/ash/app_mode/kiosk_app_manager.h +++ b/chrome/browser/ash/app_mode/kiosk_app_manager.h
@@ -258,12 +258,12 @@ void OnExtensionLoadedInCache(const extensions::ExtensionId& id) override; void OnExtensionDownloadFailed(const extensions::ExtensionId& id) override; - // Callback for chromeos::InstallAttributes::LockDevice() during + // Callback for `InstallAttributes::LockDevice()` during // EnableConsumerModeKiosk() call. void OnLockDevice(EnableKioskAutoLaunchCallback callback, - chromeos::InstallAttributes::LockResult result); + InstallAttributes::LockResult result); - // Callback for chromeos::InstallAttributes::ReadImmutableAttributes() during + // Callback for `InstallAttributes::ReadImmutableAttributes()` during // GetConsumerKioskModeStatus() call. void OnReadImmutableAttributes( GetConsumerKioskAutoLaunchStatusCallback callback);
diff --git a/chrome/browser/ash/app_mode/kiosk_app_manager_browsertest.cc b/chrome/browser/ash/app_mode/kiosk_app_manager_browsertest.cc index 73b89bf..fbc9b97a 100644 --- a/chrome/browser/ash/app_mode/kiosk_app_manager_browsertest.cc +++ b/chrome/browser/ash/app_mode/kiosk_app_manager_browsertest.cc
@@ -51,8 +51,6 @@ namespace { -using ::chromeos::InstallAttributes; - // An app to test local fs data persistence across app update. V1 app writes // data into local fs. V2 app reads and verifies the data. // Webstore data json is in
diff --git a/chrome/browser/ash/apps/apk_web_app_installer_browsertest.cc b/chrome/browser/ash/apps/apk_web_app_installer_browsertest.cc index 064ee68..704f829 100644 --- a/chrome/browser/ash/apps/apk_web_app_installer_browsertest.cc +++ b/chrome/browser/ash/apps/apk_web_app_installer_browsertest.cc
@@ -100,7 +100,7 @@ const web_app::WebApp* web_app, const GURL& url) { // Manifest fields: - EXPECT_EQ(web_app->name(), "App Title"); + EXPECT_EQ(web_app->untranslated_name(), "App Title"); EXPECT_EQ(web_app->start_url(), url); EXPECT_EQ(web_app->scope().spec(), url.Resolve("scope")); EXPECT_EQ(web_app->display_mode(), web_app::DisplayMode::kBrowser);
diff --git a/chrome/browser/ash/attestation/tpm_challenge_key_subtle.cc b/chrome/browser/ash/attestation/tpm_challenge_key_subtle.cc index 30a529e2..0ef696e 100644 --- a/chrome/browser/ash/attestation/tpm_challenge_key_subtle.cc +++ b/chrome/browser/ash/attestation/tpm_challenge_key_subtle.cc
@@ -88,9 +88,10 @@ //===================== TpmChallengeKeySubtleImpl ============================== namespace { + // Returns true if the device is enterprise managed. bool IsEnterpriseDevice() { - return chromeos::InstallAttributes::Get()->IsEnterpriseManaged(); + return InstallAttributes::Get()->IsEnterpriseManaged(); } // For personal devices, we don't need to check if remote attestation is @@ -583,7 +584,7 @@ request.set_key_label(key_name_for_challenge); request.set_key_name_for_spkac(key_name_for_spkac); request.set_domain(GetEmail()); - request.set_device_id(chromeos::InstallAttributes::Get()->GetDeviceId()); + request.set_device_id(InstallAttributes::Get()->GetDeviceId()); request.set_include_signed_public_key(will_register_key_); request.set_challenge(challenge); request.set_va_type(AttestationClient::GetVerifiedAccessServerType());
diff --git a/chrome/browser/ash/attestation/tpm_challenge_key_subtle_unittest.cc b/chrome/browser/ash/attestation/tpm_challenge_key_subtle_unittest.cc index 96f55eb..b633b569 100644 --- a/chrome/browser/ash/attestation/tpm_challenge_key_subtle_unittest.cc +++ b/chrome/browser/ash/attestation/tpm_challenge_key_subtle_unittest.cc
@@ -174,7 +174,7 @@ TestingProfile* CreateUserProfile(bool is_affiliated); TestingProfile* GetProfile(); ScopedCrosSettingsTestHelper* GetCrosSettingsHelper(); - chromeos::StubInstallAttributes* GetInstallAttributes(); + StubInstallAttributes* GetInstallAttributes(); // Runs StartPrepareKeyStep and checks that the result is equal to // |public_key|. @@ -312,8 +312,7 @@ return signin_profile_->ScopedCrosSettingsTestHelper(); } -chromeos::StubInstallAttributes* -TpmChallengeKeySubtleTestBase::GetInstallAttributes() { +StubInstallAttributes* TpmChallengeKeySubtleTestBase::GetInstallAttributes() { return GetCrosSettingsHelper()->InstallAttributes(); }
diff --git a/chrome/browser/ash/authpolicy/authpolicy_helper.cc b/chrome/browser/ash/authpolicy/authpolicy_helper.cc index d507521..120bad96 100644 --- a/chrome/browser/ash/authpolicy/authpolicy_helper.cc +++ b/chrome/browser/ash/authpolicy/authpolicy_helper.cc
@@ -26,7 +26,6 @@ namespace { using ::chromeos::AuthPolicyClient; -using ::chromeos::InstallAttributes; constexpr char kDCPrefix[] = "DC="; constexpr char kOUPrefix[] = "OU=";
diff --git a/chrome/browser/ash/authpolicy/authpolicy_helper_unittest.cc b/chrome/browser/ash/authpolicy/authpolicy_helper_unittest.cc index c104a78..a017e0e8 100644 --- a/chrome/browser/ash/authpolicy/authpolicy_helper_unittest.cc +++ b/chrome/browser/ash/authpolicy/authpolicy_helper_unittest.cc
@@ -59,10 +59,10 @@ // Check that helper calls RefreshDevicePolicy after JoinAdDomain. TEST(AuthPolicyHelper, JoinFollowedByRefreshDevicePolicy) { - chromeos::ScopedStubInstallAttributes scoped_stub_install_attributes; + ScopedStubInstallAttributes scoped_stub_install_attributes; auto* mock_client = new MockAuthPolicyClient; - chromeos::InstallAttributesClient::InitializeFake(); + InstallAttributesClient::InitializeFake(); AuthPolicyHelper helper; helper.set_dm_token(kDMToken); @@ -76,7 +76,7 @@ })); mock_client->CheckExpectations(); - chromeos::InstallAttributesClient::Shutdown(); + InstallAttributesClient::Shutdown(); chromeos::AuthPolicyClient::Shutdown(); }
diff --git a/chrome/browser/ash/crosapi/crosapi_util.cc b/chrome/browser/ash/crosapi/crosapi_util.cc index ac5a389..9dab205 100644 --- a/chrome/browser/ash/crosapi/crosapi_util.cc +++ b/chrome/browser/ash/crosapi/crosapi_util.cc
@@ -422,7 +422,7 @@ params->ash_capabilities = {{kBrowserManagerReloadBrowserCapability}}; params->is_device_enterprised_managed = - chromeos::InstallAttributes::Get()->IsEnterpriseManaged(); + ash::InstallAttributes::Get()->IsEnterpriseManaged(); params->device_type = ConvertDeviceType(chromeos::GetDeviceType());
diff --git a/chrome/browser/ash/crosapi/environment_provider.cc b/chrome/browser/ash/crosapi/environment_provider.cc index fce0ba3..42b8855 100644 --- a/chrome/browser/ash/crosapi/environment_provider.cc +++ b/chrome/browser/ash/crosapi/environment_provider.cc
@@ -53,7 +53,7 @@ } mojom::DeviceMode EnvironmentProvider::GetDeviceMode() { - policy::DeviceMode mode = chromeos::InstallAttributes::Get()->GetMode(); + policy::DeviceMode mode = ash::InstallAttributes::Get()->GetMode(); switch (mode) { case policy::DEVICE_MODE_PENDING: // "Pending" is an internal detail of InstallAttributes and doesn't need
diff --git a/chrome/browser/ash/dbus/ash_dbus_helper.cc b/chrome/browser/ash/dbus/ash_dbus_helper.cc index 893902a..832ec31 100644 --- a/chrome/browser/ash/dbus/ash_dbus_helper.cc +++ b/chrome/browser/ash/dbus/ash_dbus_helper.cc
@@ -157,7 +157,7 @@ // signals sent from the session manager. This needs to happen before // g_browser_process initializes BrowserPolicyConnector. chromeos::DeviceSettingsService::Initialize(); - chromeos::InstallAttributes::Initialize(); + InstallAttributes::Initialize(); } void InitializeFeatureListDependentDBus() {
diff --git a/chrome/browser/ash/dbus/proxy_resolution_service_provider_unittest.cc b/chrome/browser/ash/dbus/proxy_resolution_service_provider_unittest.cc index 82c061f..de89cf6 100644 --- a/chrome/browser/ash/dbus/proxy_resolution_service_provider_unittest.cc +++ b/chrome/browser/ash/dbus/proxy_resolution_service_provider_unittest.cc
@@ -92,9 +92,8 @@ LookupProxyForURLMockResult lookup_proxy_result_; - chromeos::ScopedStubInstallAttributes test_install_attributes_{ - chromeos::StubInstallAttributes::CreateCloudManaged("fake-domain", - "fake-id")}; + ScopedStubInstallAttributes test_install_attributes_{ + StubInstallAttributes::CreateCloudManaged("fake-domain", "fake-id")}; }; } // namespace
diff --git a/chrome/browser/ash/drive/drive_integration_service.cc b/chrome/browser/ash/drive/drive_integration_service.cc index bfa30e1..992585c 100644 --- a/chrome/browser/ash/drive/drive_integration_service.cc +++ b/chrome/browser/ash/drive/drive_integration_service.cc
@@ -1325,11 +1325,35 @@ return; } + if (status == drivefs::mojom::MirrorPathStatus::kStart) { + blocking_task_runner_->PostTaskAndReplyWithResult( + FROM_HERE, base::BindOnce(&base::DirectoryExists, path), + base::BindOnce( + &DriveIntegrationService::ToggleSyncForPathIfDirectoryExists, + weak_ptr_factory_.GetWeakPtr(), path, std::move(callback))); + return; + } + if (GetDriveFsInterface()) { GetDriveFsInterface()->ToggleSyncForPath(path, status, std::move(callback)); } } +void DriveIntegrationService::ToggleSyncForPathIfDirectoryExists( + const base::FilePath& path, + drivefs::mojom::DriveFs::ToggleSyncForPathCallback callback, + bool exists) { + if (!exists) { + std::move(callback).Run(drive::FILE_ERROR_NOT_FOUND); + return; + } + + if (GetDriveFsInterface()) { + GetDriveFsInterface()->ToggleSyncForPath( + path, drivefs::mojom::MirrorPathStatus::kStart, std::move(callback)); + } +} + void DriveIntegrationService::GetSyncingPaths( drivefs::mojom::DriveFs::GetSyncingPathsCallback callback) { if (!chromeos::features::IsDriveFsMirroringEnabled() ||
diff --git a/chrome/browser/ash/drive/drive_integration_service.h b/chrome/browser/ash/drive/drive_integration_service.h index ffc83e6..aeb62c3 100644 --- a/chrome/browser/ash/drive/drive_integration_service.h +++ b/chrome/browser/ash/drive/drive_integration_service.h
@@ -344,6 +344,12 @@ void OnDisableMirroringStatusUpdate(drivefs::mojom::MirrorSyncStatus status); + // Toggle syncing for |path| if the the directory exists. + void ToggleSyncForPathIfDirectoryExists( + const base::FilePath& path, + drivefs::mojom::DriveFs::ToggleSyncForPathCallback callback, + bool exists); + friend class DriveIntegrationServiceFactory; Profile* profile_;
diff --git a/chrome/browser/ash/drive/drive_integration_service_browsertest.cc b/chrome/browser/ash/drive/drive_integration_service_browsertest.cc index 3f67e979..496e74a 100644 --- a/chrome/browser/ash/drive/drive_integration_service_browsertest.cc +++ b/chrome/browser/ash/drive/drive_integration_service_browsertest.cc
@@ -10,6 +10,7 @@ #include "base/bind.h" #include "base/command_line.h" #include "base/files/file_util.h" +#include "base/files/scoped_temp_dir.h" #include "base/test/bind.h" #include "base/threading/thread_restrictions.h" #include "chrome/browser/ash/drive/drivefs_test_support.h" @@ -466,7 +467,7 @@ } IN_PROC_BROWSER_TEST_F(DriveIntegrationBrowserTestWithMirrorSyncEnabled, - ToggleSyncForPath_MirroringEnabled) { + ToggleSyncForPath_MirroringEnabledFileNotFound) { auto* drive_service = DriveIntegrationServiceFactory::FindForProfile(browser()->profile()); @@ -479,11 +480,44 @@ drive_service->ToggleSyncForPath( base::FilePath("/fake/path"), drivefs::mojom::MirrorPathStatus::kStart, base::BindLambdaForTesting([quit_closure](FileError status) { + EXPECT_EQ(FILE_ERROR_NOT_FOUND, status); + quit_closure.Run(); + })); + run_loop.Run(); + } +} + +IN_PROC_BROWSER_TEST_F(DriveIntegrationBrowserTestWithMirrorSyncEnabled, + ToggleSyncForPath_MirroringEnabled) { + auto* drive_service = + DriveIntegrationServiceFactory::FindForProfile(browser()->profile()); + + // Enable mirror sync. + ToggleMirrorSync(true); + + base::ScopedTempDir temp_dir; + { + base::ScopedAllowBlockingForTesting allow_blocking; + EXPECT_TRUE(temp_dir.CreateUniqueTempDir()); + } + + { + base::FilePath sync_path = temp_dir.GetPath(); + base::RunLoop run_loop; + auto quit_closure = run_loop.QuitClosure(); + drive_service->ToggleSyncForPath( + sync_path, drivefs::mojom::MirrorPathStatus::kStart, + base::BindLambdaForTesting([quit_closure](FileError status) { EXPECT_EQ(FILE_ERROR_OK, status); quit_closure.Run(); })); run_loop.Run(); } + + { + base::ScopedAllowBlockingForTesting allow_blocking; + EXPECT_TRUE(temp_dir.Delete()); + } } IN_PROC_BROWSER_TEST_F(DriveIntegrationBrowserTestWithMirrorSyncEnabled, @@ -510,14 +544,20 @@ auto* drive_service = DriveIntegrationServiceFactory::FindForProfile(browser()->profile()); - const base::FilePath sync_path("/fake/path"); - // Enable mirror sync and add |sync_path| that we expect to return from // |GetSyncingPaths|. ToggleMirrorSync(true); - AddSyncingPath(sync_path); + + base::ScopedTempDir temp_dir; + { + base::ScopedAllowBlockingForTesting allow_blocking; + EXPECT_TRUE(temp_dir.CreateUniqueTempDir()); + } { + base::FilePath sync_path = temp_dir.GetPath(); + AddSyncingPath(sync_path); + base::RunLoop run_loop; auto quit_closure = run_loop.QuitClosure(); drive_service->GetSyncingPaths(base::BindLambdaForTesting( @@ -530,6 +570,11 @@ })); run_loop.Run(); } + + { + base::ScopedAllowBlockingForTesting allow_blocking; + EXPECT_TRUE(temp_dir.Delete()); + } } } // namespace drive
diff --git a/chrome/browser/ash/file_manager/file_manager_browsertest.cc b/chrome/browser/ash/file_manager/file_manager_browsertest.cc index 29aa6c96..239c0a0 100644 --- a/chrome/browser/ash/file_manager/file_manager_browsertest.cc +++ b/chrome/browser/ash/file_manager/file_manager_browsertest.cc
@@ -1545,6 +1545,8 @@ Recents, /* recents.js */ FilesAppBrowserTest, ::testing::Values( + TestCase("recentsA11yMessages").EnableFiltersInRecents(), + TestCase("recentsA11yMessages").EnableFiltersInRecents().FilesSwa(), TestCase("recentsDownloads"), TestCase("recentsDownloads").FilesSwa(), TestCase("recentsDownloads").EnableFiltersInRecents(),
diff --git a/chrome/browser/ash/file_manager/file_manager_string_util.cc b/chrome/browser/ash/file_manager/file_manager_string_util.cc index 33f096d..e437938 100644 --- a/chrome/browser/ash/file_manager/file_manager_string_util.cc +++ b/chrome/browser/ash/file_manager/file_manager_string_util.cc
@@ -194,6 +194,10 @@ IDS_FILE_BROWSER_MEDIA_VIEW_IMAGES_ROOT_LABEL); SET_STRING("MEDIA_VIEW_VIDEOS_ROOT_LABEL", IDS_FILE_BROWSER_MEDIA_VIEW_VIDEOS_ROOT_LABEL); + SET_STRING("RECENT_VIEW_FILTER_ON", IDS_FILE_BROWSER_RECENT_VIEW_FILTER_ON); + SET_STRING("RECENT_VIEW_FILTER_OFF", IDS_FILE_BROWSER_RECENT_VIEW_FILTER_OFF); + SET_STRING("RECENT_VIEW_FILTER_RESET", + IDS_FILE_BROWSER_RECENT_VIEW_FILTER_RESET); } void AddStringsForMediaPlayer(base::Value* dict) {
diff --git a/chrome/browser/ash/file_manager/path_util.cc b/chrome/browser/ash/file_manager/path_util.cc index 5823746..7ceb59a 100644 --- a/chrome/browser/ash/file_manager/path_util.cc +++ b/chrome/browser/ash/file_manager/path_util.cc
@@ -205,6 +205,9 @@ } // namespace +const base::FilePath::CharType kFuseBoxMediaPath[] = + FILE_PATH_LITERAL("/media/fuse/fusebox"); + const base::FilePath::CharType kRemovableMediaPath[] = FILE_PATH_LITERAL("/media/removable");
diff --git a/chrome/browser/ash/file_manager/path_util.h b/chrome/browser/ash/file_manager/path_util.h index 91e8e77..a0ea660 100644 --- a/chrome/browser/ash/file_manager/path_util.h +++ b/chrome/browser/ash/file_manager/path_util.h
@@ -19,6 +19,9 @@ namespace file_manager { namespace util { +// Absolute path for FuseBox media mount point. +extern const base::FilePath::CharType kFuseBoxMediaPath[]; + // Absolute base path for removable media on Chrome OS. Exposed here so it can // be used by tests. extern const base::FilePath::CharType kRemovableMediaPath[];
diff --git a/chrome/browser/ash/file_manager/volume_manager.cc b/chrome/browser/ash/file_manager/volume_manager.cc index 4adfb567..fb721730 100644 --- a/chrome/browser/ash/file_manager/volume_manager.cc +++ b/chrome/browser/ash/file_manager/volume_manager.cc
@@ -354,6 +354,31 @@ return volume; } +// static: |mount_path| is the fusebox daemon AttachStorage API 'subdir'. +std::unique_ptr<Volume> Volume::CreateForFuseBoxMTP( + const base::FilePath& mount_path, + const std::string& label, + bool read_only) { + const base::FilePath mount_point(util::kFuseBoxMediaPath); + + std::unique_ptr<Volume> volume(new Volume()); + volume->type_ = VOLUME_TYPE_MTP; + volume->file_system_type_ = "fusebox"; + volume->device_type_ = chromeos::DEVICE_TYPE_MOBILE; + volume->source_path_ = mount_point.Append(mount_path); + volume->source_ = SOURCE_DEVICE; + volume->mount_path_ = mount_point.Append(mount_path); + volume->mount_condition_ = ash::disks::MOUNT_CONDITION_NONE; + volume->is_parent_ = true; + volume->is_read_only_ = read_only; + // "fusebox" prefix the original MTP volume id. + volume->volume_id_ = "fusebox"; + volume->volume_id_.append(kMtpVolumeIdPrefix + label); + volume->volume_label_ = label; + volume->volume_label_.insert(0, "fusebox "); + return volume; +} + // static std::unique_ptr<Volume> Volume::CreateForMediaView( const std::string& root_document_id) { @@ -1331,21 +1356,63 @@ for (int i = 2; mounted_volumes_.count(kMtpVolumeIdPrefix + label); ++i) label = base_name + base::StringPrintf(" (%d)", i); - bool result = - storage::ExternalMountPoints::GetSystemInstance()->RegisterFileSystem( - fsid, storage::kFileSystemTypeDeviceMediaAsFileStorage, - storage::FileSystemMountOption(), path); + // Register the MTP storage device with chrome::storage. + auto* mount_points = storage::ExternalMountPoints::GetSystemInstance(); + bool result = mount_points->RegisterFileSystem( + fsid, storage::kFileSystemTypeDeviceMediaAsFileStorage, + storage::FileSystemMountOption(), path); DCHECK(result); + // Register the MTP storage device with the MTPDeviceMapService. content::GetIOThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce(&MTPDeviceMapService::RegisterMTPFileSystem, base::Unretained(MTPDeviceMapService::GetInstance()), info.location(), fsid, read_only)); - // TODO(1289493): mount a fusebox here instead. + // Mount the MTP storage device in files app. std::unique_ptr<Volume> volume = Volume::CreateForMTP(path, label, read_only); DoMountEvent(chromeos::MOUNT_ERROR_NONE, std::move(volume)); + + // The fusebox_mounter_ is enabled by a chrome flag. + if (!fusebox_mounter_.get()) + return; + + // Get the FileSystemURL of the MTP storage device. + auto mtp_file_system_url = mount_points->CreateExternalFileSystemURL( + blink::StorageKey(util::GetFilesAppOrigin()), fsid, {}); + const std::string url = mtp_file_system_url.ToGURL().spec(); + DCHECK(mtp_file_system_url.is_valid()); + + // Attach the MTP storage device to the fusebox daemon. + fusebox_mounter_->AttachStorage( + "mtp", url, read_only, + base::BindOnce(&VolumeManager::OnFuseboxAttachStorageMTP, + weak_ptr_factory_.GetWeakPtr(), fsid, label, read_only)); +} + +void VolumeManager::OnFuseboxAttachStorageMTP(const std::string& fsid, + const std::string& label, + bool read_only, + int error) { + LOG_IF(ERROR, error) << "failed attaching mtp " << fsid; + if (error) + return; + + // Create a Volume for the fusebox MTP storage device. + const base::FilePath mount_path = base::FilePath::FromUTF8Unsafe("mtp"); + std::unique_ptr<Volume> volume = + Volume::CreateForFuseBoxMTP(mount_path, label, read_only); + + // Register the fusebox MTP storage device with chrome::storage. + auto* mount_points = storage::ExternalMountPoints::GetSystemInstance(); + bool result = mount_points->RegisterFileSystem( + /*prefixed*/ "fusebox" + fsid, storage::kFileSystemTypeFuseBox, + storage::FileSystemMountOption(), volume->mount_path()); + DCHECK(result); + + // Mount the fusebox MTP storage device in files app. + DoMountEvent(chromeos::MOUNT_ERROR_NONE, std::move(volume)); } void VolumeManager::OnRemovableStorageDetached(
diff --git a/chrome/browser/ash/file_manager/volume_manager.h b/chrome/browser/ash/file_manager/volume_manager.h index df6e99c..42a34fad 100644 --- a/chrome/browser/ash/file_manager/volume_manager.h +++ b/chrome/browser/ash/file_manager/volume_manager.h
@@ -111,6 +111,10 @@ static std::unique_ptr<Volume> CreateForMTP(const base::FilePath& mount_path, const std::string& label, bool read_only); + static std::unique_ptr<Volume> CreateForFuseBoxMTP( + const base::FilePath& mount_path, + const std::string& label, + bool read_only); static std::unique_ptr<Volume> CreateForMediaView( const std::string& root_document_id); static std::unique_ptr<Volume> CreateMediaViewForTesting( @@ -490,6 +494,11 @@ const std::string& display_name); void RemoveSmbFsVolume(const base::FilePath& mount_point); + void OnFuseboxAttachStorageMTP(const std::string& fsid, + const std::string& label, + bool read_only, + int error); + SnapshotManager* snapshot_manager() { return snapshot_manager_.get(); } io_task::IOTaskController* io_task_controller() {
diff --git a/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover_unittest.cc b/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover_unittest.cc index fa990df0..863885c 100644 --- a/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover_unittest.cc +++ b/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover_unittest.cc
@@ -28,10 +28,6 @@ namespace ash { namespace { -// TODO(https://crbug.com/1164001): remove after moving to ash:: -using ::chromeos::ScopedStubInstallAttributes; -using ::chromeos::StubInstallAttributes; - // Key for the pref in local state that tracks accumulated device usage time in // seconds. constexpr char kAccumulatedUsagePref[] =
diff --git a/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc b/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc index 8c5473c..a4ae45b 100644 --- a/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc +++ b/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
@@ -592,7 +592,7 @@ policy::EnrollmentConfig::MODE_ATTESTATION); enrollment_helper_.ExpectAttestationEnrollmentError( policy::EnrollmentStatus::ForLockError( - chromeos::InstallAttributes::LOCK_ALREADY_LOCKED)); + InstallAttributes::LOCK_ALREADY_LOCKED)); SimulateNetworkConnected(); TriggerDemoModeOnWelcomeScreen();
diff --git a/chrome/browser/ash/login/demo_mode/demo_setup_controller.cc b/chrome/browser/ash/login/demo_mode/demo_setup_controller.cc index 18f307f..abb5d1c7 100644 --- a/chrome/browser/ash/login/demo_mode/demo_setup_controller.cc +++ b/chrome/browser/ash/login/demo_mode/demo_setup_controller.cc
@@ -45,10 +45,9 @@ #include "ui/base/l10n/l10n_util.h" namespace ash { + namespace { -// TODO(https://crbug.com/1164001): remove after moving to ash:: -using ::chromeos::InstallAttributes; using ErrorCode = DemoSetupController::DemoSetupError::ErrorCode; using RecoveryMethod = DemoSetupController::DemoSetupError::RecoveryMethod;
diff --git a/chrome/browser/ash/login/demo_mode/demo_setup_controller_unittest.cc b/chrome/browser/ash/login/demo_mode/demo_setup_controller_unittest.cc index 7d5786d..0728dbb 100644 --- a/chrome/browser/ash/login/demo_mode/demo_setup_controller_unittest.cc +++ b/chrome/browser/ash/login/demo_mode/demo_setup_controller_unittest.cc
@@ -39,8 +39,6 @@ using test::SetupMockDemoModeNoEnrollmentHelper; using test::SetupMockDemoModeOfflineEnrollmentHelper; using test::SetupMockDemoModeOnlineEnrollmentHelper; -// TODO(https://crbug.com/1164001): remove after moving to ash:: -using ::chromeos::ScopedStubInstallAttributes; using ::testing::_; class DemoSetupControllerTestHelper {
diff --git a/chrome/browser/ash/login/demo_mode/demo_setup_test_utils.cc b/chrome/browser/ash/login/demo_mode/demo_setup_test_utils.cc index fa50e544..6753322a 100644 --- a/chrome/browser/ash/login/demo_mode/demo_setup_test_utils.cc +++ b/chrome/browser/ash/login/demo_mode/demo_setup_test_utils.cc
@@ -49,7 +49,7 @@ case DemoModeSetupResult::ERROR_POWERWASH_REQUIRED: mock_ptr->status_consumer()->OnEnrollmentError( policy::EnrollmentStatus::ForLockError( - chromeos::InstallAttributes::LOCK_ALREADY_LOCKED)); + InstallAttributes::LOCK_ALREADY_LOCKED)); break; case DemoModeSetupResult::ERROR_DEFAULT: mock_ptr->status_consumer()->OnEnrollmentError( @@ -79,7 +79,7 @@ case DemoModeSetupResult::ERROR_POWERWASH_REQUIRED: mock_ptr->status_consumer()->OnEnrollmentError( policy::EnrollmentStatus::ForLockError( - chromeos::InstallAttributes::LOCK_READBACK_ERROR)); + InstallAttributes::LOCK_READBACK_ERROR)); break; case DemoModeSetupResult::ERROR_DEFAULT: mock_ptr->status_consumer()->OnEnrollmentError(
diff --git a/chrome/browser/ash/login/easy_unlock/easy_unlock_service_signin.cc b/chrome/browser/ash/login/easy_unlock/easy_unlock_service_signin.cc index 6be0aab2..ee2dfdf0 100644 --- a/chrome/browser/ash/login/easy_unlock/easy_unlock_service_signin.cc +++ b/chrome/browser/ash/login/easy_unlock/easy_unlock_service_signin.cc
@@ -40,10 +40,8 @@ #include "chromeos/login/login_state/login_state.h" namespace ash { -namespace { -// TODO(https://crbug.com/1164001): remove after moving to ash:: -using ::chromeos::TPMTokenLoader; +namespace { // The maximum allowed backoff interval when waiting for cryptohome to start. uint32_t kMaxCryptohomeBackoffIntervalMs = 10000u;
diff --git a/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc b/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc index 515fa42..be68d0ba 100644 --- a/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc +++ b/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc
@@ -455,8 +455,7 @@ // attributes. In case that file is corrupted, this should prevent device // re-enabling. if (state_ == policy::AUTO_ENROLLMENT_STATE_DISABLED) { - policy::DeviceMode device_mode = - chromeos::InstallAttributes::Get()->GetMode(); + policy::DeviceMode device_mode = InstallAttributes::Get()->GetMode(); if (device_mode == policy::DeviceMode::DEVICE_MODE_PENDING || device_mode == policy::DeviceMode::DEVICE_MODE_NOT_SET) { DeviceSettingsService::Get()->SetDeviceMode(
diff --git a/chrome/browser/ash/login/enrollment/enrollment_embedded_policy_server_browsertest.cc b/chrome/browser/ash/login/enrollment/enrollment_embedded_policy_server_browsertest.cc index df0eccb6..1d8619ef 100644 --- a/chrome/browser/ash/login/enrollment/enrollment_embedded_policy_server_browsertest.cc +++ b/chrome/browser/ash/login/enrollment/enrollment_embedded_policy_server_browsertest.cc
@@ -67,9 +67,6 @@ namespace em = enterprise_management; -// TODO(https://crbug.com/1164001): remove when migrated to ash:: -using ::chromeos::InstallAttributes; - constexpr test::UIPath kEnterprisePrimaryButton = { "enterprise-enrollment", "step-signin", "primary-action-button"};
diff --git a/chrome/browser/ash/login/enrollment/enterprise_enrollment_helper_impl.cc b/chrome/browser/ash/login/enrollment/enterprise_enrollment_helper_impl.cc index 54159f4..d977c1a 100644 --- a/chrome/browser/ash/login/enrollment/enterprise_enrollment_helper_impl.cc +++ b/chrome/browser/ash/login/enrollment/enterprise_enrollment_helper_impl.cc
@@ -39,10 +39,8 @@ #include "services/network/public/cpp/shared_url_loader_factory.h" namespace ash { -namespace { -// TODO(https://crbug.com/1164001): remove when migrated to ash:: -using ::chromeos::InstallAttributes; +namespace { // The OAuth token consumer name. const char kOAuthConsumerName[] = "enterprise_enrollment";
diff --git a/chrome/browser/ash/login/lock/screen_locker_unittest.cc b/chrome/browser/ash/login/lock/screen_locker_unittest.cc index 41e1eaf..781d4f0c 100644 --- a/chrome/browser/ash/login/lock/screen_locker_unittest.cc +++ b/chrome/browser/ash/login/lock/screen_locker_unittest.cc
@@ -182,7 +182,7 @@ ScopedTestingCrosSettings scoped_testing_cros_settings_; system::ScopedFakeStatisticsProvider fake_statictics_provider_; // * ChromeUserSelectionScreen dependencies: - chromeos::ScopedStubInstallAttributes test_install_attributes_; + ScopedStubInstallAttributes test_install_attributes_; // ScreenLocker dependencies: // * AccessibilityManager dependencies:
diff --git a/chrome/browser/ash/login/saml/saml_browsertest.cc b/chrome/browser/ash/login/saml/saml_browsertest.cc index 994b786..d1af97b 100644 --- a/chrome/browser/ash/login/saml/saml_browsertest.cc +++ b/chrome/browser/ash/login/saml/saml_browsertest.cc
@@ -1713,7 +1713,7 @@ attestation::MockMachineCertificateUploader mock_cert_uploader_; NiceMock<attestation::MockAttestationFlow> mock_attestation_flow_; - chromeos::ScopedStubInstallAttributes stub_install_attributes_; + ScopedStubInstallAttributes stub_install_attributes_; }; void SAMLDeviceAttestationTest::SetUpInProcessBrowserTestFixture() {
diff --git a/chrome/browser/ash/login/session/chrome_session_manager_browsertest.cc b/chrome/browser/ash/login/session/chrome_session_manager_browsertest.cc index 97c7fb4..b5250e1 100644 --- a/chrome/browser/ash/login/session/chrome_session_manager_browsertest.cc +++ b/chrome/browser/ash/login/session/chrome_session_manager_browsertest.cc
@@ -50,11 +50,8 @@ using ::chromeos::system::ScopedFakeStatisticsProvider; } // namespace } // namespace system -namespace { -// TODO(https://crbug.com/1164001): remove when moved to ash:: -using ::chromeos::ScopedStubInstallAttributes; -using ::chromeos::StubInstallAttributes; +namespace { // Helper class to wait for user adding screen to finish. class UserAddingScreenWaiter : public UserAddingScreen::Observer {
diff --git a/chrome/browser/ash/login/session/user_session_initializer.cc b/chrome/browser/ash/login/session/user_session_initializer.cc index 0101628..459619a5 100644 --- a/chrome/browser/ash/login/session/user_session_initializer.cc +++ b/chrome/browser/ash/login/session/user_session_initializer.cc
@@ -59,10 +59,8 @@ #endif namespace ash { -namespace { -// TODO(https://crbug.com/1164001): remove when moved to ash:: -using ::chromeos::InstallAttributes; +namespace { UserSessionInitializer* g_instance = nullptr;
diff --git a/chrome/browser/ash/login/session/user_session_manager.cc b/chrome/browser/ash/login/session/user_session_manager.cc index 91e9ee6..631945eb 100644 --- a/chrome/browser/ash/login/session/user_session_manager.cc +++ b/chrome/browser/ash/login/session/user_session_manager.cc
@@ -1564,7 +1564,7 @@ } BootTimesRecorder::Get()->AddLoginTimeMarker("TPMOwn-Start", false); - chromeos::PrepareTpm(base::BindOnce(OnPrepareTpmDeviceFinished)); + PrepareTpm(base::BindOnce(OnPrepareTpmDeviceFinished)); FinalizePrepareProfile(profile); } @@ -1572,7 +1572,7 @@ Profile* profile) { RestoreAuthSessionImpl(profile, has_auth_cookies_); BootTimesRecorder::Get()->AddLoginTimeMarker("TPMOwn-Start", false); - chromeos::PrepareTpm(base::BindOnce(OnPrepareTpmDeviceFinished)); + PrepareTpm(base::BindOnce(OnPrepareTpmDeviceFinished)); FinalizePrepareProfile(profile); }
diff --git a/chrome/browser/ash/notifications/update_required_notification_unittest.cc b/chrome/browser/ash/notifications/update_required_notification_unittest.cc index 17a4f2c..aa88827 100644 --- a/chrome/browser/ash/notifications/update_required_notification_unittest.cc +++ b/chrome/browser/ash/notifications/update_required_notification_unittest.cc
@@ -109,7 +109,7 @@ ScopedTestingLocalState local_state_; ScopedTestingCrosSettings scoped_testing_cros_settings_; std::unique_ptr<NotificationDisplayServiceTester> notification_service_; - chromeos::ScopedStubInstallAttributes scoped_stub_install_attributes_; + ScopedStubInstallAttributes scoped_stub_install_attributes_; chromeos::FakeUpdateEngineClient* fake_update_engine_client_; std::unique_ptr<base::Version> current_version_; std::unique_ptr<policy::MinimumVersionPolicyHandler>
diff --git a/chrome/browser/ash/ownership/fake_owner_settings_service.cc b/chrome/browser/ash/ownership/fake_owner_settings_service.cc index 8c5fabd..d32a96d 100644 --- a/chrome/browser/ash/ownership/fake_owner_settings_service.cc +++ b/chrome/browser/ash/ownership/fake_owner_settings_service.cc
@@ -33,7 +33,7 @@ FakeOwnerSettingsService::~FakeOwnerSettingsService() = default; bool FakeOwnerSettingsService::IsOwner() { - return !chromeos::InstallAttributes::Get()->IsEnterpriseManaged() && + return !InstallAttributes::Get()->IsEnterpriseManaged() && settings_provider_->current_user_is_owner(); }
diff --git a/chrome/browser/ash/ownership/owner_settings_service_ash.cc b/chrome/browser/ash/ownership/owner_settings_service_ash.cc index 0234580..11765cf 100644 --- a/chrome/browser/ash/ownership/owner_settings_service_ash.cc +++ b/chrome/browser/ash/ownership/owner_settings_service_ash.cc
@@ -279,14 +279,14 @@ } bool OwnerSettingsServiceAsh::IsOwner() { - if (chromeos::InstallAttributes::Get()->IsEnterpriseManaged()) { + if (InstallAttributes::Get()->IsEnterpriseManaged()) { return false; } return OwnerSettingsService::IsOwner(); } void OwnerSettingsServiceAsh::IsOwnerAsync(IsOwnerCallback callback) { - if (chromeos::InstallAttributes::Get()->IsEnterpriseManaged()) { + if (InstallAttributes::Get()->IsEnterpriseManaged()) { base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(std::move(callback), false)); return;
diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_features.cc b/chrome/browser/ash/plugin_vm/plugin_vm_features.cc index 05b122a..3e36267 100644 --- a/chrome/browser/ash/plugin_vm/plugin_vm_features.cc +++ b/chrome/browser/ash/plugin_vm/plugin_vm_features.cc
@@ -69,7 +69,7 @@ } // Check that the device is enterprise enrolled. - if (!chromeos::InstallAttributes::Get()->IsEnterpriseManaged()) { + if (!ash::InstallAttributes::Get()->IsEnterpriseManaged()) { return PolicyConfigured::kErrorNotEnterpriseEnrolled; }
diff --git a/chrome/browser/ash/policy/active_directory/active_directory_policy_manager_unittest.cc b/chrome/browser/ash/policy/active_directory/active_directory_policy_manager_unittest.cc index 43ab2023..d4c68102 100644 --- a/chrome/browser/ash/policy/active_directory/active_directory_policy_manager_unittest.cc +++ b/chrome/browser/ash/policy/active_directory/active_directory_policy_manager_unittest.cc
@@ -36,7 +36,7 @@ ActiveDirectoryPolicyManagerTest() : user_manager_enabler_(std::make_unique<ash::FakeChromeUserManager>()), install_attributes_( - chromeos::StubInstallAttributes::CreateActiveDirectoryManaged( + ash::StubInstallAttributes::CreateActiveDirectoryManaged( "realm.com", "device_id")) {} @@ -103,7 +103,7 @@ private: base::test::TaskEnvironment task_environment_; - chromeos::ScopedStubInstallAttributes install_attributes_; + ash::ScopedStubInstallAttributes install_attributes_; }; class UserActiveDirectoryPolicyManagerTest
diff --git a/chrome/browser/ash/policy/active_directory/component_active_directory_policy_browsertest.cc b/chrome/browser/ash/policy/active_directory/component_active_directory_policy_browsertest.cc index 94c6bbbd..852cba22 100644 --- a/chrome/browser/ash/policy/active_directory/component_active_directory_policy_browsertest.cc +++ b/chrome/browser/ash/policy/active_directory/component_active_directory_policy_browsertest.cc
@@ -70,7 +70,7 @@ protected: ComponentActiveDirectoryPolicyTest() : install_attributes_( - chromeos::StubInstallAttributes::CreateActiveDirectoryManaged( + ash::StubInstallAttributes::CreateActiveDirectoryManaged( kTestDomain, kTestDeviceId)) { builder_.policy_data().set_policy_type( @@ -160,7 +160,7 @@ scoped_refptr<const extensions::Extension> extension_; std::unique_ptr<ExtensionTestMessageListener> event_listener_; - chromeos::ScopedStubInstallAttributes install_attributes_; + ash::ScopedStubInstallAttributes install_attributes_; ComponentActiveDirectoryPolicyBuilder builder_; };
diff --git a/chrome/browser/ash/policy/core/browser_policy_connector_ash.cc b/chrome/browser/ash/policy/core/browser_policy_connector_ash.cc index c71c58b..276dcbe 100644 --- a/chrome/browser/ash/policy/core/browser_policy_connector_ash.cc +++ b/chrome/browser/ash/policy/core/browser_policy_connector_ash.cc
@@ -135,7 +135,7 @@ BrowserPolicyConnectorAsh::BrowserPolicyConnectorAsh() : attestation_flow_(CreateAttestationFlow()) { - DCHECK(chromeos::InstallAttributes::IsInitialized()); + DCHECK(ash::InstallAttributes::IsInitialized()); // DBusThreadManager or DeviceSettingsService may be // uninitialized on unit tests. @@ -143,10 +143,10 @@ ash::DeviceSettingsService::IsInitialized()) { std::unique_ptr<DeviceCloudPolicyStoreAsh> device_cloud_policy_store = std::make_unique<DeviceCloudPolicyStoreAsh>( - ash::DeviceSettingsService::Get(), - chromeos::InstallAttributes::Get(), CreateBackgroundTaskRunner()); + ash::DeviceSettingsService::Get(), ash::InstallAttributes::Get(), + CreateBackgroundTaskRunner()); - if (chromeos::InstallAttributes::Get()->IsActiveDirectoryManaged()) { + if (ash::InstallAttributes::Get()->IsActiveDirectoryManaged()) { chromeos::UpstartClient::Get()->StartAuthPolicyService(); device_active_directory_policy_manager_ = @@ -206,7 +206,7 @@ RestartDeviceCloudPolicyInitializer(); } - if (!chromeos::InstallAttributes::Get()->IsActiveDirectoryManaged()) { + if (!ash::InstallAttributes::Get()->IsActiveDirectoryManaged()) { device_local_account_policy_service_ = std::make_unique<DeviceLocalAccountPolicyService>( chromeos::SessionManagerClient::Get(), @@ -390,7 +390,7 @@ } bool BrowserPolicyConnectorAsh::IsDeviceEnterpriseManaged() const { - return chromeos::InstallAttributes::Get()->IsEnterpriseManaged(); + return ash::InstallAttributes::Get()->IsEnterpriseManaged(); } bool BrowserPolicyConnectorAsh::HasMachineLevelPolicies() { @@ -399,15 +399,15 @@ } bool BrowserPolicyConnectorAsh::IsCloudManaged() const { - return chromeos::InstallAttributes::Get()->IsCloudManaged(); + return ash::InstallAttributes::Get()->IsCloudManaged(); } bool BrowserPolicyConnectorAsh::IsActiveDirectoryManaged() const { - return chromeos::InstallAttributes::Get()->IsActiveDirectoryManaged(); + return ash::InstallAttributes::Get()->IsActiveDirectoryManaged(); } std::string BrowserPolicyConnectorAsh::GetEnterpriseEnrollmentDomain() const { - return chromeos::InstallAttributes::Get()->GetDomain(); + return ash::InstallAttributes::Get()->GetDomain(); } std::string BrowserPolicyConnectorAsh::GetEnterpriseDomainManager() const { @@ -427,7 +427,7 @@ } std::string BrowserPolicyConnectorAsh::GetRealm() const { - return chromeos::InstallAttributes::Get()->GetRealm(); + return ash::InstallAttributes::Get()->GetRealm(); } std::string BrowserPolicyConnectorAsh::GetDeviceAssetID() const { @@ -473,12 +473,12 @@ } DeviceMode BrowserPolicyConnectorAsh::GetDeviceMode() const { - return chromeos::InstallAttributes::Get()->GetMode(); + return ash::InstallAttributes::Get()->GetMode(); } -chromeos::InstallAttributes* BrowserPolicyConnectorAsh::GetInstallAttributes() +ash::InstallAttributes* BrowserPolicyConnectorAsh::GetInstallAttributes() const { - return chromeos::InstallAttributes::Get(); + return ash::InstallAttributes::Get(); } EnrollmentConfig BrowserPolicyConnectorAsh::GetPrescribedEnrollmentConfig() @@ -582,7 +582,7 @@ device_cloud_policy_initializer_ = std::make_unique<DeviceCloudPolicyInitializer>( local_state_, device_management_service(), - chromeos::InstallAttributes::Get(), state_keys_broker_.get(), + ash::InstallAttributes::Get(), state_keys_broker_.get(), device_cloud_policy_manager_->device_store(), device_cloud_policy_manager_, chromeos::system::StatisticsProvider::GetInstance());
diff --git a/chrome/browser/ash/policy/core/browser_policy_connector_ash.h b/chrome/browser/ash/policy/core/browser_policy_connector_ash.h index 7167130..c28d7d69 100644 --- a/chrome/browser/ash/policy/core/browser_policy_connector_ash.h +++ b/chrome/browser/ash/policy/core/browser_policy_connector_ash.h
@@ -24,17 +24,14 @@ namespace ash { namespace attestation { class AttestationFlow; -} // namespace attestation +} +class InstallAttributes; } // namespace ash namespace enterprise_management { class PolicyData; } // namespace enterprise_management -namespace chromeos { -class InstallAttributes; -} // namespace chromeos - namespace policy { class AdbSideloadingAllowanceModePolicyHandler; @@ -142,8 +139,8 @@ // For other OSes the function will always return DEVICE_MODE_CONSUMER. DeviceMode GetDeviceMode() const; - // Delegates to chromeos::InstallAttributes::Get() - chromeos::InstallAttributes* GetInstallAttributes() const; + // Delegates to `ash::InstallAttributes::Get()`. + ash::InstallAttributes* GetInstallAttributes() const; // Get the enrollment configuration for the device as decided by various // factors. See DeviceCloudPolicyInitializer::GetPrescribedEnrollmentConfig()
diff --git a/chrome/browser/ash/policy/core/device_attributes_browsertest.cc b/chrome/browser/ash/policy/core/device_attributes_browsertest.cc index 4693b726..e020ab3e 100644 --- a/chrome/browser/ash/policy/core/device_attributes_browsertest.cc +++ b/chrome/browser/ash/policy/core/device_attributes_browsertest.cc
@@ -64,12 +64,12 @@ ~DeviceAttributesTest() override = default; protected: - chromeos::StubInstallAttributes* stub_install_attributes() { + ash::StubInstallAttributes* stub_install_attributes() { return install_attributes_.Get(); } DeviceAttributesImpl attributes_; - chromeos::ScopedStubInstallAttributes install_attributes_; + ash::ScopedStubInstallAttributes install_attributes_; }; IN_PROC_BROWSER_TEST_F(DeviceAttributesTest, ReturnsAttributes) {
diff --git a/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.cc b/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.cc index 61f896e..02d47ac32 100644 --- a/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.cc +++ b/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.cc
@@ -179,7 +179,7 @@ void DeviceCloudPolicyManagerAsh::StartConnection( std::unique_ptr<CloudPolicyClient> client_to_connect, - chromeos::InstallAttributes* install_attributes) { + ash::InstallAttributes* install_attributes) { CHECK(!service()); // Set state keys here so the first policy fetch submits them to the server. @@ -259,7 +259,7 @@ } void DeviceCloudPolicyManagerAsh::OnPolicyStoreReady( - chromeos::InstallAttributes* install_attributes) { + ash::InstallAttributes* install_attributes) { if (!install_attributes->IsCloudManaged()) { return; }
diff --git a/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.h b/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.h index 7182ada1..d3a57f7 100644 --- a/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.h +++ b/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.h
@@ -32,16 +32,13 @@ namespace reporting { class LoginLogoutReporter; } +class InstallAttributes; } // namespace ash namespace base { class SequencedTaskRunner; } // namespace base -namespace chromeos { -class InstallAttributes; -} - class PrefRegistrySimple; class PrefService; @@ -110,10 +107,10 @@ // Starts the connection via |client_to_connect|. void StartConnection(std::unique_ptr<CloudPolicyClient> client_to_connect, - chromeos::InstallAttributes* install_attributes); + ash::InstallAttributes* install_attributes); // Called when policy store is ready. - void OnPolicyStoreReady(chromeos::InstallAttributes* install_attributes); + void OnPolicyStoreReady(ash::InstallAttributes* install_attributes); // Sends the unregister request. |callback| is invoked with a boolean // parameter indicating the result when done.
diff --git a/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash_unittest.cc b/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash_unittest.cc index 476fc64..33edc75e 100644 --- a/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash_unittest.cc +++ b/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash_unittest.cc
@@ -95,8 +95,8 @@ } void CopyLockResult(base::RunLoop* loop, - chromeos::InstallAttributes::LockResult* out, - chromeos::InstallAttributes::LockResult result) { + ash::InstallAttributes::LockResult* out, + ash::InstallAttributes::LockResult result) { *out = result; loop->Quit(); } @@ -190,8 +190,8 @@ std::vector<uint8_t>()); } - chromeos::InstallAttributesClient::InitializeFake(); - install_attributes_ = std::make_unique<chromeos::InstallAttributes>( + ash::InstallAttributesClient::InitializeFake(); + install_attributes_ = std::make_unique<ash::InstallAttributes>( chromeos::FakeInstallAttributesClient::Get()); store_ = new DeviceCloudPolicyStoreAsh(device_settings_service_.get(), install_attributes_.get(), @@ -236,7 +236,7 @@ DeviceOAuth2TokenServiceFactory::Shutdown(); chromeos::SystemSaltGetter::Shutdown(); - chromeos::InstallAttributesClient::Shutdown(); + ash::InstallAttributesClient::Shutdown(); TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); DeviceSettingsTestBase::TearDown(); @@ -244,14 +244,14 @@ void LockDevice() { base::RunLoop loop; - chromeos::InstallAttributes::LockResult result; + ash::InstallAttributes::LockResult result; install_attributes_->LockDevice( DEVICE_MODE_ENTERPRISE, PolicyBuilder::kFakeDomain, std::string(), // realm PolicyBuilder::kFakeDeviceId, base::BindOnce(&CopyLockResult, &loop, &result)); loop.Run(); - ASSERT_EQ(chromeos::InstallAttributes::LOCK_SUCCESS, result); + ASSERT_EQ(ash::InstallAttributes::LOCK_SUCCESS, result); } void AddStateKeys() { @@ -327,7 +327,7 @@ *device_policy_->GetNewSigningKey()); } - std::unique_ptr<chromeos::InstallAttributes> install_attributes_; + std::unique_ptr<ash::InstallAttributes> install_attributes_; net::HttpStatusCode url_fetcher_response_code_; std::string url_fetcher_response_string_;
diff --git a/chrome/browser/ash/policy/core/device_cloud_policy_store_ash.cc b/chrome/browser/ash/policy/core/device_cloud_policy_store_ash.cc index f7abb6c..cb74b83 100644 --- a/chrome/browser/ash/policy/core/device_cloud_policy_store_ash.cc +++ b/chrome/browser/ash/policy/core/device_cloud_policy_store_ash.cc
@@ -35,7 +35,7 @@ void RecordDeviceIdValidityMetric( const std::string& histogram_name, const em::PolicyData& policy_data, - const chromeos::InstallAttributes& install_attributes) { + const ash::InstallAttributes& install_attributes) { PolicyDeviceIdValidity device_id_validity = PolicyDeviceIdValidity::kMaxValue; if (install_attributes.GetDeviceId().empty()) device_id_validity = PolicyDeviceIdValidity::kActualIdUnknown; @@ -52,7 +52,7 @@ DeviceCloudPolicyStoreAsh::DeviceCloudPolicyStoreAsh( ash::DeviceSettingsService* device_settings_service, - chromeos::InstallAttributes* install_attributes, + ash::InstallAttributes* install_attributes, scoped_refptr<base::SequencedTaskRunner> background_task_runner) : device_settings_service_(device_settings_service), install_attributes_(install_attributes),
diff --git a/chrome/browser/ash/policy/core/device_cloud_policy_store_ash.h b/chrome/browser/ash/policy/core/device_cloud_policy_store_ash.h index 547d5e6..28af5f1 100644 --- a/chrome/browser/ash/policy/core/device_cloud_policy_store_ash.h +++ b/chrome/browser/ash/policy/core/device_cloud_policy_store_ash.h
@@ -13,12 +13,12 @@ #include "chrome/browser/ash/settings/device_settings_service.h" #include "components/policy/core/common/cloud/cloud_policy_store.h" -namespace base { -class SequencedTaskRunner; +namespace ash { +class InstallAttributes; } -namespace chromeos { -class InstallAttributes; +namespace base { +class SequencedTaskRunner; } namespace enterprise_management { @@ -35,7 +35,7 @@ public: DeviceCloudPolicyStoreAsh( ash::DeviceSettingsService* device_settings_service, - chromeos::InstallAttributes* install_attributes, + ash::InstallAttributes* install_attributes, scoped_refptr<base::SequencedTaskRunner> background_task_runner); DeviceCloudPolicyStoreAsh(const DeviceCloudPolicyStoreAsh&) = delete; @@ -93,7 +93,7 @@ bool dm_token_checked_ = false; ash::DeviceSettingsService* device_settings_service_; - chromeos::InstallAttributes* install_attributes_; + ash::InstallAttributes* install_attributes_; scoped_refptr<base::SequencedTaskRunner> background_task_runner_;
diff --git a/chrome/browser/ash/policy/core/device_cloud_policy_store_ash_unittest.cc b/chrome/browser/ash/policy/core/device_cloud_policy_store_ash_unittest.cc index 3754e59..2f78d10 100644 --- a/chrome/browser/ash/policy/core/device_cloud_policy_store_ash_unittest.cc +++ b/chrome/browser/ash/policy/core/device_cloud_policy_store_ash_unittest.cc
@@ -38,8 +38,8 @@ namespace { void CopyLockResult(base::RunLoop* loop, - chromeos::InstallAttributes::LockResult* out, - chromeos::InstallAttributes::LockResult result) { + ash::InstallAttributes::LockResult* out, + ash::InstallAttributes::LockResult result) { *out = result; loop->Quit(); } @@ -61,30 +61,30 @@ void SetUp() override { DeviceSettingsTestBase::SetUp(); - chromeos::InstallAttributesClient::InitializeFake(); - install_attributes_ = std::make_unique<chromeos::InstallAttributes>( - chromeos::InstallAttributesClient::Get()); + ash::InstallAttributesClient::InitializeFake(); + install_attributes_ = std::make_unique<ash::InstallAttributes>( + ash::InstallAttributesClient::Get()); store_ = std::make_unique<DeviceCloudPolicyStoreAsh>( device_settings_service_.get(), install_attributes_.get(), base::ThreadTaskRunnerHandle::Get()); store_->AddObserver(&observer_); base::RunLoop loop; - chromeos::InstallAttributes::LockResult result; + ash::InstallAttributes::LockResult result; install_attributes_->LockDevice( DEVICE_MODE_ENTERPRISE, PolicyBuilder::kFakeDomain, std::string(), // realm PolicyBuilder::kFakeDeviceId, base::BindOnce(&CopyLockResult, &loop, &result)); loop.Run(); - ASSERT_EQ(chromeos::InstallAttributes::LOCK_SUCCESS, result); + ASSERT_EQ(ash::InstallAttributes::LOCK_SUCCESS, result); } void TearDown() override { store_->RemoveObserver(&observer_); store_.reset(); install_attributes_.reset(); - chromeos::InstallAttributesClient::Shutdown(); + ash::InstallAttributesClient::Shutdown(); DeviceSettingsTestBase::TearDown(); } @@ -133,7 +133,7 @@ store_.reset(); chromeos::install_attributes_util::InstallAttributesSet("enterprise.owned", std::string()); - install_attributes_ = std::make_unique<chromeos::InstallAttributes>( + install_attributes_ = std::make_unique<ash::InstallAttributes>( chromeos::FakeInstallAttributesClient::Get()); store_ = std::make_unique<DeviceCloudPolicyStoreAsh>( device_settings_service_.get(), install_attributes_.get(), @@ -142,7 +142,7 @@ } ScopedTestingLocalState local_state_; - std::unique_ptr<chromeos::InstallAttributes> install_attributes_; + std::unique_ptr<ash::InstallAttributes> install_attributes_; std::unique_ptr<DeviceCloudPolicyStoreAsh> store_; MockCloudPolicyStoreObserver observer_;
diff --git a/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer.cc b/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer.cc index 41b96a8..09dc7f66 100644 --- a/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer.cc +++ b/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer.cc
@@ -44,7 +44,7 @@ DeviceCloudPolicyInitializer::DeviceCloudPolicyInitializer( PrefService* local_state, DeviceManagementService* enterprise_service, - chromeos::InstallAttributes* install_attributes, + ash::InstallAttributes* install_attributes, ServerBackedStateKeysBroker* state_keys_broker, DeviceCloudPolicyStoreAsh* policy_store, DeviceCloudPolicyManagerAsh* policy_manager,
diff --git a/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer.h b/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer.h index 2737e2a1..5281a2da 100644 --- a/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer.h +++ b/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer.h
@@ -21,13 +21,14 @@ class PrefService; -namespace chromeos { +namespace ash { class InstallAttributes; +} +namespace chromeos { namespace system { class StatisticsProvider; } - } // namespace chromeos namespace policy { @@ -40,7 +41,7 @@ // for a given |DeviceManagementService|. It does so, once // - the `DeviceCloudPolicyStoreAsh` is initialized and has policy, // - the `ServerBackedStateKeysBroker` is available, -// - `chromeos::InstallAttributes::IsActiveDirectoryManaged() == false` +// - `ash::InstallAttributes::IsActiveDirectoryManaged()` == false. // // It is expected that the |DeviceCloudPolicyInitializer| will be // destroyed soon after it called |StartConnection|, but see @@ -52,7 +53,7 @@ DeviceCloudPolicyInitializer( PrefService* local_state, DeviceManagementService* enterprise_service, - chromeos::InstallAttributes* install_attributes, + ash::InstallAttributes* install_attributes, ServerBackedStateKeysBroker* state_keys_broker, DeviceCloudPolicyStoreAsh* policy_store, DeviceCloudPolicyManagerAsh* policy_manager, @@ -105,7 +106,7 @@ PrefService* local_state_; DeviceManagementService* enterprise_service_; - chromeos::InstallAttributes* install_attributes_; + ash::InstallAttributes* install_attributes_; ServerBackedStateKeysBroker* state_keys_broker_; DeviceCloudPolicyStoreAsh* policy_store_; DeviceCloudPolicyManagerAsh* policy_manager_;
diff --git a/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer_unittest.cc b/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer_unittest.cc index 75971b3..b234629 100644 --- a/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer_unittest.cc +++ b/chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer_unittest.cc
@@ -56,7 +56,7 @@ chromeos::system::ScopedFakeStatisticsProvider statistics_provider_; TestingPrefServiceSimple local_state_; - chromeos::StubInstallAttributes install_attributes_; + ash::StubInstallAttributes install_attributes_; DeviceCloudPolicyInitializer device_cloud_policy_initializer_; };
diff --git a/chrome/browser/ash/policy/enrollment/enrollment_handler.cc b/chrome/browser/ash/policy/enrollment/enrollment_handler.cc index 6b8fe9c..5647de1 100644 --- a/chrome/browser/ash/policy/enrollment/enrollment_handler.cc +++ b/chrome/browser/ash/policy/enrollment/enrollment_handler.cc
@@ -232,7 +232,7 @@ EnrollmentHandler::EnrollmentHandler( DeviceCloudPolicyStoreAsh* store, - chromeos::InstallAttributes* install_attributes, + ash::InstallAttributes* install_attributes, ServerBackedStateKeysBroker* state_keys_broker, ash::attestation::AttestationFlow* attestation_flow, std::unique_ptr<SigningService> signing_service, @@ -814,17 +814,17 @@ } void EnrollmentHandler::HandleLockDeviceResult( - chromeos::InstallAttributes::LockResult lock_result) { + ash::InstallAttributes::LockResult lock_result) { DCHECK_EQ(STEP_LOCK_DEVICE, enrollment_step_); switch (lock_result) { - case chromeos::InstallAttributes::LOCK_SUCCESS: + case ash::InstallAttributes::LOCK_SUCCESS: if (device_mode_ == DEVICE_MODE_ENTERPRISE_AD) { StartStoreDMToken(); } else { StartStoreRobotAuth(); } break; - case chromeos::InstallAttributes::LOCK_NOT_READY: + case ash::InstallAttributes::LOCK_NOT_READY: // We wait up to |kLockRetryTimeoutMs| milliseconds and if it hasn't // succeeded by then show an error to the user and stop the enrollment. if (lockbox_init_duration_ < kLockRetryTimeoutMs) { @@ -838,17 +838,17 @@ base::Milliseconds(kLockRetryIntervalMs)); lockbox_init_duration_ += kLockRetryIntervalMs; } else { - HandleLockDeviceResult(chromeos::InstallAttributes::LOCK_TIMEOUT); + HandleLockDeviceResult(ash::InstallAttributes::LOCK_TIMEOUT); } break; - case chromeos::InstallAttributes::LOCK_TIMEOUT: - case chromeos::InstallAttributes::LOCK_BACKEND_INVALID: - case chromeos::InstallAttributes::LOCK_ALREADY_LOCKED: - case chromeos::InstallAttributes::LOCK_SET_ERROR: - case chromeos::InstallAttributes::LOCK_FINALIZE_ERROR: - case chromeos::InstallAttributes::LOCK_READBACK_ERROR: - case chromeos::InstallAttributes::LOCK_WRONG_DOMAIN: - case chromeos::InstallAttributes::LOCK_WRONG_MODE: + case ash::InstallAttributes::LOCK_TIMEOUT: + case ash::InstallAttributes::LOCK_BACKEND_INVALID: + case ash::InstallAttributes::LOCK_ALREADY_LOCKED: + case ash::InstallAttributes::LOCK_SET_ERROR: + case ash::InstallAttributes::LOCK_FINALIZE_ERROR: + case ash::InstallAttributes::LOCK_READBACK_ERROR: + case ash::InstallAttributes::LOCK_WRONG_DOMAIN: + case ash::InstallAttributes::LOCK_WRONG_MODE: ReportResult(EnrollmentStatus::ForLockError(lock_result)); break; }
diff --git a/chrome/browser/ash/policy/enrollment/enrollment_handler.h b/chrome/browser/ash/policy/enrollment/enrollment_handler.h index e4525cc1..6a1951d 100644 --- a/chrome/browser/ash/policy/enrollment/enrollment_handler.h +++ b/chrome/browser/ash/policy/enrollment/enrollment_handler.h
@@ -66,7 +66,7 @@ // enrollment handler. EnrollmentHandler( DeviceCloudPolicyStoreAsh* store, - chromeos::InstallAttributes* install_attributes, + ash::InstallAttributes* install_attributes, ServerBackedStateKeysBroker* state_keys_broker, ash::attestation::AttestationFlow* attestation_flow, std::unique_ptr<SigningService> signing_service, @@ -184,8 +184,7 @@ void StartLockDevice(); // Handle callback from InstallAttributes::LockDevice() and retry on failure. - void HandleLockDeviceResult( - chromeos::InstallAttributes::LockResult lock_result); + void HandleLockDeviceResult(ash::InstallAttributes::LockResult lock_result); // Initiates storing DM token. For Active Directory devices only. void StartStoreDMToken(); @@ -219,7 +218,7 @@ void SetStep(EnrollmentStep step); DeviceCloudPolicyStoreAsh* store_; - chromeos::InstallAttributes* install_attributes_; + ash::InstallAttributes* install_attributes_; ServerBackedStateKeysBroker* state_keys_broker_; ash::attestation::AttestationFlow* attestation_flow_; // SigningService to be used by |client_| to register with.
diff --git a/chrome/browser/ash/policy/fuzzer/policy_fuzzer.cc b/chrome/browser/ash/policy/fuzzer/policy_fuzzer.cc index ed02afa..bc702433 100644 --- a/chrome/browser/ash/policy/fuzzer/policy_fuzzer.cc +++ b/chrome/browser/ash/policy/fuzzer/policy_fuzzer.cc
@@ -98,7 +98,7 @@ ~PerInputEnvironment() { ash::ShutdownDBus(); - chromeos::InstallAttributes::Shutdown(); + ash::InstallAttributes::Shutdown(); ash::DeviceSettingsService::Shutdown(); }
diff --git a/chrome/browser/ash/policy/handlers/device_i18n_shortcuts_enabled_browsertest.cc b/chrome/browser/ash/policy/handlers/device_i18n_shortcuts_enabled_browsertest.cc index 84c39097..23642752 100644 --- a/chrome/browser/ash/policy/handlers/device_i18n_shortcuts_enabled_browsertest.cc +++ b/chrome/browser/ash/policy/handlers/device_i18n_shortcuts_enabled_browsertest.cc
@@ -68,7 +68,7 @@ "fake-id")) {} ~DeviceI18nShortcutsEnabledPolicyEnterpriseManagedTest() override = default; - chromeos::ScopedStubInstallAttributes install_attributes_; + ash::ScopedStubInstallAttributes install_attributes_; }; IN_PROC_BROWSER_TEST_F(DeviceI18nShortcutsEnabledPolicyEnterpriseManagedTest,
diff --git a/chrome/browser/ash/policy/handlers/device_name_policy_handler_impl.cc b/chrome/browser/ash/policy/handlers/device_name_policy_handler_impl.cc index de1bbcb..d110a26b 100644 --- a/chrome/browser/ash/policy/handlers/device_name_policy_handler_impl.cc +++ b/chrome/browser/ash/policy/handlers/device_name_policy_handler_impl.cc
@@ -21,7 +21,7 @@ // By default, device name policy should be kPolicyHostnameNotConfigurable for // managed devices and kNoPolicy for unmanaged devices. DeviceNamePolicyHandler::DeviceNamePolicy ComputeInitialPolicy() { - if (chromeos::InstallAttributes::Get()->IsEnterpriseManaged()) { + if (ash::InstallAttributes::Get()->IsEnterpriseManaged()) { // We assume that the device name is not configurable unless/until we know // about any policies that are set. return DeviceNamePolicyHandler::DeviceNamePolicy:: @@ -140,7 +140,7 @@ // If no policies are set, device name policy should be // kPolicyHostnameNotConfigurable for managed devices and kNoPolicy for // unmanaged devices. - if (chromeos::InstallAttributes::Get()->IsEnterpriseManaged()) + if (ash::InstallAttributes::Get()->IsEnterpriseManaged()) return DeviceNamePolicy::kPolicyHostnameNotConfigurable; return DeviceNamePolicy::kNoPolicy;
diff --git a/chrome/browser/ash/policy/handlers/device_system_wide_tracing_enabled_browsertest.cc b/chrome/browser/ash/policy/handlers/device_system_wide_tracing_enabled_browsertest.cc index ca1f648b..0e64906a 100644 --- a/chrome/browser/ash/policy/handlers/device_system_wide_tracing_enabled_browsertest.cc +++ b/chrome/browser/ash/policy/handlers/device_system_wide_tracing_enabled_browsertest.cc
@@ -69,7 +69,7 @@ } ~DeviceSystemWideTracingEnabledPolicyConsumerOwnedTest() override = default; - chromeos::ScopedStubInstallAttributes install_attributes_; + ash::ScopedStubInstallAttributes install_attributes_; }; // Test that system-wide tracing is enabled by default for a consumer-owned @@ -90,7 +90,7 @@ ~DeviceSystemWideTracingEnabledPolicyEnterpriseManagedTest() override = default; - chromeos::ScopedStubInstallAttributes install_attributes_; + ash::ScopedStubInstallAttributes install_attributes_; }; // Test that system-wide tracing is disabled by default for a managed device and
diff --git a/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_unittest.cc b/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_unittest.cc index 7f4824843..6ff713d 100644 --- a/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_unittest.cc +++ b/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_unittest.cc
@@ -96,7 +96,7 @@ ScopedTestingLocalState local_state_; base::test::ScopedFeatureList feature_list_; ash::ScopedTestingCrosSettings scoped_testing_cros_settings_; - chromeos::ScopedStubInstallAttributes scoped_stub_install_attributes_; + ash::ScopedStubInstallAttributes scoped_stub_install_attributes_; chromeos::FakeUpdateEngineClient* fake_update_engine_client_; std::unique_ptr<chromeos::NetworkHandlerTestHelper> network_handler_test_helper_;
diff --git a/chrome/browser/ash/policy/handlers/system_proxy_handler_unittest.cc b/chrome/browser/ash/policy/handlers/system_proxy_handler_unittest.cc index 49c5e7b..f4952cb 100644 --- a/chrome/browser/ash/policy/handlers/system_proxy_handler_unittest.cc +++ b/chrome/browser/ash/policy/handlers/system_proxy_handler_unittest.cc
@@ -109,7 +109,7 @@ std::unique_ptr<TestingProfile> profile_; chromeos::ScopedTestingCrosSettings scoped_testing_cros_settings_; ash::ScopedDeviceSettingsTestHelper device_settings_test_helper_; - chromeos::ScopedStubInstallAttributes test_install_attributes_; + ash::ScopedStubInstallAttributes test_install_attributes_; std::unique_ptr<SystemProxyHandler> system_proxy_handler_; std::unique_ptr<ash::SystemProxyManager> system_proxy_manager_; };
diff --git a/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler_unittest.cc b/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler_unittest.cc index 7d0688e7..23008ff 100644 --- a/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler_unittest.cc +++ b/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler_unittest.cc
@@ -78,9 +78,8 @@ user_manager::ScopedUserManager user_manager_enabler_; // Set up fake install attributes to pretend the machine is enrolled. - chromeos::ScopedStubInstallAttributes test_install_attributes_{ - chromeos::StubInstallAttributes::CreateCloudManaged("example.com", - "fake-id")}; + ash::ScopedStubInstallAttributes test_install_attributes_{ + ash::StubInstallAttributes::CreateCloudManaged("example.com", "fake-id")}; ash::ScopedTestingCrosSettings scoped_testing_cros_settings_; base::WeakPtrFactory<TPMAutoUpdateModePolicyHandlerTest> weak_factory_{this};
diff --git a/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_update_checker_unittest.cc b/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_update_checker_unittest.cc index 013a2ff7..e2d6979 100644 --- a/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_update_checker_unittest.cc +++ b/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_update_checker_unittest.cc
@@ -365,9 +365,8 @@ device::TestWakeLockProvider wake_lock_provider_; private: - chromeos::ScopedStubInstallAttributes test_install_attributes_{ - chromeos::StubInstallAttributes::CreateCloudManaged("fake-domain", - "fake-id")}; + ash::ScopedStubInstallAttributes test_install_attributes_{ + ash::StubInstallAttributes::CreateCloudManaged("fake-domain", "fake-id")}; }; TEST_F(DeviceScheduledUpdateCheckerTest, CheckIfDailyUpdateCheckIsScheduled) {
diff --git a/chrome/browser/ash/policy/status_collector/child_status_collector_browsertest.cc b/chrome/browser/ash/policy/status_collector/child_status_collector_browsertest.cc index 9b30d9d05..5c0aafb 100644 --- a/chrome/browser/ash/policy/status_collector/child_status_collector_browsertest.cc +++ b/chrome/browser/ash/policy/status_collector/child_status_collector_browsertest.cc
@@ -425,7 +425,7 @@ ChromeContentClient content_client_; ChromeContentBrowserClient browser_content_client_; chromeos::system::ScopedFakeStatisticsProvider fake_statistics_provider_; - chromeos::ScopedStubInstallAttributes scoped_stub_install_attributes_; + ash::ScopedStubInstallAttributes scoped_stub_install_attributes_; ash::ScopedTestingCrosSettings scoped_testing_cros_settings_; ash::FakeOwnerSettingsService owner_settings_service_{ scoped_testing_cros_settings_.device_settings(), nullptr};
diff --git a/chrome/browser/ash/policy/status_collector/device_status_collector_browsertest.cc b/chrome/browser/ash/policy/status_collector/device_status_collector_browsertest.cc index 8d05aa8..5fdd62a 100644 --- a/chrome/browser/ash/policy/status_collector/device_status_collector_browsertest.cc +++ b/chrome/browser/ash/policy/status_collector/device_status_collector_browsertest.cc
@@ -1203,7 +1203,7 @@ ChromeContentBrowserClient browser_content_client_; chromeos::system::ScopedFakeStatisticsProvider fake_statistics_provider_; DiskMountManager::MountPointMap mount_point_map_; - chromeos::ScopedStubInstallAttributes scoped_stub_install_attributes_; + ash::ScopedStubInstallAttributes scoped_stub_install_attributes_; ash::ScopedTestingCrosSettings scoped_testing_cros_settings_; ash::FakeOwnerSettingsService owner_settings_service_{ scoped_testing_cros_settings_.device_settings(), nullptr};
diff --git a/chrome/browser/ash/policy/status_collector/legacy_device_status_collector_browsertest.cc b/chrome/browser/ash/policy/status_collector/legacy_device_status_collector_browsertest.cc index 9bd03a09..7aa9147 100644 --- a/chrome/browser/ash/policy/status_collector/legacy_device_status_collector_browsertest.cc +++ b/chrome/browser/ash/policy/status_collector/legacy_device_status_collector_browsertest.cc
@@ -1170,7 +1170,7 @@ ChromeContentBrowserClient browser_content_client_; chromeos::system::ScopedFakeStatisticsProvider fake_statistics_provider_; DiskMountManager::MountPointMap mount_point_map_; - chromeos::ScopedStubInstallAttributes scoped_stub_install_attributes_; + ash::ScopedStubInstallAttributes scoped_stub_install_attributes_; ash::ScopedTestingCrosSettings scoped_testing_cros_settings_; ash::FakeOwnerSettingsService owner_settings_service_{ scoped_testing_cros_settings_.device_settings(), nullptr};
diff --git a/chrome/browser/ash/settings/cros_settings_unittest.cc b/chrome/browser/ash/settings/cros_settings_unittest.cc index 9632bd9b..1409f7e6 100644 --- a/chrome/browser/ash/settings/cros_settings_unittest.cc +++ b/chrome/browser/ash/settings/cros_settings_unittest.cc
@@ -144,7 +144,7 @@ content::BrowserTaskEnvironment::IO_MAINLOOP}; ScopedTestingLocalState local_state_; - chromeos::ScopedStubInstallAttributes scoped_install_attributes_; + ScopedStubInstallAttributes scoped_install_attributes_; ScopedTestDeviceSettingsService scoped_test_device_settings_; ScopedTestCrosSettings scoped_test_cros_settings_;
diff --git a/chrome/browser/ash/settings/device_settings_provider.cc b/chrome/browser/ash/settings/device_settings_provider.cc index f43e303..5c7880e4 100644 --- a/chrome/browser/ash/settings/device_settings_provider.cc +++ b/chrome/browser/ash/settings/device_settings_provider.cc
@@ -846,8 +846,7 @@ // If the policy is missing, default to reporting enabled on enterprise- // enrolled devices, c.f. crbug/456186. new_values_cache->SetBoolean( - kStatsReportingPref, - chromeos::InstallAttributes::Get()->IsEnterpriseManaged()); + kStatsReportingPref, InstallAttributes::Get()->IsEnterpriseManaged()); } if (!policy.has_release_channel() || @@ -1172,7 +1171,7 @@ // Default value of the policy in case it's missing. bool show_low_disk_space_notification = true; // Disable the notification by default for enrolled devices. - if (chromeos::InstallAttributes::Get()->IsEnterpriseManaged()) + if (InstallAttributes::Get()->IsEnterpriseManaged()) show_low_disk_space_notification = false; if (policy.has_device_show_low_disk_space_notification()) { const em::DeviceShowLowDiskSpaceNotificationProto& container( @@ -1425,7 +1424,7 @@ device_settings_service_->GetOwnerSettingsService()); HWDataUsageController::Get()->OnOwnershipTaken( device_settings_service_->GetOwnerSettingsService()); - } else if (chromeos::InstallAttributes::Get()->IsEnterpriseManaged()) { + } else if (InstallAttributes::Get()->IsEnterpriseManaged()) { StatsReportingController::Get()->ClearPendingValue(); HWDataUsageController::Get()->ClearPendingValue(); } @@ -1516,8 +1515,7 @@ bool DeviceSettingsProvider::MitigateMissingPolicy() { // First check if the device has been owned already and if not exit // immediately. - if (chromeos::InstallAttributes::Get()->GetMode() != - policy::DEVICE_MODE_CONSUMER) + if (InstallAttributes::Get()->GetMode() != policy::DEVICE_MODE_CONSUMER) return false; // If we are here the policy file were corrupted or missing. This can happen
diff --git a/chrome/browser/ash/settings/device_settings_provider.h b/chrome/browser/ash/settings/device_settings_provider.h index 3da7a9b0..cc0f7c6 100644 --- a/chrome/browser/ash/settings/device_settings_provider.h +++ b/chrome/browser/ash/settings/device_settings_provider.h
@@ -34,8 +34,8 @@ "Login.AllowlistCOILFallback"; // CrosSettingsProvider implementation that works with device settings. -// Dependency: chromeos::InstallAttributes must be initialized while this class -// is in use. +// Dependency: `InstallAttributes` must be initialized while this class is in +// use. // // Note that the write path is in the process of being migrated to // OwnerSettingsServiceAsh (crbug.com/230018).
diff --git a/chrome/browser/ash/settings/scoped_cros_settings_test_helper.cc b/chrome/browser/ash/settings/scoped_cros_settings_test_helper.cc index 3a27582..894e6b7 100644 --- a/chrome/browser/ash/settings/scoped_cros_settings_test_helper.cc +++ b/chrome/browser/ash/settings/scoped_cros_settings_test_helper.cc
@@ -140,15 +140,13 @@ } } -chromeos::StubInstallAttributes* -ScopedCrosSettingsTestHelper::InstallAttributes() { +StubInstallAttributes* ScopedCrosSettingsTestHelper::InstallAttributes() { return test_install_attributes_->Get(); } void ScopedCrosSettingsTestHelper::Initialize(bool create_settings_service) { if (create_settings_service) { - test_install_attributes_ = - std::make_unique<chromeos::ScopedStubInstallAttributes>(); + test_install_attributes_ = std::make_unique<ScopedStubInstallAttributes>(); CHECK(!DeviceSettingsService::IsInitialized()); test_device_settings_service_ = std::make_unique<ScopedTestDeviceSettingsService>();
diff --git a/chrome/browser/ash/settings/scoped_cros_settings_test_helper.h b/chrome/browser/ash/settings/scoped_cros_settings_test_helper.h index 70513eb..ded9cfd8 100644 --- a/chrome/browser/ash/settings/scoped_cros_settings_test_helper.h +++ b/chrome/browser/ash/settings/scoped_cros_settings_test_helper.h
@@ -86,11 +86,10 @@ // Get the scoped install attributes to change them as needed for the // current test. - chromeos::StubInstallAttributes* InstallAttributes(); + StubInstallAttributes* InstallAttributes(); private: - std::unique_ptr<chromeos::ScopedStubInstallAttributes> - test_install_attributes_; + std::unique_ptr<ScopedStubInstallAttributes> test_install_attributes_; std::unique_ptr<ScopedTestDeviceSettingsService> test_device_settings_service_; std::unique_ptr<ScopedTestCrosSettings> test_cros_settings_;
diff --git a/chrome/browser/ash/settings/stats_reporting_controller_unittest.cc b/chrome/browser/ash/settings/stats_reporting_controller_unittest.cc index 0e17a28..3b262d8 100644 --- a/chrome/browser/ash/settings/stats_reporting_controller_unittest.cc +++ b/chrome/browser/ash/settings/stats_reporting_controller_unittest.cc
@@ -100,7 +100,7 @@ content::BrowserTaskEnvironment task_environment_{ content::BrowserTaskEnvironment::IO_MAINLOOP}; TestingPrefServiceSimple local_state_; - chromeos::ScopedStubInstallAttributes scoped_install_attributes_; + ScopedStubInstallAttributes scoped_install_attributes_; FakeSessionManagerClient fake_session_manager_client_; ScopedTestDeviceSettingsService scoped_device_settings_; ScopedTestCrosSettings scoped_cros_settings_{RegisterPrefs(&local_state_)};
diff --git a/chrome/browser/ash/shortcut_mapping_pref_service.cc b/chrome/browser/ash/shortcut_mapping_pref_service.cc index a51260c..3fcd0b3 100644 --- a/chrome/browser/ash/shortcut_mapping_pref_service.cc +++ b/chrome/browser/ash/shortcut_mapping_pref_service.cc
@@ -10,11 +10,12 @@ #include "components/prefs/pref_service.h" namespace ash { + ShortcutMappingPrefService::ShortcutMappingPrefService() = default; ShortcutMappingPrefService::~ShortcutMappingPrefService() = default; bool ShortcutMappingPrefService::IsDeviceEnterpriseManaged() const { - return chromeos::InstallAttributes::Get()->IsEnterpriseManaged(); + return InstallAttributes::Get()->IsEnterpriseManaged(); } bool ShortcutMappingPrefService::IsI18nShortcutPrefEnabled() const {
diff --git a/chrome/browser/ash/system/timezone_util.cc b/chrome/browser/ash/system/timezone_util.cc index 5066932..372abc0 100644 --- a/chrome/browser/ash/system/timezone_util.cc +++ b/chrome/browser/ash/system/timezone_util.cc
@@ -214,7 +214,7 @@ } bool HasSystemTimezonePolicy() { - if (!chromeos::InstallAttributes::Get()->IsEnterpriseManaged()) + if (!InstallAttributes::Get()->IsEnterpriseManaged()) return false; std::string policy_timezone;
diff --git a/chrome/browser/chromeos/extensions/info_private_apitest.cc b/chrome/browser/chromeos/extensions/info_private_apitest.cc index 92bffd0..31a17c3 100644 --- a/chrome/browser/chromeos/extensions/info_private_apitest.cc +++ b/chrome/browser/chromeos/extensions/info_private_apitest.cc
@@ -292,9 +292,8 @@ ~ChromeOSManagedDeviceInfoPrivateTest() override = default; private: - chromeos::ScopedStubInstallAttributes test_install_attributes_{ - chromeos::StubInstallAttributes::CreateCloudManaged("fake-domain", - "fake-id")}; + ash::ScopedStubInstallAttributes test_install_attributes_{ + ash::StubInstallAttributes::CreateCloudManaged("fake-domain", "fake-id")}; }; IN_PROC_BROWSER_TEST_F(ChromeOSManagedDeviceInfoPrivateTest, Managed) {
diff --git a/chrome/browser/chromeos/extensions/install_limiter_unittest.cc b/chrome/browser/chromeos/extensions/install_limiter_unittest.cc index d98e751f4..6929dfdc 100644 --- a/chrome/browser/chromeos/extensions/install_limiter_unittest.cc +++ b/chrome/browser/chromeos/extensions/install_limiter_unittest.cc
@@ -36,7 +36,7 @@ private: content::BrowserTaskEnvironment task_environment_; - chromeos::ScopedStubInstallAttributes test_install_attributes_; + ash::ScopedStubInstallAttributes test_install_attributes_; user_manager::ScopedUserManager scoped_user_manager_; };
diff --git a/chrome/browser/chromeos/extensions/users_private/users_private_apitest.cc b/chrome/browser/chromeos/extensions/users_private/users_private_apitest.cc index badbcad..a189606c 100644 --- a/chrome/browser/chromeos/extensions/users_private/users_private_apitest.cc +++ b/chrome/browser/chromeos/extensions/users_private/users_private_apitest.cc
@@ -166,7 +166,7 @@ static TestDelegate* s_test_delegate_; private: - chromeos::ScopedStubInstallAttributes scoped_stub_install_attributes_; + ash::ScopedStubInstallAttributes scoped_stub_install_attributes_; ash::ScopedTestingCrosSettings scoped_testing_cros_settings_; };
diff --git a/chrome/browser/device_identity/chromeos/device_oauth2_token_store_chromeos_unittest.cc b/chrome/browser/device_identity/chromeos/device_oauth2_token_store_chromeos_unittest.cc index c648b99..0e446586 100644 --- a/chrome/browser/device_identity/chromeos/device_oauth2_token_store_chromeos_unittest.cc +++ b/chrome/browser/device_identity/chromeos/device_oauth2_token_store_chromeos_unittest.cc
@@ -112,7 +112,7 @@ content::BrowserTaskEnvironment task_environment_; ScopedTestingLocalState scoped_testing_local_state_; - chromeos::ScopedStubInstallAttributes scoped_stub_install_attributes_; + ash::ScopedStubInstallAttributes scoped_stub_install_attributes_; ash::ScopedTestDeviceSettingsService scoped_device_settings_service_; ash::ScopedTestCrosSettings scoped_test_cros_settings_{ scoped_testing_local_state_.Get()};
diff --git a/chrome/browser/dips/dips_helper_browsertest.cc b/chrome/browser/dips/dips_helper_browsertest.cc index b2a40f9..7e09fe3 100644 --- a/chrome/browser/dips/dips_helper_browsertest.cc +++ b/chrome/browser/dips/dips_helper_browsertest.cc
@@ -186,6 +186,11 @@ EXPECT_FALSE(state_b.user_interaction_time().has_value()); } +#if (BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) +#define MAYBE_Histograms_StorageThenClick DISABLED_Histograms_StorageThenClick +#else +#define MAYBE_Histograms_StorageThenClick Histograms_StorageThenClick +#endif IN_PROC_BROWSER_TEST_F(DIPSTabHelperBrowserTest, Histograms_StorageThenClick) { base::HistogramTester histograms; GURL url = embedded_test_server()->GetURL("a.test", "/set-cookie?foo=bar"); @@ -211,6 +216,11 @@ histograms.ExpectUniqueTimeSample(kTimeToInteraction, base::Seconds(10), 1); } +#if (BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) +#define MAYBE_Histograms_ClickThenStorage DISABLED_Histograms_ClickThenStorage +#else +#define MAYBE_Histograms_ClickThenStorage Histograms_ClickThenStorage +#endif IN_PROC_BROWSER_TEST_F(DIPSTabHelperBrowserTest, Histograms_ClickThenStorage) { base::HistogramTester histograms; base::Time time = base::Time::FromDoubleT(1);
diff --git a/chrome/browser/download/android/BUILD.gn b/chrome/browser/download/android/BUILD.gn index bea4d63..cd551c56 100644 --- a/chrome/browser/download/android/BUILD.gn +++ b/chrome/browser/download/android/BUILD.gn
@@ -33,6 +33,7 @@ "java/src/org/chromium/chrome/browser/download/DownloadLaterMetrics.java", "java/src/org/chromium/chrome/browser/download/DownloadLocationDialogMetrics.java", "java/src/org/chromium/chrome/browser/download/DownloadManagerBridge.java", + "java/src/org/chromium/chrome/browser/download/DownloadMessageUiController.java", "java/src/org/chromium/chrome/browser/download/DownloadStartupUtils.java", "java/src/org/chromium/chrome/browser/download/DownloadStatus.java", "java/src/org/chromium/chrome/browser/download/MediaStoreHelper.java", @@ -91,6 +92,7 @@ "//components/embedder_support/android:util_java", "//components/feature_engagement:feature_engagement_java", "//components/feed/core/shared_prefs:feed_shared_prefs", + "//components/messages/android:java", "//components/offline_items_collection/core:core_java", "//components/prefs/android:java", "//components/user_prefs/android:java", @@ -127,6 +129,7 @@ # This internal file will be replaced by a generated file so the resulting # android_library target does not actually depend on this internal file. sources = [ + "//chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerFactory.java", "//chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorFactory.java", "//chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/interstitial/DownloadInterstitialCoordinatorFactory.java", ] @@ -217,6 +220,7 @@ android_resources("java_resources") { sources = [ + "java/res/drawable/infobar_download_complete.xml", "java/res/layout/confirm_oma_download.xml", "java/res/layout/download_later_dialog.xml", "java/res/layout/download_location_dialog.xml",
diff --git a/chrome/android/java/res/drawable/infobar_download_complete.xml b/chrome/browser/download/android/java/res/drawable/infobar_download_complete.xml similarity index 100% rename from chrome/android/java/res/drawable/infobar_download_complete.xml rename to chrome/browser/download/android/java/res/drawable/infobar_download_complete.xml
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiController.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiController.java similarity index 83% rename from chrome/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiController.java rename to chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiController.java index 838762c..6123e41 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiController.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiController.java
@@ -8,6 +8,7 @@ import androidx.annotation.Nullable; +import org.chromium.chrome.browser.profiles.OTRProfileID; import org.chromium.components.messages.MessageDispatcher; import org.chromium.components.offline_items_collection.ContentId; import org.chromium.components.offline_items_collection.OfflineContentProvider; @@ -45,6 +46,16 @@ * @return True if we did a switch to another activity, false otherwise. */ boolean maybeSwitchToFocusedActivity(); + + /** Called to open the downloads page. */ + void openDownloadsPage(OTRProfileID otrProfileID, @DownloadOpenSource int source); + + /** Called to open the download associated with the given {@link contentId}.*/ + void openDownload(ContentId contentId, OTRProfileID otrProfileID, + @DownloadOpenSource int source, Context context); + + /** Called to remove a notification. */ + void removeNotification(int notificationId, DownloadInfo downloadInfo); } /**
diff --git a/chrome/browser/download/internal/android/BUILD.gn b/chrome/browser/download/internal/android/BUILD.gn index c20477db..8e45d5f 100644 --- a/chrome/browser/download/internal/android/BUILD.gn +++ b/chrome/browser/download/internal/android/BUILD.gn
@@ -6,6 +6,8 @@ android_library("java") { sources = [ + "java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerFactory.java", + "java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java", "java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorFactory.java", "java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java", "java/src/org/chromium/chrome/browser/download/home/OfflineItemSource.java", @@ -120,9 +122,11 @@ "//components/browser_ui/widget/android:java", "//components/embedder_support/android:util_java", "//components/feature_engagement:feature_engagement_java", + "//components/messages/android:java", "//components/offline_items_collection/core:core_java", "//components/prefs/android:java", "//components/url_formatter/android:url_formatter_java", + "//components/user_prefs/android:java", "//content/public/android:content_java", "//third_party/android_deps:material_design_java", "//third_party/androidx:androidx_annotation_annotation_java", @@ -131,6 +135,7 @@ "//third_party/androidx:androidx_core_core_java", "//third_party/androidx:androidx_recyclerview_recyclerview_java", "//third_party/androidx:androidx_vectordrawable_vectordrawable_animated_java", + "//third_party/androidx:androidx_vectordrawable_vectordrawable_java", "//ui/android:ui_java", "//url:gurl_java", ] @@ -154,9 +159,12 @@ "java/res/drawable/circular_progress_bar_resume_tiny.xml", "java/res/drawable/circular_progress_bar_retry_tiny.xml", "java/res/drawable/download_interstitial_icon.xml", + "java/res/drawable/downloading_fill_animation_24dp.xml", "java/res/drawable/group_card_footer_curved_border.xml", "java/res/drawable/group_card_header_curved_border.xml", "java/res/drawable/group_card_item_border.xml", + "java/res/drawable/ic_file_download_scheduled_24dp.xml", + "java/res/drawable/infobar_download_complete_animation.xml", "java/res/layout/download_home_tabs.xml", "java/res/layout/download_home_toolbar.xml", "java/res/layout/download_interstitial.xml", @@ -206,6 +214,7 @@ android_library("javatests") { testonly = true sources = [ + "java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerTest.java", "java/src/org/chromium/chrome/browser/download/home/DownloadActivityV2Test.java", "java/src/org/chromium/chrome/browser/download/home/StubbedOfflineContentProvider.java", "java/src/org/chromium/chrome/browser/download/home/StubbedProvider.java", @@ -219,11 +228,13 @@ "//chrome/browser/download/android:java", "//chrome/browser/flags:java", "//chrome/browser/preferences:java", + "//chrome/browser/profiles/android:java", "//chrome/browser/ui/messages/android:java", "//chrome/test/android:chrome_java_test_support", "//components/browser_ui/modaldialog/android:java", "//components/embedder_support/android:util_java", "//components/feature_engagement:feature_engagement_java", + "//components/messages/android:java", "//components/offline_items_collection/core:core_java", "//components/prefs/android:java", "//components/url_formatter/android:url_formatter_java",
diff --git a/chrome/android/java/res/drawable/downloading_fill_animation_24dp.xml b/chrome/browser/download/internal/android/java/res/drawable/downloading_fill_animation_24dp.xml similarity index 100% rename from chrome/android/java/res/drawable/downloading_fill_animation_24dp.xml rename to chrome/browser/download/internal/android/java/res/drawable/downloading_fill_animation_24dp.xml
diff --git a/chrome/android/java/res/drawable/ic_file_download_scheduled_24dp.xml b/chrome/browser/download/internal/android/java/res/drawable/ic_file_download_scheduled_24dp.xml similarity index 100% rename from chrome/android/java/res/drawable/ic_file_download_scheduled_24dp.xml rename to chrome/browser/download/internal/android/java/res/drawable/ic_file_download_scheduled_24dp.xml
diff --git a/chrome/android/java/res/drawable/infobar_download_complete_animation.xml b/chrome/browser/download/internal/android/java/res/drawable/infobar_download_complete_animation.xml similarity index 100% rename from chrome/android/java/res/drawable/infobar_download_complete_animation.xml rename to chrome/browser/download/internal/android/java/res/drawable/infobar_download_complete_animation.xml
diff --git a/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerFactory.java b/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerFactory.java new file mode 100644 index 0000000..5dd487e --- /dev/null +++ b/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerFactory.java
@@ -0,0 +1,17 @@ +// Copyright 2022 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.download; + +import org.chromium.chrome.browser.download.DownloadMessageUiController.Delegate; + +/** Factory class to build a DownloadMessageUiController instance. */ +public class DownloadMessageUiControllerFactory { + private DownloadMessageUiControllerFactory() {} + + /** Builds a {@link DownloadMessageUiControllerImpl} instance. */ + public static DownloadMessageUiController create(Delegate delegate) { + return new DownloadMessageUiControllerImpl(delegate); + } +} \ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java b/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java similarity index 98% rename from chrome/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java rename to chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java index fdf9073..de41c8b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java +++ b/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java
@@ -21,10 +21,10 @@ import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; -import org.chromium.chrome.R; import org.chromium.chrome.browser.download.DownloadLaterMetrics.DownloadLaterUiEvent; import org.chromium.chrome.browser.download.dialogs.DownloadLaterDialogHelper; import org.chromium.chrome.browser.download.dialogs.DownloadLaterDialogHelper.Source; +import org.chromium.chrome.browser.download.internal.R; import org.chromium.chrome.browser.download.items.OfflineContentAggregatorFactory; import org.chromium.chrome.browser.profiles.OTRProfileID; import org.chromium.chrome.browser.profiles.Profile; @@ -78,7 +78,8 @@ UmaInfobarShown.COMPLETE, UmaInfobarShown.FAILED, UmaInfobarShown.PENDING, UmaInfobarShown.MULTIPLE_DOWNLOADING, UmaInfobarShown.MULTIPLE_COMPLETE, UmaInfobarShown.MULTIPLE_FAILED, UmaInfobarShown.MULTIPLE_PENDING, - UmaInfobarShown.SCHEDULED, UmaInfobarShown.MULTIPLE_SCHEDULED}) + UmaInfobarShown.SCHEDULED, UmaInfobarShown.MULTIPLE_SCHEDULED, + UmaInfobarShown.NUM_ENTRIES}) @Retention(RetentionPolicy.SOURCE) private @interface UmaInfobarShown { int ANY_STATE = 0; @@ -102,7 +103,8 @@ * enums.xml. Values should be number from 0 and can't have gaps. */ @VisibleForTesting - @IntDef({UiState.INITIAL, UiState.DOWNLOADING, UiState.SHOW_RESULT, UiState.CANCELLED}) + @IntDef({UiState.INITIAL, UiState.DOWNLOADING, UiState.SHOW_RESULT, UiState.CANCELLED, + UiState.NUM_ENTRIES}) @Retention(RetentionPolicy.SOURCE) protected @interface UiState { // Default initial state. It is also the final state after all the downloads are paused or @@ -376,8 +378,7 @@ } private boolean isVisibleToUser(OfflineItem offlineItem) { - if (offlineItem.isTransient - || offlineItem.isSuggested || offlineItem.isDangerous) { + if (offlineItem.isTransient || offlineItem.isSuggested || offlineItem.isDangerous) { return false; } @@ -566,10 +567,12 @@ info.iconType = IconType.VECTOR_DRAWABLE; } else if (resultState == ResultState.FAILED) { stringRes = R.plurals.download_message_multiple_download_failed; - info.icon = R.drawable.ic_error_outline_googblue_24dp; + info.icon = org.chromium.components.browser_ui.widget.R.drawable + .ic_error_outline_googblue_24dp; } else if (resultState == ResultState.PENDING) { stringRes = R.plurals.download_message_multiple_download_pending; - info.icon = R.drawable.ic_error_outline_googblue_24dp; + info.icon = org.chromium.components.browser_ui.widget.R.drawable + .ic_error_outline_googblue_24dp; } else if (resultState == ResultState.SCHEDULED) { stringRes = R.plurals.download_message_multiple_download_scheduled; info.icon = R.drawable.ic_file_download_scheduled_24dp; @@ -882,9 +885,7 @@ if (!mNotificationIds.containsKey(contentId)) return; DownloadInfo downloadInfo = new DownloadInfo.Builder().setContentId(contentId).build(); - DownloadManagerService.getDownloadManagerService() - .getDownloadNotifier() - .removeDownloadNotification(mNotificationIds.get(contentId), downloadInfo); + mDelegate.removeNotification(mNotificationIds.get(contentId), downloadInfo); mNotificationIds.remove(contentId); } @@ -895,7 +896,7 @@ if (itemId != null && schedule != null) { onChangeScheduleClicked(itemId, schedule); } else if (itemId != null) { - DownloadUtils.openItem(itemId, + mDelegate.openDownload(itemId, OTRProfileID.deserializeWithoutVerify( offlineItem == null ? null : offlineItem.otrProfileId), DownloadOpenSource.DOWNLOAD_PROGRESS_MESSAGE, getContext()); @@ -903,7 +904,7 @@ } else { // TODO(shaktisahu): Make a best guess for which profile, maybe from the last updated // item. - DownloadManagerService.openDownloadsPage( + mDelegate.openDownloadsPage( getOTRProfileIDForTrackedItems(), DownloadOpenSource.DOWNLOAD_PROGRESS_MESSAGE); recordLinkClicked(false /*openItem*/); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerTest.java b/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerTest.java similarity index 96% rename from chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerTest.java rename to chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerTest.java index aeb3031b..38e10e6 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerTest.java +++ b/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerTest.java
@@ -21,9 +21,11 @@ import org.chromium.base.test.util.Criteria; import org.chromium.base.test.util.CriteriaHelper; import org.chromium.base.test.util.Feature; +import org.chromium.chrome.browser.profiles.OTRProfileID; import org.chromium.chrome.test.ChromeBrowserTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.components.messages.MessageDispatcher; +import org.chromium.components.offline_items_collection.ContentId; import org.chromium.components.offline_items_collection.LegacyHelpers; import org.chromium.components.offline_items_collection.OfflineItem; import org.chromium.components.offline_items_collection.OfflineItemSchedule; @@ -94,6 +96,16 @@ public boolean maybeSwitchToFocusedActivity() { return false; } + + @Override + public void openDownloadsPage(OTRProfileID otrProfileID, int source) {} + + @Override + public void openDownload( + ContentId contentId, OTRProfileID otrProfileID, int source, Context context) {} + + @Override + public void removeNotification(int notificationId, DownloadInfo downloadInfo) {} } static class TestDownloadMessageUiController extends DownloadMessageUiControllerImpl { @@ -133,11 +145,6 @@ } } - private static DownloadItem createDownloadItem(OfflineItem offlineItem) { - DownloadInfo downloadInfo = DownloadInfo.fromOfflineItem(offlineItem, null); - return new DownloadItem(false, downloadInfo); - } - private static OfflineItem createOfflineItem(@OfflineItemState int state) { OfflineItem item = new OfflineItem(); String uuid = UUID.randomUUID().toString();
diff --git a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api_unittest.cc b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api_unittest.cc index aa08bf6..ffdb34ce 100644 --- a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api_unittest.cc +++ b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api_unittest.cc
@@ -146,7 +146,7 @@ } scoped_refptr<const extensions::Extension> extension_; - chromeos::StubInstallAttributes stub_install_attributes_; + ash::StubInstallAttributes stub_install_attributes_; // fake_user_manager_ is owned by user_manager_enabler_. ash::FakeChromeUserManager* fake_user_manager_ = nullptr; user_manager::ScopedUserManager user_manager_enabler_;
diff --git a/chrome/browser/extensions/api/force_installed_affiliated_extension_apitest.cc b/chrome/browser/extensions/api/force_installed_affiliated_extension_apitest.cc index d1701fd4..bd2c11f 100644 --- a/chrome/browser/extensions/api/force_installed_affiliated_extension_apitest.cc +++ b/chrome/browser/extensions/api/force_installed_affiliated_extension_apitest.cc
@@ -33,8 +33,8 @@ ForceInstalledAffiliatedExtensionApiTest:: ForceInstalledAffiliatedExtensionApiTest(bool is_affiliated) : test_install_attributes_( - chromeos::StubInstallAttributes::CreateCloudManaged("fake-domain", - "fake-id")) { + ash::StubInstallAttributes::CreateCloudManaged("fake-domain", + "fake-id")) { set_exit_when_last_browser_closes(false); set_chromeos_user_ = false; affiliation_mixin_.set_affiliated(is_affiliated);
diff --git a/chrome/browser/extensions/api/force_installed_affiliated_extension_apitest.h b/chrome/browser/extensions/api/force_installed_affiliated_extension_apitest.h index 5386fc43..cec0c83 100644 --- a/chrome/browser/extensions/api/force_installed_affiliated_extension_apitest.h +++ b/chrome/browser/extensions/api/force_installed_affiliated_extension_apitest.h
@@ -53,7 +53,7 @@ const base::Value& custom_arg_value); testing::NiceMock<policy::MockConfigurationPolicyProvider> policy_provider_; - chromeos::ScopedStubInstallAttributes test_install_attributes_; + ash::ScopedStubInstallAttributes test_install_attributes_; policy::DevicePolicyCrosTestHelper test_helper_; policy::AffiliationMixin affiliation_mixin_{&mixin_host_, &test_helper_}; ExtensionForceInstallMixin force_install_mixin_{&mixin_host_};
diff --git a/chrome/browser/extensions/api/identity/identity_apitest.cc b/chrome/browser/extensions/api/identity/identity_apitest.cc index 30da6f9..e3f5cf3 100644 --- a/chrome/browser/extensions/api/identity/identity_apitest.cc +++ b/chrome/browser/extensions/api/identity/identity_apitest.cc
@@ -2858,9 +2858,8 @@ // Set up fake install attributes to make the device appeared as // enterprise-managed. - chromeos::ScopedStubInstallAttributes test_install_attributes_{ - chromeos::StubInstallAttributes::CreateCloudManaged("example.com", - "fake-id")}; + ash::ScopedStubInstallAttributes test_install_attributes_{ + ash::StubInstallAttributes::CreateCloudManaged("example.com", "fake-id")}; // Owned by |user_manager_enabler|. ash::MockUserManager* user_manager_;
diff --git a/chrome/browser/extensions/api/platform_keys/platform_keys_test_base.h b/chrome/browser/extensions/api/platform_keys/platform_keys_test_base.h index 00c58e7..46da2fa0 100644 --- a/chrome/browser/extensions/api/platform_keys/platform_keys_test_base.h +++ b/chrome/browser/extensions/api/platform_keys/platform_keys_test_base.h
@@ -107,7 +107,7 @@ mock_policy_provider_; FakeGaia fake_gaia_; net::EmbeddedTestServer gaia_server_{net::EmbeddedTestServer::TYPE_HTTPS}; - chromeos::ScopedStubInstallAttributes install_attributes_; + ash::ScopedStubInstallAttributes install_attributes_; }; #endif // CHROME_BROWSER_EXTENSIONS_API_PLATFORM_KEYS_PLATFORM_KEYS_TEST_BASE_H_
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index a2141af..b312ee6 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -1495,11 +1495,6 @@ "expiry_milestone": 95 }, { - "name": "enable-android-layout-change-tab-reparenting", - "owners": [ "lazzzis@google.com", "twellington" ], - "expiry_milestone": 95 - }, - { "name": "enable-app-discovery-for-oobe", "owners": [ "melzhang", "tsergeant", "chromeos-apps-foundation-team" ], "expiry_milestone": 110 @@ -3699,6 +3694,11 @@ "expiry_milestone": 95 }, { + "name": "intent-chip-app-icon", + "owners": ["tsergeant", "chromeos-apps-foundation-team@google.com"], + "expiry_milestone": 105 + }, + { "name": "intent-chip-skips-intent-picker", "owners": ["tsergeant", "chromeos-apps-foundation-team@google.com"], "expiry_milestone": 105
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index f192006..72960e5 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -2944,13 +2944,6 @@ "When enabled the app language prompt to change the UI language will" "always be shown."; -const char kAndroidLayoutChangeTabReparentingName[] = - "Android Chrome UI phone/tablet layout change tab reparenting"; -const char kAndroidLayoutChangeTabReparentingDescription[] = - "If enabled, when the screen size switches between phone and tablet size, " - "the UI layout updates to the proper one and the current tabs are " - "reparented instead of reloaded."; - const char kAndroidSurfaceControlName[] = "Android SurfaceControl"; const char kAndroidSurfaceControlDescription[] = " Enables SurfaceControl to manage the buffer queue for the " @@ -5575,6 +5568,12 @@ "are installed for a URL, the intent picker will still be shown for " "disambigation."; +const char kIntentChipAppIconName[] = + "Show app icons in the link capturing intent chip"; +const char kIntentChipAppIconDescription[] = + "When enabled, the intent chip in the Omnibox will show the app icon for " + "the app which can handle the current URL."; + const char kLinkCapturingInfoBarName[] = "Enable link capturing info bar"; const char kLinkCapturingInfoBarDescription[] = "Enables an info bar which appears when launching a web app through the "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 3fec1c2..7041bdd 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1679,9 +1679,6 @@ extern const char kAndroidForceAppLanguagePromptName[]; extern const char kAndroidForceAppLanguagePromptDescription[]; -extern const char kAndroidLayoutChangeTabReparentingName[]; -extern const char kAndroidLayoutChangeTabReparentingDescription[]; - extern const char kAndroidSurfaceControlName[]; extern const char kAndroidSurfaceControlDescription[]; @@ -3208,6 +3205,9 @@ extern const char kIntentChipSkipsPickerName[]; extern const char kIntentChipSkipsPickerDescription[]; +extern const char kIntentChipAppIconName[]; +extern const char kIntentChipAppIconDescription[]; + extern const char kLinkCapturingInfoBarName[]; extern const char kLinkCapturingInfoBarDescription[];
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc index 26dd0cc..8d8356e0 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -160,7 +160,6 @@ &kAdaptiveButtonInTopToolbarCustomizationV2, &kAddToHomescreenIPH, &kAllowNewIncognitoTabIntents, - &kAndroidLayoutChangeTabReparenting, &kAndroidSearchEngineChoiceNotification, &kAssistantConsentModal, &kAssistantConsentSimplifiedText, @@ -400,9 +399,6 @@ const base::Feature kAddToHomescreenIPH{"AddToHomescreenIPH", base::FEATURE_DISABLED_BY_DEFAULT}; -const base::Feature kAndroidLayoutChangeTabReparenting{ - "AndroidLayoutChangeTabReparenting", base::FEATURE_ENABLED_BY_DEFAULT}; - const base::Feature kAllowNewIncognitoTabIntents{ "AllowNewIncognitoTabIntents", base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h index 72b17bb0..ce92d63 100644 --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -17,7 +17,6 @@ extern const base::Feature kAdaptiveButtonInTopToolbarCustomizationV2; extern const base::Feature kAddToHomescreenIPH; extern const base::Feature kAllowNewIncognitoTabIntents; -extern const base::Feature kAndroidLayoutChangeTabReparenting; extern const base::Feature kAndroidSearchEngineChoiceNotification; extern const base::Feature kAssistantConsentModal; extern const base::Feature kAssistantConsentSimplifiedText;
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java index 597dd53..63f5c8a 100644 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -215,8 +215,6 @@ "AutofillEnableSupportForMoreStructureInNames"; public static final String AUTOFILL_ENABLE_UPDATE_VIRTUAL_CARD_ENROLLMENT = "AutofillEnableUpdateVirtualCardEnrollment"; - public static final String ANDROID_LAYOUT_CHANGE_TAB_REPARENT = - "AndroidLayoutChangeTabReparenting"; public static final String ANDROID_SEARCH_ENGINE_CHOICE_NOTIFICATION = "AndroidSearchEngineChoiceNotification"; public static final String ANONYMOUS_UPDATE_CHECKS = "AnonymousUpdateChecks";
diff --git a/chrome/browser/metrics/variations/chrome_variations_service_client.cc b/chrome/browser/metrics/variations/chrome_variations_service_client.cc index 3d68c85b..33ad153c 100644 --- a/chrome/browser/metrics/variations/chrome_variations_service_client.cc +++ b/chrome/browser/metrics/variations/chrome_variations_service_client.cc
@@ -79,7 +79,7 @@ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) return base::IsMachineExternallyManaged(); #elif BUILDFLAG(IS_CHROMEOS_ASH) - return chromeos::InstallAttributes::Get()->IsEnterpriseManaged(); + return ash::InstallAttributes::Get()->IsEnterpriseManaged(); #else return false; #endif
diff --git a/chrome/browser/net/nss_service_chromeos.cc b/chrome/browser/net/nss_service_chromeos.cc index 92a8b444..cf1df13 100644 --- a/chrome/browser/net/nss_service_chromeos.cc +++ b/chrome/browser/net/nss_service_chromeos.cc
@@ -69,14 +69,14 @@ // v---------------------------------------/ // GetTPMInfoForUserOnUIThread // | -// chromeos::TPMTokenInfoGetter::Start +// ash::TPMTokenInfoGetter::Start // | // DidGetTPMInfoForUserOnUIThread // \---------------------------------------v // crypto::InitializeTPMForChromeOSUser void DidGetTPMInfoForUserOnUIThread( - std::unique_ptr<chromeos::TPMTokenInfoGetter> getter, + std::unique_ptr<ash::TPMTokenInfoGetter> getter, const std::string& username_hash, absl::optional<user_data_auth::TpmTokenInfo> token_info) { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -96,12 +96,11 @@ DCHECK_CURRENTLY_ON(BrowserThread::UI); DVLOG(1) << "Getting TPM info from cryptohome for " << " " << account_id.Serialize() << " " << username_hash; - std::unique_ptr<chromeos::TPMTokenInfoGetter> scoped_token_info_getter = - chromeos::TPMTokenInfoGetter::CreateForUserToken( + std::unique_ptr<ash::TPMTokenInfoGetter> scoped_token_info_getter = + ash::TPMTokenInfoGetter::CreateForUserToken( account_id, chromeos::CryptohomePkcs11Client::Get(), base::ThreadTaskRunnerHandle::Get()); - chromeos::TPMTokenInfoGetter* token_info_getter = - scoped_token_info_getter.get(); + ash::TPMTokenInfoGetter* token_info_getter = scoped_token_info_getter.get(); // Bind |token_info_getter| to the callback to ensure it does not go away // before TPM token info is fetched.
diff --git a/chrome/browser/policy/enrollment_status.cc b/chrome/browser/policy/enrollment_status.cc index cdccf1b3..4dfa0a9 100644 --- a/chrome/browser/policy/enrollment_status.cc +++ b/chrome/browser/policy/enrollment_status.cc
@@ -67,7 +67,7 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) // static EnrollmentStatus EnrollmentStatus::ForLockError( - chromeos::InstallAttributes::LockResult lock_status) { + ash::InstallAttributes::LockResult lock_status) { return EnrollmentStatus(LOCK_ERROR, DM_STATUS_SUCCESS, net::HTTP_OK, CloudPolicyStore::STATUS_OK, CloudPolicyValidatorBase::VALIDATION_OK, lock_status); @@ -79,7 +79,7 @@ int http_status, CloudPolicyStore::Status store_status, CloudPolicyValidatorBase::Status validation_status, - chromeos::InstallAttributes::LockResult lock_status) + ash::InstallAttributes::LockResult lock_status) : status_(status), client_status_(client_status), http_status_(http_status), @@ -110,7 +110,7 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) return EnrollmentStatus(status, client_status, http_status, store_status, validation_status, - chromeos::InstallAttributes::LOCK_SUCCESS); + ash::InstallAttributes::LOCK_SUCCESS); #else return EnrollmentStatus(status, client_status, http_status, store_status, validation_status);
diff --git a/chrome/browser/policy/enrollment_status.h b/chrome/browser/policy/enrollment_status.h index 6e0b84c4..e3008c05 100644 --- a/chrome/browser/policy/enrollment_status.h +++ b/chrome/browser/policy/enrollment_status.h
@@ -75,7 +75,7 @@ CloudPolicyValidatorBase::Status validation_status); #if BUILDFLAG(IS_CHROMEOS_ASH) static EnrollmentStatus ForLockError( - chromeos::InstallAttributes::LockResult lock_status); + ash::InstallAttributes::LockResult lock_status); #endif Status status() const { return status_; } @@ -86,7 +86,7 @@ return validation_status_; } #if BUILDFLAG(IS_CHROMEOS_ASH) - chromeos::InstallAttributes::LockResult lock_status() const { + ash::InstallAttributes::LockResult lock_status() const { return lock_status_; } #endif @@ -98,7 +98,7 @@ int http_status, CloudPolicyStore::Status store_status, CloudPolicyValidatorBase::Status validation_status, - chromeos::InstallAttributes::LockResult lock_status); + ash::InstallAttributes::LockResult lock_status); #else EnrollmentStatus(Status status, DeviceManagementStatus client_status, @@ -122,7 +122,7 @@ CloudPolicyStore::Status store_status_; CloudPolicyValidatorBase::Status validation_status_; #if BUILDFLAG(IS_CHROMEOS_ASH) - chromeos::InstallAttributes::LockResult lock_status_; + ash::InstallAttributes::LockResult lock_status_; #endif };
diff --git a/chrome/browser/policy/networking/device_network_configuration_updater_ash.cc b/chrome/browser/policy/networking/device_network_configuration_updater_ash.cc index f5a90d5..ac8c3369 100644 --- a/chrome/browser/policy/networking/device_network_configuration_updater_ash.cc +++ b/chrome/browser/policy/networking/device_network_configuration_updater_ash.cc
@@ -91,7 +91,7 @@ // The highest authority regarding whether cellular data roaming should be // allowed is the Device Policy. If there is no Device Policy, then // data roaming should be allowed if this is a Cellular First device. - if (!chromeos::InstallAttributes::Get()->IsEnterpriseManaged() && + if (!ash::InstallAttributes::Get()->IsEnterpriseManaged() && ash::switches::IsCellularFirstDevice()) { network_device_handler_->SetCellularPolicyAllowRoaming( /*policy_allow_roaming=*/true); @@ -103,7 +103,7 @@ // Set up MAC address randomization if we are not enterprise managed. network_device_handler_->SetMACAddressRandomizationEnabled( - !chromeos::InstallAttributes::Get()->IsEnterpriseManaged()); + !ash::InstallAttributes::Get()->IsEnterpriseManaged()); } void DeviceNetworkConfigurationUpdaterAsh::ImportClientCertificates() { @@ -166,7 +166,7 @@ // Roaming is disabled by policy only when the device is both enterprise // managed and the value of |data_roaming_setting| is |false|. const bool policy_allow_roaming = - chromeos::InstallAttributes::Get()->IsEnterpriseManaged() + ash::InstallAttributes::Get()->IsEnterpriseManaged() ? data_roaming_setting : true;
diff --git a/chrome/browser/policy/networking/network_configuration_updater_ash_unittest.cc b/chrome/browser/policy/networking/network_configuration_updater_ash_unittest.cc index e389216..f2fcbc0 100644 --- a/chrome/browser/policy/networking/network_configuration_updater_ash_unittest.cc +++ b/chrome/browser/policy/networking/network_configuration_updater_ash_unittest.cc
@@ -427,7 +427,7 @@ StrictMock<chromeos::MockManagedNetworkConfigurationHandler> network_config_handler_; FakeNetworkDeviceHandler network_device_handler_; - chromeos::ScopedStubInstallAttributes scoped_stub_install_attributes_; + ash::ScopedStubInstallAttributes scoped_stub_install_attributes_; ash::ScopedTestDeviceSettingsService scoped_device_settings_service_; ash::ScopedTestingCrosSettings scoped_testing_cros_settings_; chromeos::system::ScopedFakeStatisticsProvider fake_statistics_provider_; @@ -485,7 +485,7 @@ // Perform this test as though this "device" is enterprise managed. scoped_stub_install_attributes_.Get()->SetCloudManaged( policy::PolicyBuilder::kFakeDomain, policy::PolicyBuilder::kFakeDeviceId); - EXPECT_TRUE(chromeos::InstallAttributes::Get()->IsEnterpriseManaged()); + EXPECT_TRUE(ash::InstallAttributes::Get()->IsEnterpriseManaged()); CreateNetworkConfigurationUpdaterForDevicePolicy(); MarkPolicyProviderInitialized(); @@ -505,7 +505,7 @@ // Perform this test as though this "device" is unmanaged. scoped_stub_install_attributes_.Get()->SetConsumerOwned(); - EXPECT_FALSE(chromeos::InstallAttributes::Get()->IsEnterpriseManaged()); + EXPECT_FALSE(ash::InstallAttributes::Get()->IsEnterpriseManaged()); CreateNetworkConfigurationUpdaterForDevicePolicy(); MarkPolicyProviderInitialized();
diff --git a/chrome/browser/policy/profile_policy_connector_unittest.cc b/chrome/browser/policy/profile_policy_connector_unittest.cc index d6f9aec..635e1da 100644 --- a/chrome/browser/policy/profile_policy_connector_unittest.cc +++ b/chrome/browser/policy/profile_policy_connector_unittest.cc
@@ -146,7 +146,7 @@ std::unique_ptr<CloudPolicyManager> cloud_policy_manager_; #if BUILDFLAG(IS_CHROMEOS_ASH) - chromeos::ScopedStubInstallAttributes test_install_attributes_; + ash::ScopedStubInstallAttributes test_install_attributes_; #endif // BUILDFLAG(IS_CHROMEOS_ASH) };
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_canary_checker_unittest.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_canary_checker_unittest.cc index 565ac7e..08d7ad0 100644 --- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_canary_checker_unittest.cc +++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_canary_checker_unittest.cc
@@ -261,12 +261,13 @@ EXPECT_FALSE(checker->IsActive()); } -#if BUILDFLAG(IS_WIN) +#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)) #define MAYBE_NetworkConnectionShardsCache DISABLED_NetworkConnectionShardsCache #else #define MAYBE_NetworkConnectionShardsCache NetworkConnectionShardsCache #endif // TODO(crbug.com/1307697): Disabled due to failures on win-asan. +// TODO(crbug.com/1307470): Disabled due to flakes on linux and chromeos. TEST_F(PrefetchProxyCanaryCheckerTest, MAYBE_NetworkConnectionShardsCache) { network::TestNetworkConnectionTracker::GetInstance()->SetConnectionType( network::mojom::ConnectionType::CONNECTION_3G);
diff --git a/chrome/browser/prefs/proxy_policy_unittest.cc b/chrome/browser/prefs/proxy_policy_unittest.cc index ae6bbdb..f2ace80 100644 --- a/chrome/browser/prefs/proxy_policy_unittest.cc +++ b/chrome/browser/prefs/proxy_policy_unittest.cc
@@ -131,7 +131,7 @@ std::unique_ptr<PolicyServiceImpl> policy_service_; #if BUILDFLAG(IS_CHROMEOS_ASH) - chromeos::ScopedStubInstallAttributes test_install_attributes_; + ash::ScopedStubInstallAttributes test_install_attributes_; #endif };
diff --git a/chrome/browser/resources/settings/chromeos/crostini_page/crostini_extra_containers.html b/chrome/browser/resources/settings/chromeos/crostini_page/crostini_extra_containers.html index ef3069e8..75f88f4 100644 --- a/chrome/browser/resources/settings/chromeos/crostini_page/crostini_extra_containers.html +++ b/chrome/browser/resources/settings/chromeos/crostini_page/crostini_extra_containers.html
@@ -24,7 +24,7 @@ aria-hidden="true"> $i18n{crostiniExtraContainersTableTitle} </div> - <cr-button on-click="onCreateClick_" disabled="[[!enableButtons_]]"> + <cr-button id="create" on-click="onCreateClick_" disabled="[[!enableButtons_]]"> $i18n{crostiniExtraContainersCreate} </cr-button> </div>
diff --git a/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/app_details_item.html b/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/app_details_item.html index 46e44363..5d332924 100644 --- a/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/app_details_item.html +++ b/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/app_details_item.html
@@ -7,4 +7,9 @@ </div> <div class="indented-permission-block" id="type"> [[getTypeAndSourceString_(app)]] -</div> \ No newline at end of file +</div> +<template is="dom-if" if="[[shouldShowVersion_(app)]]" restamp> + <div class="indented-permission-block" id="version"> + [[getVersionString_(app)]] + </div> +</template>
diff --git a/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/app_details_item.js b/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/app_details_item.js index e7fa613..02a07449 100644 --- a/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/app_details_item.js +++ b/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/app_details_item.js
@@ -50,6 +50,27 @@ } /** + * The version is only shown for Android and Chrome apps. + * + * @param {!App} app + * @returns {boolean} + * @private + */ + shouldShowVersion_(app) { + if (app.version === undefined || app.version === '') { + return false; + } + + switch (app.type) { + case AppType.kChromeApp: + case AppType.kArc: + return true; + default: + return false; + } + } + + /** * Returns the string for the app type. * * @param {!App} app @@ -112,6 +133,19 @@ 'appManagementAppDetailsTypeAndSourceCombined', this.getTypeString_(app), this.getInstallSourceString_(app)); } + + /** + * Returns the version string. + * + * @param {!App} app + * @returns {string} + * @private + */ + getVersionString_(app) { + return this.i18n( + 'appManagementAppDetailsVersion', + app.version ? app.version.toString() : ''); + } } customElements.define(
diff --git a/chrome/browser/signin/account_reconcilor_factory.cc b/chrome/browser/signin/account_reconcilor_factory.cc index b15b4b80..41ec0e5 100644 --- a/chrome/browser/signin/account_reconcilor_factory.cc +++ b/chrome/browser/signin/account_reconcilor_factory.cc
@@ -180,7 +180,7 @@ // |IsAccountManagerAvailable| after fixing https://crbug.com/1008349 and // https://crbug.com/993317. if (ash::IsAccountManagerAvailable(profile) && - chromeos::InstallAttributes::Get()->IsActiveDirectoryManaged()) { + ash::InstallAttributes::Get()->IsActiveDirectoryManaged()) { return std::make_unique< signin::ActiveDirectoryAccountReconcilorDelegate>(); }
diff --git a/chrome/browser/sync/test/integration/sync_exponential_backoff_test.cc b/chrome/browser/sync/test/integration/sync_exponential_backoff_test.cc index 6e54d21..116cc43d 100644 --- a/chrome/browser/sync/test/integration/sync_exponential_backoff_test.cc +++ b/chrome/browser/sync/test/integration/sync_exponential_backoff_test.cc
@@ -37,7 +37,13 @@ } }; -IN_PROC_BROWSER_TEST_F(SyncExponentialBackoffTest, OfflineToOnline) { +// Flaky on ChromeOS, crbug.com/1170609 +#if BUILDFLAG(IS_CHROMEOS_ASH) +#define MAYBE_OfflineToOnline DISABLED_OfflineToOnline +#else +#define MAYBE_OfflineToOnline OfflineToOnline +#endif +IN_PROC_BROWSER_TEST_F(SyncExponentialBackoffTest, MAYBE_OfflineToOnline) { const std::string kFolderTitle1 = "folder1"; const std::string kFolderTitle2 = "folder2";
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es.xtb index 63b327d..6aa38c1 100644 --- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es.xtb +++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es.xtb
@@ -7,6 +7,7 @@ <translation id="2359808026110333948">Continuar</translation> <translation id="2410754283952462441">Elige una cuenta</translation> <translation id="3399357656427473483">Lista de credenciales que puedes rellenar con un toque.</translation> +<translation id="3653689374478248324">Iniciarás sesión en <ph name="SITE_NAME" /></translation> <translation id="3950820424414687140">Iniciar sesión</translation> <translation id="5441504010984421144">La lista de credenciales que puedes rellenar con un toque está abierta y ocupa toda la pantalla.</translation> <translation id="5624120631404540903">Gestionar contraseñas</translation>
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fa.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fa.xtb index f5d5c13..ef61421 100644 --- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fa.xtb +++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fa.xtb
@@ -7,6 +7,7 @@ <translation id="2359808026110333948">ادامه</translation> <translation id="2410754283952462441">انتخاب حساب</translation> <translation id="3399357656427473483">فهرست اطلاعات کاربری که باید با لمس کردن تکمیل شود.</translation> +<translation id="3653689374478248324">به سیستم <ph name="SITE_NAME" /> وارد خواهید شد</translation> <translation id="3950820424414687140">ورود به سیستم</translation> <translation id="5441504010984421144">فهرست اطلاعات کاربری که باید با لمس کردن تکمیل شود کاملاً باز شد.</translation> <translation id="5624120631404540903">مدیریت گذرواژهها</translation>
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ur.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ur.xtb index 20cbc7e..fa50b92b 100644 --- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ur.xtb +++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ur.xtb
@@ -7,6 +7,7 @@ <translation id="2359808026110333948">جاری رکھیں</translation> <translation id="2410754283952462441">اکاؤنٹ منتخب کریں</translation> <translation id="3399357656427473483">ٹچ پر پُر کی جانے والی اسناد کی فہرست۔</translation> +<translation id="3653689374478248324">آپ <ph name="SITE_NAME" /> میں سائن ان ہو جائیں گے</translation> <translation id="3950820424414687140">سائن ان کریں</translation> <translation id="5441504010984421144">ٹچ پر پُر کی جانے والی اسناد کی فہرست مکمل اونچائی پر کھلی ہوئی ہے۔</translation> <translation id="5624120631404540903">پاس ورڈز کا نظم کریں</translation>
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_uz.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_uz.xtb index 163a0bc..c9b66b9 100644 --- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_uz.xtb +++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_uz.xtb
@@ -7,6 +7,7 @@ <translation id="2359808026110333948">Davom etish</translation> <translation id="2410754283952462441">Hisobni tanlang</translation> <translation id="3399357656427473483">Teginib kiritiladigan login va parollar roʻyxati.</translation> +<translation id="3653689374478248324"><ph name="SITE_NAME" /> xizmatiga kirasiz</translation> <translation id="3950820424414687140">Kirish</translation> <translation id="5441504010984421144">Teginib kiritiladigan login va parollar toʻliq hajmda ochildi.</translation> <translation id="5624120631404540903">Sozlash</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 fb435d9..4f48f4d 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
@@ -10,6 +10,7 @@ <translation id="1045899828449635435">¿Borrar también datos de estos sitios?</translation> <translation id="1049743911850919806">Incógnito</translation> <translation id="10614374240317010">Contraseñas que nunca se guardan</translation> +<translation id="1062628064301375934">Ayúdanos a crear una Web más privada</translation> <translation id="107147699690128016">Si cambias la extensión del archivo, el archivo podría abrirse en una aplicación diferente y convertirse en un riesgo potencial para tu dispositivo.</translation> <translation id="1089606299949659462">Revisión completada</translation> <translation id="1095761715416917775">Asegúrate de que siempre puedas acceder a tus datos sincronizados</translation> @@ -106,7 +107,13 @@ <translation id="1554532453982918912">Ayuda a mejorar Chrome para las personas que lo usan como tú</translation> <translation id="1558391695376153246">Cerrar pestañas incógnito</translation> <translation id="1571304935088121812">Copiar nombre de usuario</translation> +<translation id="1573632872794824374">Estamos explorando nuevas funciones que permitan a los sitios ofrecer la misma experiencia de navegación usando menos información tuya</translation> <translation id="1592864538817356322">Protección estándar:</translation> +<translation id="161647866166517041">La reducción del spam y el fraude se basa en tokens de confianza que ayudan a los sitios a luchar contra el fraude y a distinguir a los bots de las personas. + +En función de tu interacción con un sitio (por ejemplo, iniciar sesión de forma habitual con una cuenta), el sitio puede emitir un token de confianza a tu navegador. Después, si otros sitios que visites buscan y encuentran un token de confianza válido, es más probable que te traten como a una persona y no como a un bot. + +Los tokens de confianza mejoran la privacidad en la Web y no se pueden usar para averiguar quién eres.</translation> <translation id="1628019612362412531">{NUM_SELECTED,plural, =1{Quitar 1 elemento seleccionado}other{Quitar # elementos seleccionados}}</translation> <translation id="1633659023549081553">Descubre contenido nuevo en la página principal de Chrome</translation> <translation id="1641113438599504367">Navegación segura</translation> @@ -167,6 +174,7 @@ <translation id="200114059308480249">¿Incluir texto cercano en las búsquedas de Google?</translation> <translation id="2013642289801508067">{FILE_COUNT,plural, =1{# archivo}other{# archivos}}</translation> <translation id="2015836039326522978"><ph name="APP_NAME" /> se abrirá en Chrome. Al continuar, aceptas los <ph name="BEGIN_LINK1" />Términos del Servicio de Google<ph name="END_LINK1" /> y los <ph name="BEGIN_LINK2" />Términos del Servicio Adicionales de Google Chrome y Chrome OS<ph name="END_LINK2" />. También se aplica la <ph name="BEGIN_LINK3" />Política de Privacidad<ph name="END_LINK3" />.</translation> +<translation id="2019145049163614359">¿Eliminar interés?</translation> <translation id="2020309681647789787">Tendrás tu historial en todos tus dispositivos sincronizados y podrás continuar con lo que estabas haciendo</translation> <translation id="2021896219286479412">Controles de pantalla completa</translation> <translation id="2038563949887743358">Activar opción para ver como ordenador</translation> @@ -203,6 +211,7 @@ <translation id="2175927920773552910">Código QR</translation> <translation id="2176767904800337188">Una tarjeta virtual oculta tu tarjeta real para protegerte frente a posibles fraudes. <ph name="BEGIN_LINK1" />Más información sobre tarjetas virtuales<ph name="END_LINK1" /></translation> <translation id="218608176142494674">Compartir</translation> +<translation id="2189903024544168260">Interés eliminado</translation> <translation id="2194856509914051091">Notas importantes</translation> <translation id="2200113223741723867">Gestionar preferencias para compartir datos de uso</translation> <translation id="2218567645332692482">Cambia los accesos a páginas al protocolo HTTPS y muestra una advertencia antes de cargar sitios que no sean compatibles con ese protocolo</translation> @@ -266,6 +275,7 @@ <translation id="2536728043171574184">Viendo una copia sin conexión de esta página</translation> <translation id="2546283357679194313">Cookies y datos de sitios</translation> <translation id="2549516196460093976">Puedes usar este tablet para iniciar sesión en el ordenador donde se muestra este código QR.</translation> +<translation id="2558569818338050235">Tu historial de navegación influye en los anuncios que ves</translation> <translation id="2561519700418191927">Vistas previas de vídeos</translation> <translation id="2567385386134582609">IMAGEN</translation> <translation id="2567545343356994513">Protección más rápida y proactiva frente a sitios web, descargas y extensiones peligrosos.</translation> @@ -277,6 +287,7 @@ <translation id="2604446170045642109">Puedes desactivar el tema oscuro para los sitios en tus ajustes.</translation> <translation id="2612676031748830579">Número de la tarjeta</translation> <translation id="2625189173221582860">Se ha copiado la contraseña</translation> +<translation id="2642087927315268160">La hoja inferior de inicio de sesión está cerrada.</translation> <translation id="2645657967708199252">Tu conexión <ph name="CONNECTION_TYPE" /> puede hacer que la descarga vaya más lenta.</translation> <translation id="2647434099613338025">Añadir idioma</translation> <translation id="2649068648233607930"><ph name="DOMAIN" /> gestiona tu navegador</translation> @@ -289,11 +300,13 @@ <translation id="2704606927547763573">Copiado</translation> <translation id="2707726405694321444">Actualizar página</translation> <translation id="271033894570825754">Nuevo</translation> +<translation id="2711073837061989559">Pruebas</translation> <translation id="2718352093833049315">Solo en Wi-Fi</translation> <translation id="2718846868787000099">Para mostrar contenido en los idiomas que has seleccionado, los sitios que visites pueden ver tus preferencias</translation> <translation id="2723001399770238859">audio</translation> <translation id="2732063072010454421">Mejora tu experiencia con la voz</translation> <translation id="2739256783402597439">2G</translation> +<translation id="2746842245914314523">Puedes obtener más información sobre estas funciones en la configuración de Chrome. Durante las pruebas, tu interacción con los sitios puede que no sea más privada que sin estas nuevas funciones.</translation> <translation id="2760989362628427051">Habilita el tema oscuro cuando esté activado el tema oscuro del dispositivo o el dispositivo esté en modo de ahorro de batería</translation> <translation id="2762000892062317888">justo ahora</translation> <translation id="276969039800130567">Has iniciado sesión como <ph name="USER_EMAIL_ADDRESS" />.</translation> @@ -362,6 +375,7 @@ <translation id="3037177537145227281">Siguiendo precio</translation> <translation id="3037517125981011456">Muestra solicitudes para iniciar sesión en Chrome</translation> <translation id="3046945242843292318">Llega más rápido a este sitio la próxima vez</translation> +<translation id="3055113921564083271">Intereses que has eliminado</translation> <translation id="3055259925215945098">Marcador movido</translation> <translation id="3055841435094910999">Se envía información a Google sobre el uso que haces de Chrome, pero no está vinculada a ti\n\nSi Chrome falla, los detalles sobre el fallo pueden incluir alguna información personal\n\nSi activas la sincronización, las métricas también pueden incluir información sobre las URLs que visites</translation> <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> marcador}other{<ph name="BOOKMARKS_COUNT_MANY" /> marcadores}}</translation> @@ -378,6 +392,7 @@ <translation id="3166827708714933426">Combinaciones de teclas de pestañas y ventanas</translation> <translation id="316694332262407393">Chrome ya se está ejecutando.</translation> <translation id="3169472444629675720">Discover</translation> +<translation id="3187472288455401631">Medición de anuncios</translation> <translation id="3207960819495026254">Añadido a marcadores</translation> <translation id="3208584281581115441">Comprobar ahora</translation> <translation id="3211426585530211793">Se ha eliminado <ph name="ITEM_TITLE" /></translation> @@ -408,6 +423,7 @@ <translation id="3290991969712132877">Para acceder a esta página más rápido, añádela a tu pantalla de inicio con el botón Más opciones</translation> <translation id="3297344142967351106">Asistente de voz</translation> <translation id="3303414029551471755">¿Quieres continuar para descargar el contenido?</translation> +<translation id="3321367458490630980">Interés añadido</translation> <translation id="3334729583274622784">¿Cambiar la extensión del archivo?</translation> <translation id="3341262203274374114">No se puede dejar de seguir. Se ha producido un error.</translation> <translation id="3359667936385849800">Usar proveedor de servicios actual</translation> @@ -429,8 +445,10 @@ <translation id="3444179773590444986">¿Enviar comentarios sobre el tema oscuro para sitios?</translation> <translation id="3469665409713263828">{FILE_COUNT,plural, =1{1 descarga programada}other{# descargas programadas}}</translation> <translation id="3474624961160222204">Continuar como <ph name="NAME" /></translation> +<translation id="3475207952017699209">Información de los anuncios personalizados</translation> <translation id="3478363558367712427">Puedes elegir tu buscador</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /> sobre el contenido sugerido</translation> +<translation id="3495219333887281978">Hoja inferior de inicio de sesión abierta a mitad de altura.</translation> <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation> <translation id="3502647154914451322">Al utilizar Chrome, aceptas los <ph name="BEGIN_TOS_LINK" />Términos del Servicio de Google<ph name="END_TOS_LINK" /> y los <ph name="BEGIN_ATOS_LINK" />Términos del Servicio Adicionales de Google Chrome y Chrome OS<ph name="END_ATOS_LINK" />.</translation> <translation id="3507132249039706973">La protección estándar está activada</translation> @@ -449,6 +467,7 @@ <translation id="3568688522516854065">Inicia sesión y activa la sincronización para ver las pestañas de tus otros dispositivos</translation> <translation id="357465026686164600">Teléfono como llave de seguridad</translation> <translation id="3577473026931028326">Se ha producido un error. Inténtalo de nuevo.</translation> +<translation id="3578874072190212775">Ayuda a los sitios a luchar contra el fraude y a distinguir a los bots de las personas</translation> <translation id="3587482841069643663">Todo</translation> <translation id="3587596251841506391">Ayudar a mejorar la seguridad en la Web</translation> <translation id="3602290021589620013">Vista previa</translation> @@ -490,6 +509,7 @@ <translation id="3856096718352044181">Verifica que este sea un proveedor válido o inténtalo de nuevo más tarde.</translation> <translation id="3858860766373142691">Nombre</translation> <translation id="3861633093716975811">Vídeos populares</translation> +<translation id="3862592757180800623">Puedes cambiar de opinión en cualquier momento en la configuración de Chrome. Durante las pruebas, tu interacción con los sitios puede que no sea más privada que sin estas nuevas funciones.</translation> <translation id="3892148308691398805">Copiar texto</translation> <translation id="3894427358181296146">Añadir carpeta</translation> <translation id="3899682235662194879">Cerrar todas las pestañas de incógnito</translation> @@ -498,6 +518,7 @@ <translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> activada</translation> <translation id="3927692899758076493">Sans Serif</translation> <translation id="3928666092801078803">Combinar mis datos</translation> +<translation id="3932390316856284148">Hoja inferior de inicio de sesión abierta a altura completa.</translation> <translation id="3934366560681368531">"</translation> <translation id="393697183122708255">La búsqueda por voz no está disponible</translation> <translation id="395377504920307820">Usar sin una cuenta</translation> @@ -509,6 +530,7 @@ <translation id="3969863827134279083">Mover hacia arriba</translation> <translation id="397583555483684758">La sincronización ha dejado de funcionar</translation> <translation id="3976396876660209797">Quita esta combinación de teclas y vuelve a crearla</translation> +<translation id="3981902534690264083">Los anunciantes pueden comprender el rendimiento de los anuncios</translation> <translation id="3985215325736559418">¿Quieres volver a descargar el archivo <ph name="FILE_NAME" />?</translation> <translation id="3987993985790029246">Copiar enlace</translation> <translation id="4000212216660919741">Página principal del modo sin conexión</translation> @@ -526,6 +548,7 @@ <translation id="4096227151372679484">Flujo para guardar marcador abierto a la mitad de altura</translation> <translation id="4099578267706723511">Ayudar a mejorar Chrome enviando estadísticas de uso e informes sobre fallos.</translation> <translation id="410351446219883937">Reproducción automática</translation> +<translation id="4106587138345390261">Chrome está explorando nuevas funciones que permitan a los sitios ofrecer la misma experiencia de navegación usando menos información tuya.</translation> <translation id="4108314971463891922">Seguir</translation> <translation id="4108998448622696017">Detecta y te advierte de los eventos peligrosos cuando suceden.</translation> <translation id="4116038641877404294">Descarga páginas para usarlas sin conexión</translation> @@ -546,6 +569,7 @@ <translation id="4248098802131000011">Mantén tus contraseñas protegidas frente a quiebras de seguridad de datos y otros problemas de seguridad.</translation> <translation id="4250229828105606438">Captura de pantalla</translation> <translation id="4256782883801055595">Licencias de software libre</translation> +<translation id="4262915912852657291"><ph name="BEGIN_BOLD" />Qué datos se usan:<ph name="END_BOLD" /> tu historial de navegación, un registro de los sitios que has visitado usando Chrome en este dispositivo.</translation> <translation id="4263656433980196874">Interfaz de consentimiento de la búsqueda por voz del Asistente abierta a pantalla completa</translation> <translation id="4269820728363426813">Copiar la dirección del enlace</translation> <translation id="4290281343757112331">¿Prefieres descargar el archivo más tarde?</translation> @@ -556,6 +580,7 @@ <translation id="4307992518367153382">Configuración básica</translation> <translation id="4320177379694898372">No hay conexión a Internet</translation> <translation id="4321739720395210191">No se ha podido abrir la cámara. Reinicia el dispositivo y vuelve a intentarlo.</translation> +<translation id="4324158606177867698">El interés que has eliminado aparecerá aquí</translation> <translation id="433213510553688132">Siguiendo...</translation> <translation id="4335835283689002019">La función Navegación segura está desactivada</translation> <translation id="4351244548802238354">Cerrar cuadro de diálogo</translation> @@ -643,6 +668,7 @@ <translation id="4807098396393229769">Titular de la tarjeta</translation> <translation id="481574578487123132">Dispositivos vinculados</translation> <translation id="4818017973810341238">No se han podido verificar Digital Asset Links en <ph name="VIOLATED_URL" /></translation> +<translation id="4826163340425232009">Hoja inferior de inicio de sesión.</translation> <translation id="4831037795716408498">Descargar contenido</translation> <translation id="4834007576107377210">Consulta las instrucciones de tu buscador para eliminar tu historial de búsqueda si hace falta</translation> <translation id="4834250788637067901">Métodos de pago, ofertas y direcciones con Google Pay</translation> @@ -697,6 +723,7 @@ <translation id="5091199029769593641">Pronto verás historias de <ph name="SITE_NAME" /> cuando abras una pestaña nueva. Los sitios que sigues se guardan en tu cuenta de Google. Puedes gestionarlos en los ajustes de Discover.</translation> <translation id="5091249083535528968">Datos de uso ampliados</translation> <translation id="509429900233858213">Se ha producido un error.</translation> +<translation id="5098190077610408701">¿Añadir interés?</translation> <translation id="5102401324271069229">Si un sitio intenta robarte tu contraseña o si descargas un archivo dañino, Chrome puede enviar URLs, incluidos fragmentos de contenido de la página, a Navegación segura</translation> <translation id="510275257476243843">Queda 1 hora</translation> <translation id="5115811374190515607">a <ph name="PRODUCT_NAME" /></translation> @@ -776,6 +803,7 @@ <translation id="5578795271662203820">Buscar esta imagen en <ph name="SEARCH_ENGINE" /></translation> <translation id="5581519193887989363">Siempre puedes seleccionar qué contenido quieres sincronizar en los <ph name="BEGIN_LINK1" />ajustes<ph name="END_LINK1" />.</translation> <translation id="5590372121997663538">Recordar este ordenador</translation> +<translation id="559871659088672663">Esta función está actualmente en desarrollo</translation> <translation id="5599455543593328020">Modo de incógnito</translation> <translation id="5599941490345670218">El Asistente de Google puede completar acciones en tu nombre en sitios web</translation> <translation id="5620163320393916465">No hay ninguna contraseña guardada</translation> @@ -870,6 +898,7 @@ <translation id="6069177176307973611">Revisa la configuración de privacidad y seguridad</translation> <translation id="6070730414166672373">Contactando con tu banco\u2026</translation> <translation id="6085886413119427067">Determina cómo conectarse a sitios web mediante una conexión segura</translation> +<translation id="6091413777268123602">Con las pruebas de Privacy Sandbox, los sitios pueden ofrecer la misma experiencia de navegación usando menos datos tuyos. Así, disfrutarás de más privacidad y el seguimiento entre sitios se reducirá. Añadiremos nuevas pruebas cuando estén listas.</translation> <translation id="60923314841986378">Quedan <ph name="HOURS" /> horas</translation> <translation id="6095578583683628124">Si Google también es tu buscador predeterminado, verás mejores sugerencias relevantes según el contexto</translation> <translation id="6108923351542677676">Configuración en curso…</translation> @@ -996,11 +1025,13 @@ <translation id="671481426037969117">Se ha agotado el temporizador de <ph name="FQDN" />. Se reiniciará mañana.</translation> <translation id="6715020873764921614">¿Quieres descargar <ph name="FILE_NAME" /> (<ph name="FILE_SIZE" />) de todos modos?</translation> <translation id="6719634564325948108">¿Conectar con código QR?</translation> +<translation id="6737612727720318154">Permite un interés o un sitio si crees que los anuncios relacionados con él te resultarían útiles</translation> <translation id="6738516213925468394">Tus datos están cifrados con tu <ph name="BEGIN_LINK" />frase de contraseña de sincronización<ph name="END_LINK" /> desde el <ph name="TIME" />. Introdúcela para iniciar la sincronización.</translation> <translation id="6738867403308150051">Descargando…</translation> <translation id="6751521182688001123">Abre una pestaña nueva rápidamente. Para editar este acceso directo, mantenlo pulsado.</translation> <translation id="6756507620369789050">Enviar comentarios</translation> <translation id="6767294960381293877">La lista de dispositivos con los que puedes compartir una pestaña está abierta y ocupa la mitad inferior de la pantalla.</translation> +<translation id="6770042910635026163">Sitios que visitas que definen tus intereses</translation> <translation id="6770602306803890733">Mejora tu seguridad y la de todos los usuarios en la Web</translation> <translation id="6783942555455976443">Guardar esta página para después y recibir un recordatorio</translation> <translation id="6795633245022906657">Abre una pestaña nueva rápidamente. Para editar esta combinación de teclas, ve a Configuración.</translation> @@ -1061,6 +1092,7 @@ <translation id="7093803425429738190">Añadir emoción</translation> <translation id="7105047059074518658">Inicia sesión para navegar más fácilmente en varios dispositivos</translation> <translation id="7106762743910369165">Tu organización es la encargada de gestionar tu navegador</translation> +<translation id="7130504491556983216">La lista de intereses aparecerá aquí a medida que navegues por la Web</translation> <translation id="7138678301420049075">Otro</translation> <translation id="7143462160780459030">No se puede hacer una captura de pantalla. Inténtalo de nuevo.</translation> <translation id="7146622961999026732">Parece que estos sitios y estas aplicaciones son importantes para ti:</translation> @@ -1095,6 +1127,7 @@ <translation id="7339898014177206373">Nueva ventana</translation> <translation id="7340958967809483333">Opciones de Discover</translation> <translation id="7352339641508007922">Arrastra para hacer una captura de página completa</translation> +<translation id="7352531447904559593">Más información sobre la personalización de anuncios basada en el navegador</translation> <translation id="7352651011704765696">Se ha producido un problema</translation> <translation id="7352939065658542140">VÍDEO</translation> <translation id="7353894246028566792">{NUM_SELECTED,plural, =1{Compartir 1 elemento seleccionado}other{Compartir # elementos seleccionados}}</translation> @@ -1150,6 +1183,7 @@ <translation id="7619072057915878432">No se ha podido descargar <ph name="FILE_NAME" /> debido a problemas de la red.</translation> <translation id="7626032353295482388">Te damos la bienvenida a Chrome</translation> <translation id="7630202231528827509">URL del proveedor</translation> +<translation id="7634280112532283638">Reducción del spam y el fraude</translation> <translation id="7638584964844754484">Frase de contraseña incorrecta</translation> <translation id="7641339528570811325">Borrar datos de navegación…</translation> <translation id="7646772052135772216">La sincronización de contraseñas no funciona</translation> @@ -1209,6 +1243,7 @@ <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> está obsoleto.</translation> <translation id="7944772052836377867">Verifica tu identidad para usar la sincronización</translation> <translation id="7947953824732555851">Aceptar y acceder</translation> +<translation id="7959157064403954786">Prueba anuncios más transparentes</translation> <translation id="7961015016161918242">Nunca</translation> <translation id="7961926449547174351">Has inhabilitado el acceso al almacenamiento; ve a Ajustes para habilitarlo.</translation> <translation id="7963646190083259054">Proveedor:</translation> @@ -1288,6 +1323,7 @@ <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> descargas restauradas</translation> <translation id="8364299278605033898">Descubre los sitios web populares</translation> <translation id="8368001212524806591">Seguir precio</translation> +<translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Cómo usamos estos datos:<ph name="END_BOLD" /> Chrome puede estimar tus intereses. Después, un sitio que visites puede pedirle a Chrome consultar tus intereses para personalizar los anuncios que veas.</translation> <translation id="8387617938027387193">Verifica que eres tú</translation> <translation id="8393700583063109961">Enviar mensaje</translation> <translation id="8394720698884623075">Comprueba URLs con una lista de sitios no seguros guardada en Chrome.</translation> @@ -1325,6 +1361,7 @@ <translation id="8505766168025405649">Consulta el estado de la descarga en la notificación</translation> <translation id="8514477925623180633">Exportar contraseñas almacenadas en Chrome</translation> <translation id="8516012719330875537">Editor de imágenes</translation> +<translation id="8516431725144212809">Tus intereses estimados por Chrome</translation> <translation id="8523928698583292556">Eliminar contraseña guardada</translation> <translation id="8540136935098276800">Introduce una URL con el formato correcto</translation> <translation id="854522910157234410">Abrir esta página</translation> @@ -1356,6 +1393,7 @@ <translation id="8659579665266920523">Cómo buscar con Chrome</translation> <translation id="8662811608048051533">Cierra tu sesión en la mayoría de los sitios.</translation> <translation id="8664979001105139458">El nombre del archivo ya existe</translation> +<translation id="8667760277771450375">Estamos explorando formas de restringir el seguimiento entre sitios, así como que los sitios puedan detener el spam publicitario y el fraude.</translation> <translation id="8676789164135894283">Verificar inicio de sesión</translation> <translation id="867767487203716855">Próxima actualización</translation> <translation id="8683039184091909753">imagen</translation> @@ -1464,6 +1502,7 @@ <translation id="962979164594783469">Instalar esta aplicación</translation> <translation id="96681097142096641">¿Ver página simplificada?</translation> <translation id="968900484120156207">Las páginas que visites aparecerán aquí.</translation> +<translation id="969573236494556070">Limitar lo que se comparte entre sitios</translation> <translation id="970715775301869095">Quedan <ph name="MINUTES" /> minutos</translation> <translation id="981121421437150478">Sin conexión</translation> <translation id="983192555821071799">Cerrar todas las pestañas</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 738d1d35..77ec065 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
@@ -10,6 +10,7 @@ <translation id="1045899828449635435">دادههای این سایتها نیز پاک شود؟</translation> <translation id="1049743911850919806">ناشناس</translation> <translation id="10614374240317010">هرگز ذخیره نمیشود</translation> +<translation id="1062628064301375934">به ما کمک کنید وب را خصوصیتر کنیم</translation> <translation id="107147699690128016">اگر پسوند فایل را تغییر دهید، ممکن است فایل در برنامه دیگری باز شود و بهطور بالقوه برای دستگاه مضر باشد.</translation> <translation id="1089606299949659462">بازبینی تکمیل شد!</translation> <translation id="1095761715416917775">مطمئن شوید همیشه میتوانید به دادههای همگامسازی دسترسی داشته باشید</translation> @@ -106,7 +107,13 @@ <translation id="1554532453982918912">کمک کنید Chrome برای افرادی که مثل شما از این مرورگر استفاده میکنند بهتر شود</translation> <translation id="1558391695376153246">بستن «برگههای ناشناس»</translation> <translation id="1571304935088121812">کپی کردن نام کاربری</translation> +<translation id="1573632872794824374">درحال کاوش ویژگیهای جدیدی هستیم که به سایتها امکان میدهد تجربه مرور یکسانی را با مصرف دادههای شخصی کمتر ارائه دهند</translation> <translation id="1592864538817356322">محافظت استاندارد:</translation> +<translation id="161647866166517041">کاهش هرزنامه و تقلب برای کمک به سایتها در مبارزه با تقلب و تشخیص روباتها از افراد، به کدهای اطمینان اتکا میکند. + +براساس تعاملتان با سایتها، مثلاً ورود به سیستم مداوم در حسابی خاص، این سایتها میتوانند کد اطمینان به مرورگرتان صادر کنند. بعداً، اگر سایتهای دیگری که از آنها بازدید میکنید کد اطمینان معتبری را جستجو و پیدا کنند، احتمال اینکه با شما مثل یک انسان (و نه روبات) برخورد کنند بیشتر است. + +کدهای اطمینان حریمخصوصی را در وب افزایش میدهد و نمیتوان از آنها برای پی بردن به هویت شما استفاده کرد.</translation> <translation id="1628019612362412531">{NUM_SELECTED,plural, =1{حذف ۱ مورد انتخابشده}one{حذف # مورد انتخابشده}other{حذف # مورد انتخابشده}}</translation> <translation id="1633659023549081553">محتوای جدید را در صفحه اصلی Chrome کاوش کنید</translation> <translation id="1641113438599504367">مرور ایمن</translation> @@ -167,6 +174,7 @@ <translation id="200114059308480249">نوشتار اطراف در جستجوهای Google لحاظ شوند؟</translation> <translation id="2013642289801508067">{FILE_COUNT,plural, =1{# فایل}one{# فایل}other{# فایل}}</translation> <translation id="2015836039326522978"><ph name="APP_NAME" /> در Chrome باز میشود. با ادامه دادن، با <ph name="BEGIN_LINK1" />شرایط خدمات Google<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />شرایط خدمات تکمیلی Google Chrome و Chrome OS<ph name="END_LINK2" /> موافقت میکنید. <ph name="BEGIN_LINK3" />خطمشی رازداری<ph name="END_LINK3" /> نیز اعمال میشود.</translation> +<translation id="2019145049163614359">علاقه برداشته شود؟</translation> <translation id="2020309681647789787">سابقه ذخیرهشده در همه دستگاههای همگامسازیشده را دراختیار خواهید داشت تا بتوانید آنچه را انجام میدادید ادامه دهید</translation> <translation id="2021896219286479412">کنترلهای سایت تمامصفحه</translation> <translation id="2038563949887743358">روشن کردن درخواست سایت رایانهای</translation> @@ -203,6 +211,7 @@ <translation id="2175927920773552910">رمزینه پاسخسریع</translation> <translation id="2176767904800337188">کارت مجازی با پنهان کردن کارت واقعیتان از شما دربرابر کلاهبرداریهای احتمالی محافظت میکند. <ph name="BEGIN_LINK1" />درباره کارتهای مجازی بیشتر بدانید<ph name="END_LINK1" /></translation> <translation id="218608176142494674">همرسانی</translation> +<translation id="2189903024544168260">علاقه برداشته شد</translation> <translation id="2194856509914051091">مواردی که باید درنظر داشت</translation> <translation id="2200113223741723867">مدیریت همرسانی دادههای استفاده</translation> <translation id="2218567645332692482">پیمایشها به HTTPS ارتقا مییابد و پیشاز بار شدن سایتهایی که از HTTPS پشتیبانی نمیکنند، هشدار دریافت میکنید</translation> @@ -266,6 +275,7 @@ <translation id="2536728043171574184">مشاهده یک کپی آفلاین از این صفحه</translation> <translation id="2546283357679194313">کوکیها و دادههای سایت</translation> <translation id="2549516196460093976">بااستفاده از این رایانه لوحی میتوانید در رایانهای که این رمزینه پاسخسریع را نمایش میدهد به سیستم وارد شوید.</translation> +<translation id="2558569818338050235">سابقه مرورتان بر آگهیهایی که میبینید تأثیر میگذارد</translation> <translation id="2561519700418191927">پیشنمایش ویدیو</translation> <translation id="2567385386134582609">تصویر</translation> <translation id="2567545343356994513">محافظت سریعتر و پیشگیرانه دربرابر وبسایتها، بارگیریها، و افزونههای خطرناک</translation> @@ -277,6 +287,7 @@ <translation id="2604446170045642109">در تنظیمات، میتوانید طرحزمینه تیره را برای سایتها خاموش کنید.</translation> <translation id="2612676031748830579">شماره کارت</translation> <translation id="2625189173221582860">گذرواژه کپی شد</translation> +<translation id="2642087927315268160">برگ زیرین ورود به سیستم بسته شده است.</translation> <translation id="2645657967708199252">اتصال <ph name="CONNECTION_TYPE" /> ممکن است سرعت بارگیری شما را کاهش دهد</translation> <translation id="2647434099613338025">افزودن زبان</translation> <translation id="2649068648233607930">مرورگرتان توسط <ph name="DOMAIN" /> مدیریت میشود</translation> @@ -289,11 +300,13 @@ <translation id="2704606927547763573">کپی شد</translation> <translation id="2707726405694321444">بازآوری صفحه</translation> <translation id="271033894570825754">جدید</translation> +<translation id="2711073837061989559">دورههای آزمایشی</translation> <translation id="2718352093833049315">فقط در Wi-Fi</translation> <translation id="2718846868787000099">برای نشان دادن محتوا به زبانهای دلخواهتان، سایتهایی که بازدید میکنید میتوانند اولویتهایتان را ببینند</translation> <translation id="2723001399770238859">صدا</translation> <translation id="2732063072010454421">صدای بهتری را تجربه کنید</translation> <translation id="2739256783402597439">2G</translation> +<translation id="2746842245914314523">در تنظیمات Chrome میتوانید اطلاعات بیشتری درباره این ویژگیها کسب کنید. درطول دورههای آزمایشی، ممکن است تعاملتان با سایتها از زمانیکه از این ویژگیهای جدید استفاده نمیکنید خصوصیتر نباشد.</translation> <translation id="2760989362628427051">روشن شدن طرحزمینه تیره وقتی طرحزمینه تیره دستگاه یا «بهینهسازی باتری» روشن است</translation> <translation id="2762000892062317888">هماکنون</translation> <translation id="276969039800130567">با <ph name="USER_EMAIL_ADDRESS" /> وارد سیستم شد.</translation> @@ -362,6 +375,7 @@ <translation id="3037177537145227281">درحال پیگیری قیمت</translation> <translation id="3037517125981011456">درخواستهایی برای ورود به سیستم Chrome نشان میدهد</translation> <translation id="3046945242843292318">دفعه بعدی سریعتر به این سایت دسترسی پیدا کنید</translation> +<translation id="3055113921564083271">علایقی که برداشتهاید</translation> <translation id="3055259925215945098">نشانک منتقل شد</translation> <translation id="3055841435094910999">اطلاعات مربوط به استفاده شما از Chrome به Google ارسال میشود، اما با شما مرتبط نمیشود\n\nاگر Chrome خراب شود، ممکن است برخیاز اطلاعات شخصی در جزئیات آن خرابی لحاظ شود\n\nاگر همگامسازی را روشن کنید، ممکن است اطلاعات مربوط به نشانیهای وبی که بازدید کردهاید در سنجهها لحاظ شود</translation> <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> نشانک}one{<ph name="BOOKMARKS_COUNT_MANY" /> نشانک}other{<ph name="BOOKMARKS_COUNT_MANY" /> نشانک}}</translation> @@ -378,6 +392,7 @@ <translation id="3166827708714933426">میانبرهای پنجره و برگه</translation> <translation id="316694332262407393">Chrome ازقبل درحال اجرا شدن است.</translation> <translation id="3169472444629675720">کشف کردن</translation> +<translation id="3187472288455401631">سنجش آگهی</translation> <translation id="3207960819495026254">نشانکگذاری شده</translation> <translation id="3208584281581115441">اکنون بررسی شود</translation> <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> حذف شد</translation> @@ -408,6 +423,7 @@ <translation id="3290991969712132877">برای اینکه سریعتر به اینجا دسترسی پیدا کنید، این صفحه را از دکمه گزینههای «بیشتر» به صفحه اصلی اضافه کنید</translation> <translation id="3297344142967351106">دستیار صوتی</translation> <translation id="3303414029551471755">ادامه میدهید و محتوا را بارگیری میکنید؟</translation> +<translation id="3321367458490630980">علاقه اضافه شد</translation> <translation id="3334729583274622784">پسوند فایل تغییر کند؟</translation> <translation id="3341262203274374114">لغو دنبال کردن ممکن نیست. مشکلی پیش آمد.</translation> <translation id="3359667936385849800">استفاده از ارائهدهنده خدمات کنونی</translation> @@ -429,8 +445,10 @@ <translation id="3444179773590444986">مایلید بازخوردتان را درباره طرحزمینه تیره برای سایتها همرسانی کنید؟</translation> <translation id="3469665409713263828">{FILE_COUNT,plural, =1{یک بارگیری زمانبندی شد}one{# بارگیری زمانبندی شد}other{# بارگیری زمانبندی شد}}</translation> <translation id="3474624961160222204">ادامه دادن بهعنوان <ph name="NAME" /></translation> +<translation id="3475207952017699209">درباره آگهیهای شخصیشده</translation> <translation id="3478363558367712427">میتوانید موتور جستجویتان را انتخاب کنید</translation> <translation id="3493531032208478708">درباره محتوای پیشنهادی <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation> +<translation id="3495219333887281978">برگ زیرین ورود به سیستم نیمهباز شده است.</translation> <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation> <translation id="3502647154914451322">درصورت استفاده از Chrome، با <ph name="BEGIN_TOS_LINK" />شرایط خدمات Google<ph name="END_TOS_LINK" /> و <ph name="BEGIN_ATOS_LINK" />شرایط خدمات تکمیلی Google Chrome و Chrome OS<ph name="END_ATOS_LINK" /> موافقت میکنید.</translation> <translation id="3507132249039706973">«محافظت استاندارد» روشن است</translation> @@ -449,6 +467,7 @@ <translation id="3568688522516854065">برای اینکه به برگههای بازشده در سایر دستگاهها دسترسی داشته باشید، به سیستم وارد شوید و همگامسازی را روشن کنید</translation> <translation id="357465026686164600">تلفن بهعنوان کلید امنیتی</translation> <translation id="3577473026931028326">مشکلی پیش آمد. دوباره امتحان کنید.</translation> +<translation id="3578874072190212775">کمک به سایتها در مبارزه با تقلب و تشخیص روباتها از افراد</translation> <translation id="3587482841069643663">همه</translation> <translation id="3587596251841506391">به بهبود امنیت وب کمک کنید</translation> <translation id="3602290021589620013">پیشنمایش</translation> @@ -490,6 +509,7 @@ <translation id="3856096718352044181">لطفاً تأیید کنید این ارائهدهندهْ معتبر است یا بعداً دوباره امتحان کنید</translation> <translation id="3858860766373142691">نام</translation> <translation id="3861633093716975811">ویدیوهای پرطرفدار</translation> +<translation id="3862592757180800623">هروقت بخواهید میتوانید در تنظیمات Chrome نظرتان را عوض کنید. درطول دورههای آزمایشی، ممکن است تعاملتان با سایتها از زمانیکه از این ویژگیهای جدید استفاده نمیکنید خصوصیتر نباشد.</translation> <translation id="3892148308691398805">کپی کردن نوشتار</translation> <translation id="3894427358181296146">افزودن پوشه</translation> <translation id="3899682235662194879">بستن همه «برگههای ناشناس»</translation> @@ -498,6 +518,7 @@ <translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> روشن است</translation> <translation id="3927692899758076493">Sans Serif</translation> <translation id="3928666092801078803">ادغام کردن دادههای من</translation> +<translation id="3932390316856284148">برگ زیرین ورود به سیستم کاملاً باز شده است.</translation> <translation id="3934366560681368531">«</translation> <translation id="393697183122708255">هیچ جستجوی گفتاری فعالی در دسترس نیست</translation> <translation id="395377504920307820">استفاده بدون حساب</translation> @@ -509,6 +530,7 @@ <translation id="3969863827134279083">حرکت به بالا</translation> <translation id="397583555483684758">همگامسازی متوقف شده است</translation> <translation id="3976396876660209797">این میانبر را بردارید و دوباره ایجاد کنید</translation> +<translation id="3981902534690264083">تبلیغکنندگان میتوانند نحوه عملکرد آگهیها را درک کنند</translation> <translation id="3985215325736559418">میخواهید دوباره <ph name="FILE_NAME" /> را بارگیری کنید؟</translation> <translation id="3987993985790029246">کپی پیوند</translation> <translation id="4000212216660919741">صفحه اصلیِ آفلاین</translation> @@ -526,6 +548,7 @@ <translation id="4096227151372679484">جریان ذخیره نشانک بهصورت نیمه باز شده است</translation> <translation id="4099578267706723511">با ارسال آمار کاربرد و گزارشهای خرابی به Google، به بهتر شدن Chrome کمک کنید.</translation> <translation id="410351446219883937">پخش خودکار</translation> +<translation id="4106587138345390261">Chrome درحال کاوش ویژگیهای جدیدی است که به سایتهای امکان میدهد تجربه مرور یکسانی را با مصرف اطلاعات شخصی کمتر ارائه دهند</translation> <translation id="4108314971463891922">دنبال کردن</translation> <translation id="4108998448622696017">رویدادهای خطرناکی را که اتفاق میافتد شناسایی میکند و درباره آنها به شما هشدار میدهد.</translation> <translation id="4116038641877404294">برای استفاده از صفحهها در حالت آفلاین، آنها را بارگیری کنید</translation> @@ -546,6 +569,7 @@ <translation id="4248098802131000011">گذرواژه خود را از نقض داده و سایر مسائل امنیتی ایمن نگه دارید</translation> <translation id="4250229828105606438">نماگرفت</translation> <translation id="4256782883801055595">مجوزهای متنباز</translation> +<translation id="4262915912852657291"><ph name="BEGIN_BOLD" />انواع دادهای که استفاده میشود:<ph name="END_BOLD" /> سابقه مرور شما، سابقه سایتهایی که بااستفاده از Chrome در این دستگاه از آنها بازدید کردهاید.</translation> <translation id="4263656433980196874">میانای کاربر رضایت برای جستجوی گفتاری «دستیار» بهصورت کامل باز شد</translation> <translation id="4269820728363426813">کپی نشانی پیوند</translation> <translation id="4290281343757112331">بعداً بارگیری شود؟</translation> @@ -556,6 +580,7 @@ <translation id="4307992518367153382">موارد اصلی</translation> <translation id="4320177379694898372">اتصال اینترنتی ندارید</translation> <translation id="4321739720395210191">نمیتوان دوربین را باز کرد. دستگاه را بازراهاندازی و دوباره امتحان کنید.</translation> +<translation id="4324158606177867698">علاقهای که برداشتهاید در اینجا نشان داده میشود</translation> <translation id="433213510553688132">دنبال میکنید…</translation> <translation id="4335835283689002019">«مرور ایمن» خاموش است</translation> <translation id="4351244548802238354">بستن کادر گفتگو</translation> @@ -643,6 +668,7 @@ <translation id="4807098396393229769">نام روی کارت</translation> <translation id="481574578487123132">دستگاههای پیوندشده</translation> <translation id="4818017973810341238">راستیآزمایی پیوندهای دارایی دیجیتال در <ph name="VIOLATED_URL" /> انجام نشد</translation> +<translation id="4826163340425232009">برگ زیرین ورود به سیستم.</translation> <translation id="4831037795716408498">بارگیری محتوا</translation> <translation id="4834007576107377210">برای اینکه سابقه جستجویتان را درصورت امکان حذف کنید، به دستورالعملهای موتور جستجو مراجعه کنید</translation> <translation id="4834250788637067901">روشهای پرداخت، پیشنهادها، و نشانیهای استفادهشده در Google Pay</translation> @@ -697,6 +723,7 @@ <translation id="5091199029769593641">بهزودی وقتی برگه جدیدی باز میکنید، داستانهایی از <ph name="SITE_NAME" /> را خواهید دید. سایتهایی که دنبال میکنید در «حساب Google» شما ذخیره میشوند. میتوانید در تنظیمات «یافتهها»، آنها را مدیریت کنید.</translation> <translation id="5091249083535528968">دادههای استفاده گسترده</translation> <translation id="509429900233858213">خطایی روی داد.</translation> +<translation id="5098190077610408701">علاقه اضافه شود؟</translation> <translation id="5102401324271069229">اگر سایتی تلاش کند گذرواژه شما را بهسرقت ببرد، یا وقتی فایل مخربی بارگیری میکنید، Chrome ممکن است نشانیهای وب را بههمراه بخشهای کوچکی از محتوای صفحه به «مرور ایمن» ارسال کند</translation> <translation id="510275257476243843">۱ ساعت باقیمانده است</translation> <translation id="5115811374190515607">به <ph name="PRODUCT_NAME" /></translation> @@ -776,6 +803,7 @@ <translation id="5578795271662203820">جستجوی <ph name="SEARCH_ENGINE" /> برای این تصویر</translation> <translation id="5581519193887989363">هرزمان خواستید میتوانید مواردی را که میخواهید همگامسازی شود در <ph name="BEGIN_LINK1" />تنظیمات<ph name="END_LINK1" /> انتخاب کنید.</translation> <translation id="5590372121997663538">این رایانه را بهخاطر بسپار</translation> +<translation id="559871659088672663">این ویژگی فعلاً درحال توسعه است</translation> <translation id="5599455543593328020">حالت ناشناس</translation> <translation id="5599941490345670218">«دستیار Google» میتواند کنشهایی را در وبسایتها برایتان انجام دهد</translation> <translation id="5620163320393916465">گذرواژهای ذخیره نشده است</translation> @@ -870,6 +898,7 @@ <translation id="6069177176307973611">مرور تنظیمات حریمخصوصی و امنیت</translation> <translation id="6070730414166672373">درحال تماس با بانک\u2026</translation> <translation id="6085886413119427067">تعیین چگونگی اتصال به وبسایتها ازطریق اتصالی ایمن</translation> +<translation id="6091413777268123602">با دورههای آزمایشی «جعبه ایمنی حریمخصوصی»، سایتها میتوانند تجربه مرور یکسانی را با مصرف دادههای شخصی کمتر ارائه دهند. یعنی حریمخصوصی شما افزایش و ردیابی بینسایتی کاهش پیدا میکند. هروقت دورههای آزمایشی جدیدی برای آزمایش کردن آماده شد، آنها را اضافه میکنیم.</translation> <translation id="60923314841986378"><ph name="HOURS" /> ساعت باقیمانده است</translation> <translation id="6095578583683628124">اگر موتور جستجوی پیشفرضتان هم Google باشد، پیشنهادهای بهتر و مرتبطتری درباره موضوع خواهید دید</translation> <translation id="6108923351542677676">تنظیم در حال انجام است...</translation> @@ -996,11 +1025,13 @@ <translation id="671481426037969117">تایمر <ph name="FQDN" /> شما متوقف شد. دوباره فردا شروع به کار میکند.</translation> <translation id="6715020873764921614">میخواهید <ph name="FILE_NAME" /> (<ph name="FILE_SIZE" />) درهرصورت بارگیری شود؟</translation> <translation id="6719634564325948108">با رمزینه پاسخسریع وارد میشوید؟</translation> +<translation id="6737612727720318154">اگر فکر میکنید آگهیهای مربوط به علاقه یا سایتی خاص برایتان مفید خواهد بود، آن را مجاز کنید</translation> <translation id="6738516213925468394">دادهها با <ph name="BEGIN_LINK" />گذرعبارت همگامسازی<ph name="END_LINK" /> شما در <ph name="TIME" /> رمز میشود. برای شروع همگامسازی، آن را وارد کنید.</translation> <translation id="6738867403308150051">در حال بارگیری…</translation> <translation id="6751521182688001123">بهسرعت برگه جدیدی باز کنید. برای ویرایش این میانبر، لمس کنید و نگه دارید.</translation> <translation id="6756507620369789050">همرسانی بازخورد</translation> <translation id="6767294960381293877">فهرست نیمهباز دستگاههایی که میتوان با آنها برگه همرسانی کرد.</translation> +<translation id="6770042910635026163">سایتهایی که با بازدید از آنها علایق شما تعریف میشود</translation> <translation id="6770602306803890733">امنیت را برای شما و همه کاربران دیگر وب بهبود میبخشد</translation> <translation id="6783942555455976443">این صفحه را برای خواندن در فرصتی دیگر ذخیره کنید و یادآوری دریافت کنید</translation> <translation id="6795633245022906657">بهسرعت برگه جدیدی باز کنید. برای ویرایش این میانبر، به «تنظیمات» بروید.</translation> @@ -1061,6 +1092,7 @@ <translation id="7093803425429738190">افزودن احساس</translation> <translation id="7105047059074518658">برای مرور آسانتر در دستگاهها به سیستم وارد شوید</translation> <translation id="7106762743910369165">سازمانتان مرورگر را مدیریت میکند</translation> +<translation id="7130504491556983216">وقتی وب را مرور میکنید، فهرستی از علایق شما در اینجا نشان داده خواهد شد</translation> <translation id="7138678301420049075">دیگر</translation> <translation id="7143462160780459030">نماگرفت ثبت نشد. دوباره امتحان کنید.</translation> <translation id="7146622961999026732">بهنظر میرسد این سایتها و برنامهها برای شما مهم هستند:</translation> @@ -1095,6 +1127,7 @@ <translation id="7339898014177206373">پنجرهٔ جدید</translation> <translation id="7340958967809483333">گزینههای «یافتهها»</translation> <translation id="7352339641508007922">برای ثبت نماگرفت طولانی، بکشید</translation> +<translation id="7352531447904559593">درباره شخصیسازی آگهی مبتنی بر مرورگر بیشتر بدانید</translation> <translation id="7352651011704765696">مشکلی پیش آمد</translation> <translation id="7352939065658542140">ویدیو</translation> <translation id="7353894246028566792">{NUM_SELECTED,plural, =1{اشتراکگذاری ۱ مورد انتخابشده}one{اشتراکگذاری # مورد انتخابشده}other{اشتراکگذاری # مورد انتخابشده}}</translation> @@ -1150,6 +1183,7 @@ <translation id="7619072057915878432">بهدلیل نقصهایی در شبکه، بارگیری <ph name="FILE_NAME" /> انجام نشد.</translation> <translation id="7626032353295482388">به Chrome خوش آمدید</translation> <translation id="7630202231528827509">نشانی وب ارائهدهنده</translation> +<translation id="7634280112532283638">کاهش هرزنامه و تقلب</translation> <translation id="7638584964844754484">گذرعبارت نادرست است</translation> <translation id="7641339528570811325">پاک کردن دادههای محصول مرور…</translation> <translation id="7646772052135772216">همگامسازی گذرواژه کار نمیکند</translation> @@ -1209,6 +1243,7 @@ <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> قدیمی است.</translation> <translation id="7944772052836377867">همگامسازی باید هویتتان را تأیید کند</translation> <translation id="7947953824732555851">پذیرش و ورود به سیستم</translation> +<translation id="7959157064403954786">امتحان کردن آگهیهای شفافتر</translation> <translation id="7961015016161918242">هرگز</translation> <translation id="7961926449547174351">دسترسی به «فضای ذخیرهسازی» را غیرفعال کردهاید، لطفاً برای فعال کردن آن به «تنظیمات» بروید.</translation> <translation id="7963646190083259054">ارائهدهنده:</translation> @@ -1288,6 +1323,7 @@ <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> بارگیری بازیابی شد</translation> <translation id="8364299278605033898">مشاهده وبسایتهای پرطرفدار</translation> <translation id="8368001212524806591">پیگیری قیمت</translation> +<translation id="8383226135083126309"><ph name="BEGIN_BOLD" />نحوه استفاده ما از این دادهها:<ph name="END_BOLD" /> Chrome میتواند علایق شما را برآورد کند. بعداً، سایتی که از آن بازدید میکنید میتواند برای شخصی کردن آگهیهایی که به شما نشان میدهد از Google بخواهد علایق شما را ببیند.</translation> <translation id="8387617938027387193">هویتتان را به تأیید برسانید</translation> <translation id="8393700583063109961">ارسال پیام</translation> <translation id="8394720698884623075">نشانیهای وب را با فهرست سایتهای ناامنی که در Chrome ذخیره شده است مقایسه میکند</translation> @@ -1325,6 +1361,7 @@ <translation id="8505766168025405649">دیدن اعلان وضعیت بارگیری</translation> <translation id="8514477925623180633">صادر کردن گذرواژههای ذخیرهشده در Chrome</translation> <translation id="8516012719330875537">ویرایشگر تصویر</translation> +<translation id="8516431725144212809">علایق شما بهطوریکه Chrome برآورد کرده است</translation> <translation id="8523928698583292556">حذف گذرواژه ذخیرهشده</translation> <translation id="8540136935098276800">نشانی وبی وارد کنید که بهدرستی قالببندی شده باشد</translation> <translation id="854522910157234410">باز کردن این صفحه</translation> @@ -1356,6 +1393,7 @@ <translation id="8659579665266920523">نحوه جستجو با Chrome</translation> <translation id="8662811608048051533">شما را از سیستم اکثر سایتها خارج میکند.</translation> <translation id="8664979001105139458">نام فایل از قبل وجود دارد</translation> +<translation id="8667760277771450375">درحال کاوش روشهایی برای محدود کردن ردیابی بینسایتی و درعینحال امکان دادن به سایتها برای متوقف کردن هرزآگهی و تقلب هستیم.</translation> <translation id="8676789164135894283">درستیسنجیهای ورود به سیستم</translation> <translation id="867767487203716855">بهروزرسانی بعدی</translation> <translation id="8683039184091909753">تصویر</translation> @@ -1464,6 +1502,7 @@ <translation id="962979164594783469">نصب این برنامه</translation> <translation id="96681097142096641">صفحه سادهشده نشان داده شود؟</translation> <translation id="968900484120156207">صفحاتی را که بازدید کردهاید، اینجا نمایش داده میشوند</translation> +<translation id="969573236494556070">محدود کردن همرسانی بین سایتها</translation> <translation id="970715775301869095"><ph name="MINUTES" /> دقیقه باقیمانده است</translation> <translation id="981121421437150478">آفلاین</translation> <translation id="983192555821071799">بستن همه برگهها</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb index 1d2324fd..d9cde55 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
@@ -10,6 +10,7 @@ <translation id="1045899828449635435">ان سائٹس سے ڈیٹا بھی صاف کریں؟</translation> <translation id="1049743911850919806">پوشیدگی</translation> <translation id="10614374240317010">کبھی بھی محفوظ نہیں کیا ہوا</translation> +<translation id="1062628064301375934">مزید نجی ویب بنانے میں ہماری مدد کریں</translation> <translation id="107147699690128016">اگر آپ فائل ایکسٹینشن تبدیل کرتے ہیں تو فائل مختلف ایپلیکیشن میں کھل سکتی ہے اور ممکنہ طور پر آپ کے آلہ کے لیے نقصان دہ ہو سکتی ہے۔</translation> <translation id="1089606299949659462">جائزہ مکمل ہو گیا!</translation> <translation id="1095761715416917775">یقینی بنائیں کہ آپ ہمیشہ اپنے مطابقت پذیر ڈیٹا تک رسائی حاصل کر سکتے ہیں</translation> @@ -106,7 +107,13 @@ <translation id="1554532453982918912">Chrome کو ان لوگوں کے لیے بہتر بنانے میں مدد کریں جو اسے آپ کی طرح استعمال کرتے ہیں</translation> <translation id="1558391695376153246">پوشیدگی ٹیبز بند کریں</translation> <translation id="1571304935088121812">صارف نام کاپی کریں</translation> +<translation id="1573632872794824374">ہم نئی خصوصیات دریافت کر رہے ہیں جو سائٹس کو آپ کی کم معلومات کا استعمال کر کے وہی براؤزنگ تجربہ فراہم کرنے کی اجازت دیتی ہیں</translation> <translation id="1592864538817356322">معیاری تحفظ:</translation> +<translation id="161647866166517041">اسپام اور دھوکہ دہی میں تخفیف سائٹس کو دھوکہ دہی سے لڑنے اور بوٹس کو لوگوں سے ممتاز کرنے میں مدد کرنے کے لیے ٹرسٹ ٹوکنز پر انحصار کرتی ہے۔ + +کسی سائٹ کے ساتھ آپ کے تعامل کی بنیاد پر، جیسے کہ کسی اکاؤنٹ میں باقاعدگی سے سائن ان کرنے سے وہ سائٹ آپ کے براؤزر کے لیے ٹرسٹ ٹوکن جاری کر سکتی ہے۔ بعد میں، اگر آپ دیگر سائٹس کو ملاحظہ کرتے ہیں تو وہ ایک درست ٹرسٹ ٹوکن چیک کرتی ہیں اور اس کے حاصل ہونے پر ان کا آپ کے ساتھ ایک شخص کی طرح سلوک کرنے کا زیادہ امکان ہوتا ہے نہ کہ بوٹ کی طرح۔ + +ٹرسٹ ٹوکنز ویب پر رازداری کو بہتر بناتے ہیں اور آپ کون ہیں یہ معلوم کرنے کے لیے استعمال نہیں کیے جا سکتے۔</translation> <translation id="1628019612362412531">{NUM_SELECTED,plural, =1{1 منتخب آئٹم کو ہٹائیں}other{# منتخب آئٹمز کو ہٹائیں}}</translation> <translation id="1633659023549081553">Chrome کے ہوم پیج پر نیا مواد دریافت کریں</translation> <translation id="1641113438599504367">محفوظ براؤزنگ</translation> @@ -167,6 +174,7 @@ <translation id="200114059308480249">Google تلاشیوں میں آس پاس کا متن شامل کریں؟</translation> <translation id="2013642289801508067">{FILE_COUNT,plural, =1{# فائل}other{# فائلیں}}</translation> <translation id="2015836039326522978"><ph name="APP_NAME" /> Chrome میں کھلے گی۔ جاری رکھ کر آپ، <ph name="BEGIN_LINK1" />Google کی سروس کی شرائط<ph name="END_LINK1" /> اور <ph name="BEGIN_LINK2" />Google Chrome اور Chrome OS کی اضافی سروس کی شرائط سے اتفاق کرتے ہیں<ph name="END_LINK2" />۔ <ph name="BEGIN_LINK3" />رازداری کی پالیسی<ph name="END_LINK3" /> بھی لاگو ہوتی ہے۔</translation> +<translation id="2019145049163614359">دلچسپی ہٹائیں؟</translation> <translation id="2020309681647789787">آپ کو اپنے سِنک کردہ سبھی آلات پر اپنی سرگزشت دکھائی دیں گی تاکہ آپ کیا کر رہے تھے اسے جاری رکھ سکیں</translation> <translation id="2021896219286479412">پوری اسکرین کے سائٹ کنٹرولز</translation> <translation id="2038563949887743358">ڈیسک ٹاپ سائٹ کی درخواست کو آن کریں</translation> @@ -203,6 +211,7 @@ <translation id="2175927920773552910">QR کوڈ</translation> <translation id="2176767904800337188">ورچوئل کارڈ آپ کے اصل کارڈ کو چھپاتا ہے تاکہ آپ کی ممکنہ دھوکہ دہی سے حفاظت کرنے میں مدد کر سکے۔ <ph name="BEGIN_LINK1" />ورچوئل کارڈز کے بارے میں مزید جانیں<ph name="END_LINK1" /></translation> <translation id="218608176142494674">اشتراک</translation> +<translation id="2189903024544168260">دلچسپی کو ہٹا دیا گیا</translation> <translation id="2194856509914051091">قابل غور چیزیں</translation> <translation id="2200113223741723867">استعمال کے ڈیٹا کے اشتراک کا نظم کریں</translation> <translation id="2218567645332692482">نیویگیشنز کو HTTPS میں اپ گریڈ کریں اور ایسی سائٹس جو اسے سپورٹ نہیں کرتی ہیں وہ لوڈ کرنے سے پہلے آپ کو متنبہ کریں</translation> @@ -266,6 +275,7 @@ <translation id="2536728043171574184">اس صفحہ کی ایک آف لائن کاپی دیکھی جا رہی ہے</translation> <translation id="2546283357679194313">کوکیز اور سائٹ ڈیٹا</translation> <translation id="2549516196460093976">آپ اس ٹیبلیٹ کا استعمال کمپیوٹر پر لاگ ان کرنے کے لیے کر سکتے ہیں جو یہ QR کوڈ ڈسپلے کر رہا ہے۔</translation> +<translation id="2558569818338050235">آپ کی براؤزنگ کی سرگزشت آپ کے دیکھے جانے والے اشتہارات کو متاثر کرتی ہے</translation> <translation id="2561519700418191927">ویڈیو کے پیش مناظر</translation> <translation id="2567385386134582609">تصویر</translation> <translation id="2567545343356994513">ویب سائٹس، ڈاؤن لوڈز اور ایکسٹینشنز سے تیز، فعال حفاظت</translation> @@ -277,6 +287,7 @@ <translation id="2604446170045642109">آپ اپنی ترتیبات میں سائٹس کے لیے گہری تھیم کو آف کر سکتے ہیں۔</translation> <translation id="2612676031748830579">کارڈ نمبر</translation> <translation id="2625189173221582860">پاس ورڈ کاپی ہو گیا</translation> +<translation id="2642087927315268160">سائن ان کرنے کے لیے نیچے کی شیٹ بند ہے۔</translation> <translation id="2645657967708199252">آپ کے <ph name="CONNECTION_TYPE" /> کنکشن سے آپ کا ڈاؤن لوڈ سست ہو سکتا ہے</translation> <translation id="2647434099613338025">زبان شامل کریں</translation> <translation id="2649068648233607930">آپ کا براؤزر <ph name="DOMAIN" /> کے زیر انتظام ہے</translation> @@ -289,11 +300,13 @@ <translation id="2704606927547763573">کاپی کیا</translation> <translation id="2707726405694321444">صفحہ ریفریش کریں</translation> <translation id="271033894570825754">نیا</translation> +<translation id="2711073837061989559">ٹرائلز</translation> <translation id="2718352093833049315">صرف Wi-Fi پر</translation> <translation id="2718846868787000099">اپنی ترجیحی زبانوں میں مواد دکھانے کے لیے، آپ جو سائٹس ملاحظہ کرتے ہیں وہ آپ کی ترجیحات دیکھ سکتی ہیں</translation> <translation id="2723001399770238859">آڈیو</translation> <translation id="2732063072010454421">ایک بہتر صوتی تجربہ حاصل کریں</translation> <translation id="2739256783402597439">2G</translation> +<translation id="2746842245914314523">آپ Chrome کی ترتیبات میں ان خصوصیات کے بارے میں مزید جان سکتے ہیں۔ ٹرائلز کے دوران، سائٹس کے ساتھ آپ کا تعامل ان نئی خصوصیات کے بغیر اس سے زیادہ نجی نہیں ہو سکتا ہے۔</translation> <translation id="2760989362628427051">اپنے آلہ کے بیٹری سیور یا گہری تھیم کے آن ہونے پر گہری تھیم آن کریں</translation> <translation id="2762000892062317888">ابھی ابھی</translation> <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> کے بطور سائن ان کردہ۔</translation> @@ -362,6 +375,7 @@ <translation id="3037177537145227281">قیمت ٹریک کی جا رہی ہے</translation> <translation id="3037517125981011456">Chrome میں سائن ان کرنے کے لیے پرامپٹس دکھاتا ہے</translation> <translation id="3046945242843292318">اگلی بار اس سائٹ تک زیادہ تیزی سے رسائی حاصل کریں</translation> +<translation id="3055113921564083271">آپ کی ہٹائی گئی دلچسپیاں</translation> <translation id="3055259925215945098">بُک مارک منتقل کیا گیا</translation> <translation id="3055841435094910999">آپ کے Chrome کے استعمال کے بارے میں معلومات Google کو بھیجی جاتی ہے، لیکن یہ آپ سے منسلک نہیں ہے\n\nاگر Chrome کریش ہو جاتا ہے تو کریش کی تفصیلات میں کچھ ذاتی معلومات شامل ہو سکتی ہیں\n\nاگر آپ مطابقت پذیری کو آن کرتے ہیں تو میٹرکس میں آپ کے ملاحظہ کردہ URLs کے بارے میں معلومات بھی شامل ہو سکتی ہیں</translation> <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> بُک مارک}other{<ph name="BOOKMARKS_COUNT_MANY" /> بُک مارکس}}</translation> @@ -378,6 +392,7 @@ <translation id="3166827708714933426">ٹیب اور ونڈو شارٹ کٹس</translation> <translation id="316694332262407393">Chrome یہاں پہلے سے ہی چل رہا ہے۔</translation> <translation id="3169472444629675720">دریافت کریں</translation> +<translation id="3187472288455401631">Ad measurement</translation> <translation id="3207960819495026254">بُک مارک بنایا ہوا</translation> <translation id="3208584281581115441">ابھی چیک کریں</translation> <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> کو حذف کر دیا گیا</translation> @@ -408,6 +423,7 @@ <translation id="3290991969712132877">یہاں تیزی سے پہنچنے کے لئے، مزید اختیارات کے بٹن سے اس صفحے کو اپنی ہوم اسکرین میں شامل کریں</translation> <translation id="3297344142967351106">صوتی معاونت</translation> <translation id="3303414029551471755">مواد ڈاؤن لوڈ کرنے کیلئے آگے بڑھیں؟</translation> +<translation id="3321367458490630980">دلچسپی کو شامل کیا گیا</translation> <translation id="3334729583274622784">فائل ایکسٹینشن تبدیل کریں؟</translation> <translation id="3341262203274374114">پیروی ختم نہیں کر سکتے۔ کچھ غلط ہو گیا۔</translation> <translation id="3359667936385849800">اپنے موجودہ سروس فراہم کنندہ کو استعمال کریں</translation> @@ -429,8 +445,10 @@ <translation id="3444179773590444986">سائٹس کیلئے گہری تھیم پر تاثرات کا اشتراک کریں؟</translation> <translation id="3469665409713263828">{FILE_COUNT,plural, =1{1 ڈاؤن لوڈ شیڈول کیا گیا}other{# ڈاؤن لوڈز شیڈول کیے گئے}}</translation> <translation id="3474624961160222204">بطور <ph name="NAME" /> جاری رکھیں</translation> +<translation id="3475207952017699209">ذاتی نوعیت کے اشتہارات کے بارے میں</translation> <translation id="3478363558367712427">آپ اپنا سرچ انجن منتخب کر سکتے ہیں</translation> <translation id="3493531032208478708">تجویز کردہ مواد کے بارے میں <ph name="BEGIN_LINK" />مزید جانیں<ph name="END_LINK" /></translation> +<translation id="3495219333887281978">سائن ان کرنے کے لیے نیچے کی شیٹ آدھی اونچائی پر کھلی ہوئی ہے۔</translation> <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation> <translation id="3502647154914451322">Chrome کا استعمال کر کے، آپ <ph name="BEGIN_TOS_LINK" />Google کی سروس کی شرائط<ph name="END_TOS_LINK" /> اور <ph name="BEGIN_ATOS_LINK" />Google Chrome اور Chrome OS کی اضافی سروس کی شرائط<ph name="END_ATOS_LINK" /> سے اتفاق کرتے ہیں۔</translation> <translation id="3507132249039706973">معیاری تحفظ آن ہے</translation> @@ -449,6 +467,7 @@ <translation id="3568688522516854065">اپنے دیگر آلات سے اپنے ٹیبز حاصل کرنے کیلئے، سائن ان کریں اور سِنک کو آن کریں</translation> <translation id="357465026686164600">سیکیورٹی کلید کے بطور فون</translation> <translation id="3577473026931028326">کچھ غلط ہو گیا۔ دوبارہ کوشش کریں۔</translation> +<translation id="3578874072190212775">دھوکہ دہی سے لڑنے اور بوٹس کو لوگوں سے ممتاز کرنے میں سائٹس کی مدد کریں</translation> <translation id="3587482841069643663">سبھی</translation> <translation id="3587596251841506391">ویب پر سیکیورٹی کو بہتر بنانے میں مدد کریں</translation> <translation id="3602290021589620013">پیش منظر</translation> @@ -490,6 +509,7 @@ <translation id="3856096718352044181">براہ کرم توثیق کریں کہ یہ درست فراہم کنندہ ہے یا بعد میں دوبارہ کوشش کریں</translation> <translation id="3858860766373142691">نام</translation> <translation id="3861633093716975811">مقبول ویڈیوز</translation> +<translation id="3862592757180800623">آپ Chrome کی ترتیبات میں کسی بھی وقت اپنا ارادہ بدل سکتے ہیں۔ ٹرائلز کے دوران، سائٹس کے ساتھ آپ کا تعامل ان نئی خصوصیات کے بغیر اس سے زیادہ نجی نہیں ہو سکتا ہے۔</translation> <translation id="3892148308691398805">ٹیکسٹ کاپی کریں</translation> <translation id="3894427358181296146">فولڈر کا اضافہ کریں</translation> <translation id="3899682235662194879">سبھی پوشیدگی ٹیبز بند کریں</translation> @@ -498,6 +518,7 @@ <translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> آن ہے</translation> <translation id="3927692899758076493">Sans Serif</translation> <translation id="3928666092801078803">میرا ڈیٹا ملائیں</translation> +<translation id="3932390316856284148">سائن ان کرنے کے لیے نیچے کی شیٹ مکمل اونچائی پر کھلی ہوئی ہے۔</translation> <translation id="3934366560681368531">“</translation> <translation id="393697183122708255">کوئی فعال صوتی تلاش دستیاب نہیں ہے</translation> <translation id="395377504920307820">اکاؤنٹ کے بغیر استعمال کریں</translation> @@ -509,6 +530,7 @@ <translation id="3969863827134279083">اوپر جائیں</translation> <translation id="397583555483684758">مطابقت پذیری نے کام کرنا بند کر دیا ہے</translation> <translation id="3976396876660209797">ہٹا کر یہ شارٹ کٹ تخلیق کریں</translation> +<translation id="3981902534690264083">مشتہرین اشتہارات کی کارکردگی کا طریقہ سمجھ سکتے ہیں</translation> <translation id="3985215325736559418">کیا آپ <ph name="FILE_NAME" /> کو دوبارہ ڈاؤن لوڈ کرنا چاہتے ہیں؟</translation> <translation id="3987993985790029246">لنک کاپی کریں</translation> <translation id="4000212216660919741">آف لائن ہوم</translation> @@ -526,6 +548,7 @@ <translation id="4096227151372679484">بُک مارک محفوظ کرنے کا فلو نصف اونچائی پر کھلا ہوا ہے</translation> <translation id="4099578267706723511">Google کو استعمال کے اعداد و شمار اور کریش رپورٹس بھیج کر Chrome کو بہتر بنانے میں مدد کریں۔</translation> <translation id="410351446219883937">آٹوپلے</translation> +<translation id="4106587138345390261">Chrome نئی خصوصیات کو دریافت کر رہا ہے جو سائٹس کو آپ کی کم معلومات کا استعمال کر کے وہی براؤزنگ تجربہ فراہم کرنے کی اجازت دیتی ہیں</translation> <translation id="4108314971463891922">پیروی کریں</translation> <translation id="4108998448622696017">جب خطرناک ایونٹس ہوتے ہیں تو ان کا پتہ لگا کر آپ کو ان کے بارے میں متنبہ کرتا ہے۔</translation> <translation id="4116038641877404294">آف لائن صفحات استعمال کرنے کے لیے انہیں ڈاؤن لوڈ کریں</translation> @@ -546,6 +569,7 @@ <translation id="4248098802131000011">ڈیٹا کی خلاف ورزیوں اور سیکیورٹی کے دیگر معاملات سے اپنا پاس ورڈ محفوظ رکھیں</translation> <translation id="4250229828105606438">اسکرین شاٹ</translation> <translation id="4256782883801055595">اوپن سورس لائسنسز</translation> +<translation id="4262915912852657291"><ph name="BEGIN_BOLD" />کون سا ڈیٹا استعمال کیا جاتا ہے:<ph name="END_BOLD" /> آپ کی براؤزنگ کی سرگزشت، ان سائٹس کا ریکارڈ جو آپ اس آلے پر Chrome کا استعمال کر کے ملاحظہ کر چکے ہیں۔</translation> <translation id="4263656433980196874">اسسٹنٹ صوتی تلاش رضامندی ui پوری اونچائی پر کھلی ہوئی ہے</translation> <translation id="4269820728363426813">لنک کا پتہ کاپی کریں</translation> <translation id="4290281343757112331">اس کے بجائے آپ بعد میں ڈاؤن لوڈ کریں؟</translation> @@ -556,6 +580,7 @@ <translation id="4307992518367153382">بنیادی باتیں</translation> <translation id="4320177379694898372">کوئی انٹرنیٹ کنکشن نہیں ہے</translation> <translation id="4321739720395210191">اپنا کیمرا نہیں کھول سکتے۔ اپنا آلہ ری سٹارٹ کریں اور دوبارہ کوشش کریں۔</translation> +<translation id="4324158606177867698">آپ کی ہٹائی گئی دلچسپی یہاں ظاہر ہوگی</translation> <translation id="433213510553688132">پیروی جاری ہے...</translation> <translation id="4335835283689002019">محفوظ براؤزنگ آف ہے</translation> <translation id="4351244548802238354">ڈائیلاگ بند کریں</translation> @@ -643,6 +668,7 @@ <translation id="4807098396393229769">کارڈ پر نام</translation> <translation id="481574578487123132">لنک کردہ آلات</translation> <translation id="4818017973810341238"><ph name="VIOLATED_URL" /> پر ڈیجیٹل اثاثہ لنکس کی توثیق ناکام ہوگئی</translation> +<translation id="4826163340425232009">سائن ان کرنے کے لیے نیچے کی شیٹ۔</translation> <translation id="4831037795716408498">مواد ڈاؤن لوڈ کریں</translation> <translation id="4834007576107377210">اگر قابل اطلاق ہو تو اپنی تلاش کی سرگزشت کو حذف کرنے کیلئے اپنے سرچ انجن کی ہدایات دیکھیں</translation> <translation id="4834250788637067901">Google Pay استعمال کرنے والے ادائیگی کے طریقے، پیشکشیں اور پتے</translation> @@ -697,6 +723,7 @@ <translation id="5091199029769593641">جلد ہی، نیا ٹیب کھولنے پر آپ کو <ph name="SITE_NAME" /> سے کہانیاں دکھائی دیں گی۔ آپ جن سائٹس کی پیروی کرتے ہیں انہیں آپ کے Google اکاؤنٹ میں محفوظ کیا جاتا ہے۔ آپ Discover کی ترتیبات میں ان کا نظم کر سکتے ہیں۔</translation> <translation id="5091249083535528968">توسیع کردہ استعمال کا ڈیٹا</translation> <translation id="509429900233858213">ایک خرابی پیش آگئی۔</translation> +<translation id="5098190077610408701">دلچسپی شامل کریں؟</translation> <translation id="5102401324271069229">اگر کوئی سائٹ آپ کا پاس ورڈ چرانے کی کوشش کرتی ہے یا جب آپ نقصان دہ فائل ڈاؤن لوڈ کرتے ہیں تو Chrome محفوظ براؤزنگ پر صفحہ کے مواد کے کچھ حصوں سمیت URLs بھیج سکتا ہے</translation> <translation id="510275257476243843">1 گھنٹہ باقی</translation> <translation id="5115811374190515607"><ph name="PRODUCT_NAME" /> تک</translation> @@ -776,6 +803,7 @@ <translation id="5578795271662203820">اس تصویر کیلئے <ph name="SEARCH_ENGINE" /> تلاش کریں</translation> <translation id="5581519193887989363">آپ <ph name="BEGIN_LINK1" />ترتیبات<ph name="END_LINK1" /> میں کسی بھی وقت اس بات کا انتخاب کر سکتے ہیں کہ کس چیز کی مطابقت پذیری کرنی ہے۔</translation> <translation id="5590372121997663538">اس کمپیوٹر کو یاد رکھیں</translation> +<translation id="559871659088672663">یہ خصوصیت فی الحال زیر تشکیل ہے</translation> <translation id="5599455543593328020">پوشیدگی وضع</translation> <translation id="5599941490345670218">Google اسسٹنٹ آپ کیلئے ویب سائٹس پر کاروائیاں مکمل کر سکتی ہے</translation> <translation id="5620163320393916465">کوئی محفوظ کردہ پاس ورڈز نہیں</translation> @@ -870,6 +898,7 @@ <translation id="6069177176307973611">رازداری اور سیکورٹی کی ترتیبات کا جائزہ لیں</translation> <translation id="6070730414166672373">آپ کے بینک سے رابطہ کیا جا رہا ہے</translation> <translation id="6085886413119427067">کسی محفوظ کنکشن پر ویب سائٹس سے منسلک ہونے کے طریقے کا تعین کرتا ہے</translation> +<translation id="6091413777268123602">رازداری سینڈ باکس کے ٹرائلز کے ساتھ، سائٹس آپ کے کم ڈیٹا کا استعمال کر کے وہی براؤزنگ تجربہ فراہم کر سکتی ہیں۔ اس کا مطلب ہے کہ آپ کے لیے زیادہ رازداری اور کم کراس سائٹ ٹریکنگ۔ ہم نئے ٹرائلز شامل کریں گے جب وہ ٹیسٹ کے لیے تیار ہوں گے۔</translation> <translation id="60923314841986378"><ph name="HOURS" /> گھنٹے باقی</translation> <translation id="6095578583683628124">اگر Google بھی آپ کا ڈیفالٹ سرچ انجن ہے تو آپ کو بہتر، سیاق و سباق کے لحاظ سے متعلقہ تجاویز دکھائی دیں گی</translation> <translation id="6108923351542677676">سیٹ اپ جاری ہے…</translation> @@ -996,11 +1025,13 @@ <translation id="671481426037969117">آپ کا <ph name="FQDN" /> ٹائمر بند ہو گیا ہے۔ یہ کل دوبارہ شروع ہو جائے گا۔</translation> <translation id="6715020873764921614">کیا آپ بہر صورت <ph name="FILE_NAME" /> (<ph name="FILE_SIZE" />) کو ڈاؤن لوڈ کرنا چاہتے ہیں؟</translation> <translation id="6719634564325948108">QR کوڈ کے ساتھ منسلک ہوں؟</translation> +<translation id="6737612727720318154">اگر آپ کو لگتا ہے کہ آئٹم سے متعلقہ اشتہارات آپ کے لیے مفید ہوں گے تو کسی دلچسپی یا سائٹ کی اجازت دیں</translation> <translation id="6738516213925468394">آپ کے ڈیٹا کی آپ کے <ph name="BEGIN_LINK" />مطابقت پذیر پاس فریز<ph name="END_LINK" /> کے ساتھ <ph name="TIME" /> کو مرموز کاری کی گئی تھی۔ مطابقت پذیری شروع کرنے کیلئے اسے درج کریں۔</translation> <translation id="6738867403308150051">ڈاؤن لوڈ ہو رہے ہیں…</translation> <translation id="6751521182688001123">فوری طور پر ایک نیا ٹیب کھولیں۔ اس شارٹ کٹ میں ترمیم کرنے کے لیے، ٹچ کریں اور دبائے رکھیں۔</translation> <translation id="6756507620369789050">تاثرات کا اشتراک کریں</translation> <translation id="6767294960381293877">ان آلات کی فہرست جن کے ساتھ ٹیب کا اشتراک کرنا ہے نصف اونچائی پر کھلی ہوئی ہے۔</translation> +<translation id="6770042910635026163">آپ کی ملاحظہ کی جانے والی سائٹس آپ کی دلچسپیوں کا تعین کرتی ہیں</translation> <translation id="6770602306803890733">آپ کے لیے اور ویب پر سبھی کے لیے سیکیورٹی کو بہتر بناتی ہے</translation> <translation id="6783942555455976443">یہ صفحہ بعد کے لیے محفوظ کریں اور یاد دہانی حاصل کریں</translation> <translation id="6795633245022906657">فوری طور پر ایک نیا ٹیب کھولیں۔ اس شارٹ کٹ میں ترمیم کرنے کے لیے، ترتیبات پر جائیں۔</translation> @@ -1061,6 +1092,7 @@ <translation id="7093803425429738190">جذبات شامل کریں</translation> <translation id="7105047059074518658">تمام آلات پر آسانی سے براؤز کرنے کے لیے سائن ان کریں</translation> <translation id="7106762743910369165">آپ کا براؤزر آپ کی تنظیم کے زیر انتظام ہے</translation> +<translation id="7130504491556983216">آپ کے ویب براؤز کرتے ہی دلچسپیوں کی ایک فہرست یہاں ظاہر ہوگی</translation> <translation id="7138678301420049075">دوسرا</translation> <translation id="7143462160780459030">اسکرین شاٹ نہیں لے سکتے۔ دوبارہ کوشش کریں۔</translation> <translation id="7146622961999026732">یہ سائٹیں اور ایپس آپ کے لیے اہم معلوم ہوتی ہیں:</translation> @@ -1095,6 +1127,7 @@ <translation id="7339898014177206373">نئی ونڈو</translation> <translation id="7340958967809483333">Discover کے لیے اختیارات</translation> <translation id="7352339641508007922">لمبا اسکرین شاٹ لینے کے لیے گھسیٹیں</translation> +<translation id="7352531447904559593">براؤزر پر مبنی اشتہار کی ذاتی نوعیت سازی کے بارے میں مزید جانیں</translation> <translation id="7352651011704765696">کچھ غلط ہو گیا</translation> <translation id="7352939065658542140">ویڈیو</translation> <translation id="7353894246028566792">{NUM_SELECTED,plural, =1{1 منتخب کردہ آئٹم کا اشتراک کریں}other{# منتخب کردہ آئٹمز کا اشتراک کریں}}</translation> @@ -1150,6 +1183,7 @@ <translation id="7619072057915878432">نیٹ ورک کی ناکامی کی وجہ سے <ph name="FILE_NAME" /> کو ڈاؤن لوڈ کرنا ناکام ہوگیا۔</translation> <translation id="7626032353295482388">Chrome میں خوش آمدید</translation> <translation id="7630202231528827509">URL فراہم کنندہ</translation> +<translation id="7634280112532283638">اسپام اور دھوکہ دہی میں تخفیف</translation> <translation id="7638584964844754484">غلط پاس فریز</translation> <translation id="7641339528570811325">براؤزنگ ڈیٹا صاف کریں…</translation> <translation id="7646772052135772216">پاس ورڈ کی مطابقت پذیری کام نہیں کر رہی ہے</translation> @@ -1209,6 +1243,7 @@ <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> پرانا ہے۔</translation> <translation id="7944772052836377867">مطابقت پذیری کو آپ کی شناخت کی توثیق کرنے کی ضرورت ہے</translation> <translation id="7947953824732555851">قبول و سائن ان کریں</translation> +<translation id="7959157064403954786">مزید شفاف اشتہارات آزمائیں</translation> <translation id="7961015016161918242">کبھی نہیں</translation> <translation id="7961926449547174351">آپ نے اسٹوریج تک رسائی کو غیر فعال کر دیا ہے، براہ کرم اسے فعال کرنے کے لیے ترتیبات پر جائیں۔</translation> <translation id="7963646190083259054">وینڈر:</translation> @@ -1288,6 +1323,7 @@ <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ڈاؤن لوڈز بحال کئے گئے</translation> <translation id="8364299278605033898">مقبول ویب سائٹس دیکھیں</translation> <translation id="8368001212524806591">قیمت ٹریک کریں</translation> +<translation id="8383226135083126309"><ph name="BEGIN_BOLD" />ہمارا اس ڈیٹا کو استعمال کرنے کا طریقہ:<ph name="END_BOLD" /> Chrome آپ کی دلچسپیوں کا اندازہ لگا سکتا ہے۔ بعد میں، آپ کی ملاحظہ کی جانے والی سائٹ آپ کو دکھائی دینے والے اشتہارات کو ذاتی نوعیت کا بنانے کے لیے Chrome سے آپ کی دلچسپیوں کو دیکھنے کا مطالبہ کر سکتی ہے۔</translation> <translation id="8387617938027387193">توثیق کریں کہ یہ آپ ہیں</translation> <translation id="8393700583063109961">پیغام بھیجیں</translation> <translation id="8394720698884623075">Chrome میں اسٹور کردہ غیر محفوظ سائٹس کی فہرست کے URLs چیک کرتا ہے</translation> @@ -1325,6 +1361,7 @@ <translation id="8505766168025405649">ڈاؤن لوڈ کی صورتحال کے لیے اطلاع دیکھیں</translation> <translation id="8514477925623180633">Chrome میں اسٹور کردہ پاس ورڈز برآمد کریں</translation> <translation id="8516012719330875537">امیج ایڈیٹر</translation> +<translation id="8516431725144212809">Chrome کے مطابق اندازہ لگائی گئی آپ کی دلچسپیاں</translation> <translation id="8523928698583292556">اسٹور کردہ پاس ورڈ حذف کریں</translation> <translation id="8540136935098276800">صحیح طور پر فارمیٹ کیا ہوا URL درج کریں</translation> <translation id="854522910157234410">یہ صفحہ کھولیں</translation> @@ -1356,6 +1393,7 @@ <translation id="8659579665266920523">Chrome سے تلاش کرنے کا طریقہ</translation> <translation id="8662811608048051533">اکثر سائٹس سے آپ کو سائن آؤٹ کرتا ہے۔</translation> <translation id="8664979001105139458">فائل کا نام پہلے سے موجود ہے</translation> +<translation id="8667760277771450375">ہم اشتہاری اسپام اور دھوکہ دہی کو روکنے کے لیے سائٹس کو فعال کرتے وقت کراس سائٹ ٹریکنگ کو محدود کرنے کے طریقے دریافت کر رہے ہیں۔</translation> <translation id="8676789164135894283">سائن ان کی تصدیقیں</translation> <translation id="867767487203716855">اگلا اپ ڈیٹ</translation> <translation id="8683039184091909753">تصویر</translation> @@ -1464,6 +1502,7 @@ <translation id="962979164594783469">یہ ایپ انسٹال کریں</translation> <translation id="96681097142096641">آسان کردہ صفحہ ملاحظہ کریں؟</translation> <translation id="968900484120156207">آپ کے ملاحظہ کردہ صفحات یہاں دکھائی دیتے ہیں</translation> +<translation id="969573236494556070">سائٹس کے درمیان اشتراک کو محدود کریں</translation> <translation id="970715775301869095"><ph name="MINUTES" /> منٹ باقی</translation> <translation id="981121421437150478">آف لائن</translation> <translation id="983192555821071799">سبھی ٹیبز بند کریں</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 df977dfa..ef6a6a3 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
@@ -10,6 +10,7 @@ <translation id="1045899828449635435">Bu saytlardagi maʼlumotlar ham tozalansinmi?</translation> <translation id="1049743911850919806">Inkognito</translation> <translation id="10614374240317010">Parollar saqlanmaydigan saytlar</translation> +<translation id="1062628064301375934">Internetni yanada shaxsiy qilishimizga yordam bering</translation> <translation id="107147699690128016">Agar fayl kengaytmasi oʻzgartirilsa, fayl boshqa ilovada ochilishi va qurilmaga zarar yetkazishi mumkin.</translation> <translation id="1089606299949659462">Tekshirildi!</translation> <translation id="1095761715416917775">Sinxronlangan axborotlarni doim ocha olishingizni tekshiring</translation> @@ -106,7 +107,13 @@ <translation id="1554532453982918912">Chromeni siz kabi foydalanuvchilar uchun yaxshilashga yordam bering</translation> <translation id="1558391695376153246">Inkognito varaqlarni yopish</translation> <translation id="1571304935088121812">Foydalanuvchi nomidan nusxa olish</translation> +<translation id="1573632872794824374">Biz saytlarga kamroq maʼlumotlaringiz bilan bir xil brauzer xizmatlarini taqdim etishiga imkon beruvchi yangi funksiyalarni oʻrganib chiqmoqdamiz</translation> <translation id="1592864538817356322">Standart himoya:</translation> +<translation id="161647866166517041">Spam va firibgarlikka qarshi kurashda saytlar botlarni odamlardan ajratish maqsadida ishonch tokenlaridan foydalanadi. + +Doim hisobga kirish kabi saytdagi harakatlaringiz asosida sayt brauzerga ishonch tokenini taqdim qilishi mumkin. Keyinroq siz ochadigan boshqa saytlar ishonch tokeni yaroqliligini tekshirish orqali sizning bot emas, shaxs ekanligingizni aniqlay oladi. + +Ishonch tokenlari internetdagi maxfiylikni oshiradi va shaxsiy maʼlumotlaringizni aniqlash uchun ishlatilmaydi.</translation> <translation id="1628019612362412531">{NUM_SELECTED,plural, =1{Tanlangan 1 ta elementni olib tashlash}other{Tanlangan # ta elementni olib tashlash}}</translation> <translation id="1633659023549081553">Chrome bosh sahifasida yangi kontent bilan tanishing</translation> <translation id="1641113438599504367">Saytlarni xavfsiz kezish</translation> @@ -167,6 +174,7 @@ <translation id="200114059308480249">Google qidiruvlariga qamrovli matn kiritilsinmi?</translation> <translation id="2013642289801508067">{FILE_COUNT,plural, =1{# ta fayl}other{# ta fayl}}</translation> <translation id="2015836039326522978"><ph name="APP_NAME" /> ilovasi Chrome ichida ochiladi. Davom etish bilan siz <ph name="BEGIN_LINK1" />Google xizmat shartlari<ph name="END_LINK1" /> bilan <ph name="BEGIN_LINK2" />Google Chrome va Chrome OS qoʻshimcha xizmat shartlariga<ph name="END_LINK2" /> rozilik bildirgan hisoblanasiz. <ph name="BEGIN_LINK3" />Maxfiylik siyosati<ph name="END_LINK3" /> ham tatbiq etiladi.</translation> +<translation id="2019145049163614359">Qiziqish olib tashlansinmi?</translation> <translation id="2020309681647789787">Brauzer tarixingiz barcha qurilmalaringizda sinxronlanadi va ishni qolgan joyingizdan davom ettira olasiz</translation> <translation id="2021896219286479412">To‘liq ekranli rejim sozlamalari</translation> <translation id="2038563949887743358">Saytning to‘liq versiyasini ko‘rish</translation> @@ -203,6 +211,7 @@ <translation id="2175927920773552910">QR kod</translation> <translation id="2176767904800337188">Virtual karta haqiqiy kartani ehtimoliy firibgarlikdan himoya qiladi. <ph name="BEGIN_LINK1" />Virtual kartalar haqida batafsil<ph name="END_LINK1" /></translation> <translation id="218608176142494674">Ulashish</translation> +<translation id="2189903024544168260">Qiziqish olib tashlandi</translation> <translation id="2194856509914051091">Bularni hisobga olish kerak</translation> <translation id="2200113223741723867">Foydalanish statistikasi yuborilishini boshqarish</translation> <translation id="2218567645332692482">Barcha sahifalar HTTPS orqali ochilsin va saytlarni yuklashdan oldin ularning protokolga mosligi haqida ogohlantirilsin</translation> @@ -266,6 +275,7 @@ <translation id="2536728043171574184">Bu sahifaning oflayn nusxasi ko‘rilmoqda</translation> <translation id="2546283357679194313">Cookie fayllari va sayt ma’lumotlari</translation> <translation id="2549516196460093976">Ekranida yuqoridagi QR kod aks etgan kompyuterda hisobga shu planshet orqali kirish mumkin.</translation> +<translation id="2558569818338050235">Ochilgan saytlar tarixi chiqadigan reklamaga taʼsir qiladi</translation> <translation id="2561519700418191927">Video eskizlar</translation> <translation id="2567385386134582609">TASVIR</translation> <translation id="2567545343356994513">Zararli sayt, yuklanma va kengaytmalarga qarshi tez va mustahkam himoya</translation> @@ -277,6 +287,7 @@ <translation id="2604446170045642109">Saytlar uchun tungi mavzuni sozlamalar orqali faolsizlantirish mumkin.</translation> <translation id="2612676031748830579">Karta raqami</translation> <translation id="2625189173221582860">Parol nusxalandi</translation> +<translation id="2642087927315268160">Quyi ekrandagi kirish oynasi yopildi.</translation> <translation id="2645657967708199252"><ph name="CONNECTION_TYPE" /> aloqasi tezligi yuklab olish uchun yetarli emas</translation> <translation id="2647434099613338025">Til qo‘shish</translation> <translation id="2649068648233607930">Brauzeringiz <ph name="DOMAIN" /> tomonidan boshqariladi</translation> @@ -289,11 +300,13 @@ <translation id="2704606927547763573">Nusxa olindi</translation> <translation id="2707726405694321444">Sahifani yangilash</translation> <translation id="271033894570825754">Yangi</translation> +<translation id="2711073837061989559">Sinovlar</translation> <translation id="2718352093833049315">Faqat Wi-Fi orqali</translation> <translation id="2718846868787000099">Kontent sizga mos tillarda chiqishi uchun siz ochadigan saytlar til sozlamalaringizni koʻra oladi</translation> <translation id="2723001399770238859">audio</translation> <translation id="2732063072010454421">Ovozli qidiruvni yaxshilash</translation> <translation id="2739256783402597439">2G</translation> +<translation id="2746842245914314523">Bu funksiyalar haqida batafsil axborotni Chrome sozlamalari orqali olish mumkin. Sinov davrida saytlar bilan ishlash maxfiyligi yangi funksiyalar bilan biroz pasayishi mumkin.</translation> <translation id="2760989362628427051">Qurilmangizda tungi mavzu yoki Quvvat tejash rejimi yoqilganda tungi mavzu faollashadi</translation> <translation id="2762000892062317888">hozirgina</translation> <translation id="276969039800130567">Siz <ph name="USER_EMAIL_ADDRESS" /> nomidan kirdingiz.</translation> @@ -362,6 +375,7 @@ <translation id="3037177537145227281">Narxni kuzatyapsiz</translation> <translation id="3037517125981011456">Chrome orqali kirish oynasi chiqadi</translation> <translation id="3046945242843292318">Keyingi safar bu saytga tezroq kirish</translation> +<translation id="3055113921564083271">Olib tashlagan qiziqishlaringiz</translation> <translation id="3055259925215945098">Bukmark koʻchirildi</translation> <translation id="3055841435094910999">Chrome foydalanish statistikasi Googlega yuborildi, lekin bu axborot sizga tegishli emas\n\nChrome ishgan chiqsa, ishdan chiqishlar hisobotiga ayrim shaxsiy maʼlumotlar kirishi mumkin\n\nAgar sinxronizatsiya yoniq boʻlsa, yuboriladigan statistikaga siz tashrif buyurgan URL manzillar ham kirishi mumkin</translation> <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> ta bukmark}other{<ph name="BOOKMARKS_COUNT_MANY" /> ta bukmark}}</translation> @@ -378,6 +392,7 @@ <translation id="3166827708714933426">Varaq va oynalar bilan ishlash</translation> <translation id="316694332262407393">Chrome allaqachon ishga tushgan.</translation> <translation id="3169472444629675720">Discover</translation> +<translation id="3187472288455401631">Reklamani oʻlchash</translation> <translation id="3207960819495026254">Xatcho‘plarga qo‘shildi</translation> <translation id="3208584281581115441">Hozir tekshirish</translation> <translation id="3211426585530211793">Oʻchirib tashlandi: <ph name="ITEM_TITLE" /></translation> @@ -408,6 +423,7 @@ <translation id="3290991969712132877">Bu sahifani tezroq ochish uchun Yana tugmasi orqali Bosh ekranga chiqaring</translation> <translation id="3297344142967351106">Ovozli yordam</translation> <translation id="3303414029551471755">Yuklab olinsinmi?</translation> +<translation id="3321367458490630980">Qiziqish kiritildi</translation> <translation id="3334729583274622784">Fayl kengaytmasi oʻzgartirilsinmi?</translation> <translation id="3341262203274374114">Obuna bekor qilinmadi. Xatolik yuz berdi.</translation> <translation id="3359667936385849800">Joriy xizmat provayderingiz orqali</translation> @@ -429,8 +445,10 @@ <translation id="3444179773590444986">Saytlar uchun tungi mavzuda oid fikr-mulohaza yuborilsinmi?</translation> <translation id="3469665409713263828">{FILE_COUNT,plural, =1{1 ta yuklanma rejalashtirildi}other{# ta yuklanma rejalashtirildi}}</translation> <translation id="3474624961160222204"><ph name="NAME" /> sifatida davom etish</translation> +<translation id="3475207952017699209">Moslashtirilgan reklama haqida</translation> <translation id="3478363558367712427">Qidiruv tizimini tanlashingiz mumkin</translation> <translation id="3493531032208478708">Bildirgi takliflar haqida <ph name="BEGIN_LINK" />batafsil ma’lumot<ph name="END_LINK" /></translation> +<translation id="3495219333887281978">Kirish oynasi quyi ekranda yarim hajmda ochildi.</translation> <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation> <translation id="3502647154914451322">Chromeni ishlatish bilan siz <ph name="BEGIN_TOS_LINK" />Google xizmat shartlari<ph name="END_TOS_LINK" /> bilan <ph name="BEGIN_ATOS_LINK" />Google Chrome va Chrome OS qoʻshimcha xizmat shartlariga<ph name="END_ATOS_LINK" /> rozilik bildirgan hisoblanasiz.</translation> <translation id="3507132249039706973">Standart himoya yoniq</translation> @@ -449,6 +467,7 @@ <translation id="3568688522516854065">Boshqa qurilmalaringizdagi brauzer sahifalarini ko‘rish uchun hisobingizga kiring va sinxronizatsiyani yoqing</translation> <translation id="357465026686164600">Elektron kalit sifatidagi telefon</translation> <translation id="3577473026931028326">Xatolik yuz berdi. Qayta urining.</translation> +<translation id="3578874072190212775">Saytlarga firibgarlikka qarshi kurash va botlarni odamlardan farqlashda yordam berish</translation> <translation id="3587482841069643663">Barchasi</translation> <translation id="3587596251841506391">Himoyani oshirishga yordam bering</translation> <translation id="3602290021589620013">Razm solish</translation> @@ -490,6 +509,7 @@ <translation id="3856096718352044181">Bu ishonchli xizmat ekanini tekshiring yoki keyinroq qayta urining</translation> <translation id="3858860766373142691">Ism</translation> <translation id="3861633093716975811">Mashhur videolar</translation> +<translation id="3862592757180800623">Fikringiz oʻzgarsa, buni istalgan vaqt Chrome sozlamalari orqali oʻzgartirish mumkin. Sinov davrida saytlar bilan ishlash maxfiyligi yangi funksiyalar bilan biroz pasayishi mumkin.</translation> <translation id="3892148308691398805">Matnni nusxalash</translation> <translation id="3894427358181296146">Jild qo‘shish</translation> <translation id="3899682235662194879">Barcha inkognito varaqlarni yopish</translation> @@ -498,6 +518,7 @@ <translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> yoniq</translation> <translation id="3927692899758076493">Sans Serif</translation> <translation id="3928666092801078803">Ma’lumotlarni birlashtirish</translation> +<translation id="3932390316856284148">Kirish oynasi quyi ekranda toʻliq hajmda ochildi.</translation> <translation id="3934366560681368531">“</translation> <translation id="393697183122708255">Ovozli qidiruv fuksiyasi yoqilmagan</translation> <translation id="395377504920307820">Hisobsiz foydalanish</translation> @@ -509,6 +530,7 @@ <translation id="3969863827134279083">Tepaga o‘tish</translation> <translation id="397583555483684758">Sinxronizatsiya to‘xtadi</translation> <translation id="3976396876660209797">Yorliqni o‘chirib qaytadan yarating</translation> +<translation id="3981902534690264083">Reklama beruvchilar reklamalar qanday chiqishini oʻrganishi mumkin</translation> <translation id="3985215325736559418"><ph name="FILE_NAME" /> fayli qaytadan yuklab olinsinmi?</translation> <translation id="3987993985790029246">Nusxalash</translation> <translation id="4000212216660919741">Uy oflayn</translation> @@ -526,6 +548,7 @@ <translation id="4096227151372679484">Bukmarklarni saqlash jarayoni yarim balandlikda ochiq</translation> <translation id="4099578267706723511">Google’ga foydalanish statistikasi va ishdan chiqish hisobotlarini jo‘natish orqali Chrome’ning takomillashtirishga yordam bering</translation> <translation id="410351446219883937">Avtoijro</translation> +<translation id="4106587138345390261">Chrome saytlarga kamroq maʼlumotlaringiz bilan bir xil brauzer xizmatlarini taqdim etishiga imkon beruvchi yangi funksiyalarni oʻrganib chiqmoqda</translation> <translation id="4108314971463891922">Kuzatish</translation> <translation id="4108998448622696017">Xavfli tahdidlarni aniqlaydi va sizni ulardan himoya qiladi.</translation> <translation id="4116038641877404294">Saytlarni oflayn ko‘rish uchun yuklab oling</translation> @@ -546,6 +569,7 @@ <translation id="4248098802131000011">Axborotlar sizib chiqishi va xavfsizlikka oid boshqa muammolardan himoyalash uchun parolingizni himoyalang</translation> <translation id="4250229828105606438">Skrinshot</translation> <translation id="4256782883801055595">Ochiq kodli DT litsenziyalari</translation> +<translation id="4262915912852657291"><ph name="BEGIN_BOLD" />Qanday maʼlumotlar ishlatilishi:<ph name="END_BOLD" /> Bu qurilmada Chrome orqali siz kirgan saytlar tarixidagi qaydlar.</translation> <translation id="4263656433980196874">Assistent ovozli qidiruv paneli interfeysi toʻliq hajmda ochildi</translation> <translation id="4269820728363426813">Havola manzilini nusxalash</translation> <translation id="4290281343757112331">Keyinroq yuklab olinsinmi?</translation> @@ -556,6 +580,7 @@ <translation id="4307992518367153382">Asosiy</translation> <translation id="4320177379694898372">Internet aloqasi yo‘q</translation> <translation id="4321739720395210191">Kamerangiz ochilmadi. Qurilmani qayta ishga tushirib, yana urining.</translation> +<translation id="4324158606177867698">Olib tashlangan qiziqishlaringiz shu yerda chiqadi</translation> <translation id="433213510553688132">Obuna rasmiylashtirilmoqda…</translation> <translation id="4335835283689002019">Xavfsiz koʻrish faolsizlantirilgan</translation> <translation id="4351244548802238354">Oynani yopish</translation> @@ -643,6 +668,7 @@ <translation id="4807098396393229769">Karta egasining ismi</translation> <translation id="481574578487123132">Ulangan qurilmalar</translation> <translation id="4818017973810341238">Quyidagi raqamli imzo havolalari tasdiqlanmadi: <ph name="VIOLATED_URL" /></translation> +<translation id="4826163340425232009">Quyi ekrandagi kirish oynasi.</translation> <translation id="4831037795716408498">Kontentni yuklab olish</translation> <translation id="4834007576107377210">Imkon boʻlsa, qidiruv tarixini qanday tozalash haqidagi qidiruv tizimi darsligini ochish</translation> <translation id="4834250788637067901">Google Pay xizmatidagi bank kartalari, takliflar va manzillar</translation> @@ -697,6 +723,7 @@ <translation id="5091199029769593641">Tez orada yangi varaq ochilganda <ph name="SITE_NAME" /> hikoyalari chiqadi. Kuzatuvdagi saytlar Google hisobingizda saqlanadi. Ularni Discover sozlamalari orqali boshqarish mumkin.</translation> <translation id="5091249083535528968">Kengaytirilgan foydalanish statistikasi</translation> <translation id="509429900233858213">Xatolik yuz berdi.</translation> +<translation id="5098190077610408701">Qiziqish kiritilsinmi?</translation> <translation id="5102401324271069229">Agar sayt parolingizni oʻgirlashga urinsa yoki zararli fayl yuklab olsangiz, Chrome ham URL manzillar kabi sahifa elementlarini Saytlarni xavfsiz kezish tizimiga yuborishi mumkin</translation> <translation id="510275257476243843">1 soat qoldi</translation> <translation id="5115811374190515607">Qayerga: <ph name="PRODUCT_NAME" /></translation> @@ -776,6 +803,7 @@ <translation id="5578795271662203820">Bu rasmni <ph name="SEARCH_ENGINE" />‘dan qidirish</translation> <translation id="5581519193887989363">Nimani sinxronlashni istalgan vaqtda <ph name="BEGIN_LINK1" />sozlamalar<ph name="END_LINK1" /> orqali tanlash mumkin.</translation> <translation id="5590372121997663538">Shu kompyuter eslab qolinsin</translation> +<translation id="559871659088672663">Bu funksiya hali yakunlanmagan</translation> <translation id="5599455543593328020">Inkognito rejimidasiz</translation> <translation id="5599941490345670218">Google Assistent amallarni siz uchun turli saytlarda bajara oladi</translation> <translation id="5620163320393916465">Hech qanday parol saqlanmagan</translation> @@ -870,6 +898,7 @@ <translation id="6069177176307973611">Maxfiylik va xavfsizlik sozlamalarini tekshirish</translation> <translation id="6070730414166672373">Bankka murojaat qilinmoqda\u2026</translation> <translation id="6085886413119427067">Xavfsiz aloqadan foydalanadigan saytlarga qanday ulanishini aniqlaydi</translation> +<translation id="6091413777268123602">Privacy Sandbox sinovlari bilan saytlar kamroq maʼlumotlaringizdan foydalangan holda bir xil xizmat koʻrsatishi mumkin. Bunda maʼlumotlaringiz maxfiyligi oshadi va kamroq kuzatiladi. Tayyor boʻlishi bilan biz yangi sinovlarni kiritib turamiz.</translation> <translation id="60923314841986378"><ph name="HOURS" /> soat qoldi</translation> <translation id="6095578583683628124">Agar Google birlamcnhi qidiruv tizmingiz boʻlsa, qidiruvda yanada yaxshi va yanada mos takliflar olasiz</translation> <translation id="6108923351542677676">Sozlanmoqda...</translation> @@ -996,11 +1025,13 @@ <translation id="671481426037969117"><ph name="FQDN" /> taymeridagi vaqt tugadi. Ertaga qaytadan boshlanadi.</translation> <translation id="6715020873764921614"><ph name="FILE_NAME" /> (<ph name="FILE_SIZE" />) fayli baribir yuklab olinsinmi?</translation> <translation id="6719634564325948108">QR kod orqali ulansinmi?</translation> +<translation id="6737612727720318154">Bu narsaga aloqador reklamasi foydali deb hisoblagan qiziqish yoki saytga ruxsat bering</translation> <translation id="6738516213925468394">Maʼlumotlaringiz <ph name="TIME" /> sanasida <ph name="BEGIN_LINK" />kodli ibora<ph name="END_LINK" /> bilan shifrlangan. Sinxronizatsiyani boshlash uchun uni kiriting.</translation> <translation id="6738867403308150051">Yuklab olinmoqda...</translation> <translation id="6751521182688001123">Tezda yangi varaqda ochish. Bu yorliqni tahrirlash uchun ustiga bosib turing.</translation> <translation id="6756507620369789050">Fikr-mulohaza</translation> <translation id="6767294960381293877">Yarim hajmda ochilgan varaq uzatiladigan qurilmalar roʻyxati.</translation> +<translation id="6770042910635026163">Qiziqishlarni ifodalovchi siz kiradigan saytlar</translation> <translation id="6770602306803890733">Siz va yaqinlaringizni internetdan yaxshiroq himoyalaydi</translation> <translation id="6783942555455976443">Bu sahifani saqlab qolish va keyinroq eslatish</translation> <translation id="6795633245022906657">Tezda yangi varaqda ochish. Bu yorliqni tahrirlash uchun Sozlamalarga kiring.</translation> @@ -1061,6 +1092,7 @@ <translation id="7093803425429738190">Emoji kiritish</translation> <translation id="7105047059074518658">Internetni turli qurilmalararo kezish uchun hisobga kiring</translation> <translation id="7106762743910369165">Brauzeringiz tashkilotingiz boshqaruvida</translation> +<translation id="7130504491556983216">Qiziqishlaringiz roʻyxati saytlarga kirishingiz natijasida shu yerda chiqadi</translation> <translation id="7138678301420049075">Boshqa</translation> <translation id="7143462160780459030">Skrinshot olinmadi. Qayta urining.</translation> <translation id="7146622961999026732">Bu sayt va ilovalar siz uchun muhimga oʻxshaydi:</translation> @@ -1095,6 +1127,7 @@ <translation id="7339898014177206373">Yangi oyna</translation> <translation id="7340958967809483333">Discover parametrlari</translation> <translation id="7352339641508007922">Uzun skrinshot olish uchun sudrang</translation> +<translation id="7352531447904559593">Brauzer asosidagi reklamani moslashtirish haqida batafsil</translation> <translation id="7352651011704765696">Xatolik yuz berdi.</translation> <translation id="7352939065658542140">VIDEO</translation> <translation id="7353894246028566792">{NUM_SELECTED,plural, =1{Belgilangan 1 ta elementni ulashish}other{Belgilangan # ta elementni ulashish}}</translation> @@ -1150,6 +1183,7 @@ <translation id="7619072057915878432">Tarmoqdagi nosozliklar tufayli “<ph name="FILE_NAME" />” fayli yuklab olinmadi.</translation> <translation id="7626032353295482388">Chrome brauzeriga xush kelibsiz!</translation> <translation id="7630202231528827509">Provayder URL manzili</translation> +<translation id="7634280112532283638">Spam va firibgarlikka qarshi kurash</translation> <translation id="7638584964844754484">Noto‘g‘ri kodli ibora</translation> <translation id="7641339528570811325">Brauzer tarixini tozalash…</translation> <translation id="7646772052135772216">Parollar sinxronizatsiyasi ishlamadi</translation> @@ -1209,6 +1243,7 @@ <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> eskirgan.</translation> <translation id="7944772052836377867">Sinxronizatsiya uchun shaxsingizni tasdiqlang</translation> <translation id="7947953824732555851">Qabul qilish va kirish</translation> +<translation id="7959157064403954786">Yanada shaffof reklamalarni sinash</translation> <translation id="7961015016161918242">Hech qachon</translation> <translation id="7961926449547174351">Xotiraga kirishga ruxsat berilmagan. Ruxsat berish uchun sozlamalarga kiring.</translation> <translation id="7963646190083259054">Ta’minotchi:</translation> @@ -1288,6 +1323,7 @@ <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ta yuklanma tiklandi</translation> <translation id="8364299278605033898">Mahalliy ommabop saytlar</translation> <translation id="8368001212524806591">Narxni kuzatish</translation> +<translation id="8383226135083126309"><ph name="BEGIN_BOLD" />Bu axborotdan qanday foydalanamiz:<ph name="END_BOLD" /> Chrome qiziqishlaringizni taxmin qila oladi. Keyinchalik sayt sizga chiqadigan reklamani moslashtirish maqsadida Chromedan qiziqishlaringiz haqida soʻrashi mumkin.</translation> <translation id="8387617938027387193">Bu siz ekaningizni isbotlang</translation> <translation id="8393700583063109961">Xabar yuborish</translation> <translation id="8394720698884623075">URL manzillar Chrome bilgan zararli saytlar roʻyxati orqali tekshiriladi</translation> @@ -1325,6 +1361,7 @@ <translation id="8505766168025405649">Yuklab olish holatini bildirishnoma orqali koʻrish mumkin</translation> <translation id="8514477925623180633">Chrome saqlab qolgan parollarni eksport qilish</translation> <translation id="8516012719330875537">Rasmlarni tahrirlash vositasi</translation> +<translation id="8516431725144212809">Chrome taxmin qilgan qiziqishlaringiz</translation> <translation id="8523928698583292556">Saqlangan parolni o‘chirish</translation> <translation id="8540136935098276800">URL manzilni xatosiz kiriting</translation> <translation id="854522910157234410">Shu sahifani ochish</translation> @@ -1356,6 +1393,7 @@ <translation id="8659579665266920523">Chrome orqali qanday qidirish mumkin</translation> <translation id="8662811608048051533">Bir nechta saytlardagi hisobingizdan chiqasiz.</translation> <translation id="8664979001105139458">Bunday nomli fayl allaqachon bor</translation> +<translation id="8667760277771450375">Biz saytlarda spam va firibgarlik reklamalaridan himoyani yoqish orqali kuzatuv mexanizmlarini taqiqlash yoʻllarini oʻrganib chiqmoqdamiz.</translation> <translation id="8676789164135894283">Kirishni tasdiqlash</translation> <translation id="867767487203716855">Keyingi yangilanish</translation> <translation id="8683039184091909753">rasm</translation> @@ -1464,6 +1502,7 @@ <translation id="962979164594783469">Bu ilovani oʻrnatish</translation> <translation id="96681097142096641">Soddalashgan shaklda koʻrasizmi?</translation> <translation id="968900484120156207">Siz kirgan sahifalar shu yerda chiqadi</translation> +<translation id="969573236494556070">Saytlararo axborot ulashuvini cheklash</translation> <translation id="970715775301869095"><ph name="MINUTES" /> daqiqa qoldi</translation> <translation id="981121421437150478">Oflayn</translation> <translation id="983192555821071799">Barcha varaqlarni yopish</translation>
diff --git a/chrome/browser/ui/ash/multi_user/multi_profile_support_unittest.cc b/chrome/browser/ui/ash/multi_user/multi_profile_support_unittest.cc index fd22a1fc..3df9244 100644 --- a/chrome/browser/ui/ash/multi_user/multi_profile_support_unittest.cc +++ b/chrome/browser/ui/ash/multi_user/multi_profile_support_unittest.cc
@@ -271,7 +271,7 @@ private: std::string GetStatusImpl(bool follow_transients); - chromeos::ScopedStubInstallAttributes test_install_attributes_; + ScopedStubInstallAttributes test_install_attributes_; // These get created for each session. // TODO: convert to vector<std::unique_ptr<aura::Window>>.
diff --git a/chrome/browser/ui/startup/web_app_info_recorder_utils.cc b/chrome/browser/ui/startup/web_app_info_recorder_utils.cc index bbe3b82..3ad9a32 100644 --- a/chrome/browser/ui/startup/web_app_info_recorder_utils.cc +++ b/chrome/browser/ui/startup/web_app_info_recorder_utils.cc
@@ -144,7 +144,7 @@ for (const web_app::WebApp& web_app : web_app_provider->registrar().GetApps()) { base::Value web_app_info(base::Value::Type::DICTIONARY); - web_app_info.SetStringKey("name", web_app.name()); + web_app_info.SetStringKey("name", web_app.untranslated_name()); web_app_info.SetStringKey("id", web_app.app_id()); installed_apps_per_profile.Append(std::move(web_app_info)); }
diff --git a/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view_browsertest.cc b/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view_browsertest.cc index f27bcf7..b84ad0a2 100644 --- a/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view_browsertest.cc +++ b/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view_browsertest.cc
@@ -148,7 +148,7 @@ } ash::ScopedTestingCrosSettings scoped_testing_cros_settings_; - chromeos::ScopedStubInstallAttributes scoped_stub_install_attributes_; + ash::ScopedStubInstallAttributes scoped_stub_install_attributes_; std::unique_ptr<network::TestNetworkConnectionTracker> network_connection_tracker_;
diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl_unittest.cc b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl_unittest.cc index 7c296ab..303123bf 100644 --- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl_unittest.cc +++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl_unittest.cc
@@ -109,6 +109,12 @@ container->children()[2]->GetGroup()); } +// TODO(crbug/1307564): Flaky test. +#if (BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)) +#define MAYBE_ButtonPressed DISABLED_ButtonPressed +#else +#define MAYBE_ButtonPressed ButtonPressed +#endif TEST_F(SendTabToSelfBubbleViewImplTest, ButtonPressed) { EXPECT_CALL(*controller_, OnDeviceSelected("Device_3", "device_guid_3")); const views::View* button_container = bubble_->GetButtonContainerForTesting();
diff --git a/chrome/browser/ui/webui/app_management/app_management_page_handler.cc b/chrome/browser/ui/webui/app_management/app_management_page_handler.cc index 4f14930..aa49670 100644 --- a/chrome/browser/ui/webui/app_management/app_management_page_handler.cc +++ b/chrome/browser/ui/webui/app_management/app_management_page_handler.cc
@@ -371,6 +371,8 @@ app->install_reason = update.InstallReason(); app->install_source = update.InstallSource(); + app->version = update.Version(); + app->description = update.Description(); // On other OS's, is_pinned defaults to OptionalBool::kUnknown, which is @@ -449,7 +451,7 @@ page_->OnAppAdded(CreateUIAppPtr(update)); } - if (update.ShowInManagement().value_or(true) || + if (!update.ShowInManagement().value_or(true) || !apps_util::IsInstalled(update.Readiness())) { page_->OnAppRemoved(update.AppId()); }
diff --git a/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc b/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc index aec4990..090cdca 100644 --- a/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc +++ b/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc
@@ -398,9 +398,8 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) void SetUp() override { DeviceSettingsTestBase::SetUp(); - install_attributes_ = - std::make_unique<chromeos::ScopedStubInstallAttributes>( - chromeos::StubInstallAttributes::CreateUnset()); + install_attributes_ = std::make_unique<ash::ScopedStubInstallAttributes>( + ash::StubInstallAttributes::CreateUnset()); crostini_features_ = std::make_unique<crostini::FakeCrostiniFeatures>(); SetUpConnectManager(); @@ -584,7 +583,7 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) std::unique_ptr<chromeos::NetworkHandlerTestHelper> network_handler_test_helper_; - std::unique_ptr<chromeos::ScopedStubInstallAttributes> install_attributes_; + std::unique_ptr<ash::ScopedStubInstallAttributes> install_attributes_; std::unique_ptr<crostini::FakeCrostiniFeatures> crostini_features_; TestingPrefServiceSimple local_state_; TestingPrefServiceSimple user_prefs_;
diff --git a/chrome/browser/ui/webui/settings/chromeos/apps_section.cc b/chrome/browser/ui/webui/settings/chromeos/apps_section.cc index 550d847e..744e33e4 100644 --- a/chrome/browser/ui/webui/settings/chromeos/apps_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/apps_section.cc
@@ -191,6 +191,8 @@ IDS_APP_MANAGEMENT_APP_DETAILS_INSTALL_SOURCE_BROWSER}, {"appManagementAppDetailsTypeAndSourceCombined", IDS_APP_MANAGEMENT_APP_DETAILS_TYPE_AND_SOURCE_COMBINED}, + {"appManagementAppDetailsVersion", + IDS_APP_MANAGEMENT_APP_DETAILS_VERSION}, {"appManagementAppInstalledByPolicyLabel", IDS_APP_MANAGEMENT_POLICY_APP_POLICY_STRING}, {"appManagementCameraPermissionLabel", IDS_APP_MANAGEMENT_CAMERA},
diff --git a/chrome/browser/ui/webui/settings/chromeos/metrics_consent_handler_unittest.cc b/chrome/browser/ui/webui/settings/chromeos/metrics_consent_handler_unittest.cc index 1e659d0..ff8f26cf 100644 --- a/chrome/browser/ui/webui/settings/chromeos/metrics_consent_handler_unittest.cc +++ b/chrome/browser/ui/webui/settings/chromeos/metrics_consent_handler_unittest.cc
@@ -257,7 +257,7 @@ std::unique_ptr<metrics::MetricsService> test_metrics_service_; // Set up stubs for StatsReportingController. - chromeos::ScopedStubInstallAttributes scoped_install_attributes_; + ScopedStubInstallAttributes scoped_install_attributes_; ash::FakeSessionManagerClient fake_session_manager_client_; ash::ScopedTestDeviceSettingsService scoped_device_settings_; ash::ScopedTestCrosSettings scoped_cros_settings_{
diff --git a/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc b/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc index f8fdd9f..ec51c46d 100644 --- a/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc +++ b/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc
@@ -80,13 +80,13 @@ provider.registrar().GetAppsIncludingStubs()) { web_apps.push_back(&web_app); } - base::ranges::sort(web_apps, {}, &web_app::WebApp::name); + base::ranges::sort(web_apps, {}, &web_app::WebApp::untranslated_name); // Prefix with a ! so this appears at the top when serialized. base::Value& index = *installed_web_apps.SetKey( "!Index", base::Value(base::Value::Type::DICTIONARY)); for (const web_app::WebApp* web_app : web_apps) { - const std::string& key = web_app->name(); + const std::string& key = web_app->untranslated_name(); base::Value* existing_entry = index.FindKey(key); if (!existing_entry) { index.SetStringKey(key, web_app->app_id());
diff --git a/chrome/browser/web_applications/externally_managed_app_manager_impl_browsertest.cc b/chrome/browser/web_applications/externally_managed_app_manager_impl_browsertest.cc index ea2e3af..08e4067 100644 --- a/chrome/browser/web_applications/externally_managed_app_manager_impl_browsertest.cc +++ b/chrome/browser/web_applications/externally_managed_app_manager_impl_browsertest.cc
@@ -201,7 +201,8 @@ ExternallyInstalledWebAppPrefs(profile()->GetPrefs()).LookupAppId(url); ASSERT_TRUE(app_id.has_value()); EXPECT_TRUE(registrar().IsPlaceholderApp(app_id.value())); - EXPECT_EQ(CUSTOM_NAME, registrar().GetAppById(app_id.value())->name()); + EXPECT_EQ(CUSTOM_NAME, + registrar().GetAppById(app_id.value())->untranslated_name()); } // Installing a placeholder app with a custom icon should succeed.
diff --git a/chrome/browser/web_applications/manifest_update_task.cc b/chrome/browser/web_applications/manifest_update_task.cc index 51e66b1..943f48e 100644 --- a/chrome/browser/web_applications/manifest_update_task.cc +++ b/chrome/browser/web_applications/manifest_update_task.cc
@@ -337,8 +337,9 @@ const WebApp* app = registrar_.GetAppById(app_id_); DCHECK(app); - bool title_changing = - web_application_info_->title != base::UTF8ToUTF16(app->name()); + // TODO(crbug.com/1259777): Check whether translations have been updated. + bool title_changing = web_application_info_->title != + base::UTF8ToUTF16(app->untranslated_name()); bool icons_changing = web_application_info_->manifest_icons != app->manifest_icons(); if (!NeedsAppIdentityUpdateDialog(title_changing, icons_changing, app_id_,
diff --git a/chrome/browser/web_applications/os_integration/web_app_shortcut_manager.cc b/chrome/browser/web_applications/os_integration/web_app_shortcut_manager.cc index 535a58b..98a5db8 100644 --- a/chrome/browser/web_applications/os_integration/web_app_shortcut_manager.cc +++ b/chrome/browser/web_applications/os_integration/web_app_shortcut_manager.cc
@@ -359,8 +359,10 @@ shortcut_info->extension_id = app->app_id(); shortcut_info->url = app->start_url(); - shortcut_info->title = base::UTF8ToUTF16(app->name()); - shortcut_info->description = base::UTF8ToUTF16(app->description()); + shortcut_info->title = + base::UTF8ToUTF16(registrar_->GetAppShortName(app->app_id())); + shortcut_info->description = + base::UTF8ToUTF16(registrar_->GetAppDescription(app->app_id())); shortcut_info->profile_path = profile_->GetPath(); shortcut_info->profile_name = profile_->GetPrefs()->GetString(prefs::kProfileName);
diff --git a/chrome/browser/web_applications/preinstalled_web_app_manager_browsertest.cc b/chrome/browser/web_applications/preinstalled_web_app_manager_browsertest.cc index 7ae5bb79..a08c654 100644 --- a/chrome/browser/web_applications/preinstalled_web_app_manager_browsertest.cc +++ b/chrome/browser/web_applications/preinstalled_web_app_manager_browsertest.cc
@@ -89,7 +89,7 @@ const GURL& expect_start_url, const GURL& expect_scope) { // Manifest fields: - EXPECT_EQ(web_app->name(), "Basic web app"); + EXPECT_EQ(web_app->untranslated_name(), "Basic web app"); EXPECT_EQ(web_app->start_url().spec(), expect_start_url); EXPECT_EQ(web_app->scope().spec(), expect_scope); EXPECT_EQ(web_app->display_mode(), DisplayMode::kStandalone);
diff --git a/chrome/browser/web_applications/web_app.h b/chrome/browser/web_applications/web_app.h index 6763a3dd..4fc747c 100644 --- a/chrome/browser/web_applications/web_app.h +++ b/chrome/browser/web_applications/web_app.h
@@ -45,10 +45,13 @@ const AppId& app_id() const { return app_id_; } - // UTF8 encoded application name. - const std::string& name() const { return name_; } - // UTF8 encoded long application description (a full application name). - const std::string& description() const { return description_; } + // UTF8 encoded application name. This name is not translated, use + // WebAppRegistrar.GetAppShortName to get the translated name. + const std::string& untranslated_name() const { return name_; } + // UTF8 encoded long application description (a full application name). This + // description is not translated, use WebAppRegistrar.GetAppDescription to get + // the translated description. + const std::string& untranslated_description() const { return description_; } const GURL& start_url() const { return start_url_; }
diff --git a/chrome/browser/web_applications/web_app_database.cc b/chrome/browser/web_applications/web_app_database.cc index 25ce64f..8047ce6 100644 --- a/chrome/browser/web_applications/web_app_database.cc +++ b/chrome/browser/web_applications/web_app_database.cc
@@ -322,7 +322,7 @@ // Set sync data to sync proto. *(local_data->mutable_sync_data()) = WebAppToSyncProto(web_app); - local_data->set_name(web_app.name()); + local_data->set_name(web_app.untranslated_name()); DCHECK(web_app.sources_.any()); local_data->mutable_sources()->set_system(web_app.sources_[Source::kSystem]); @@ -350,7 +350,7 @@ ToWebAppProtoDisplayMode(display_mode)); } - local_data->set_description(web_app.description()); + local_data->set_description(web_app.untranslated_description()); if (!web_app.scope().is_empty()) local_data->set_scope(web_app.scope().spec()); if (web_app.theme_color().has_value())
diff --git a/chrome/browser/web_applications/web_app_database_unittest.cc b/chrome/browser/web_applications/web_app_database_unittest.cc index 9d8eac1f..19100ce 100644 --- a/chrome/browser/web_applications/web_app_database_unittest.cc +++ b/chrome/browser/web_applications/web_app_database_unittest.cc
@@ -252,7 +252,7 @@ const WebApp* app = registrar().GetAppById(app_id); EXPECT_EQ(app_id, app->app_id()); EXPECT_EQ(start_url, app->start_url()); - EXPECT_EQ(name, app->name()); + EXPECT_EQ(name, app->untranslated_name()); EXPECT_EQ(user_display_mode, app->user_display_mode()); EXPECT_EQ(is_locally_installed, app->is_locally_installed()); EXPECT_TRUE(app->IsSynced()); @@ -297,7 +297,7 @@ // Let optional fields be empty: EXPECT_EQ(app->display_mode(), DisplayMode::kUndefined); EXPECT_TRUE(app->display_mode_override().empty()); - EXPECT_TRUE(app->description().empty()); + EXPECT_TRUE(app->untranslated_description().empty()); EXPECT_TRUE(app->scope().is_empty()); EXPECT_FALSE(app->theme_color().has_value()); EXPECT_FALSE(app->dark_mode_theme_color().has_value()); @@ -341,7 +341,7 @@ // Required fields were serialized: EXPECT_EQ(app_id, app_copy->app_id()); EXPECT_EQ(start_url, app_copy->start_url()); - EXPECT_EQ(name, app_copy->name()); + EXPECT_EQ(name, app_copy->untranslated_name()); EXPECT_EQ(user_display_mode, app_copy->user_display_mode()); EXPECT_FALSE(app_copy->is_locally_installed()); @@ -365,7 +365,7 @@ // No optional fields. EXPECT_EQ(app_copy->display_mode(), DisplayMode::kUndefined); EXPECT_TRUE(app_copy->display_mode_override().empty()); - EXPECT_TRUE(app_copy->description().empty()); + EXPECT_TRUE(app_copy->untranslated_description().empty()); EXPECT_TRUE(app_copy->scope().is_empty()); EXPECT_FALSE(app_copy->theme_color().has_value()); EXPECT_FALSE(app_copy->dark_mode_theme_color().has_value());
diff --git a/chrome/browser/web_applications/web_app_install_finalizer.cc b/chrome/browser/web_applications/web_app_install_finalizer.cc index 5d1bdac..6c2a13d 100644 --- a/chrome/browser/web_applications/web_app_install_finalizer.cc +++ b/chrome/browser/web_applications/web_app_install_finalizer.cc
@@ -434,7 +434,7 @@ CommitCallback commit_callback = base::BindOnce( &WebAppInstallFinalizer::OnDatabaseCommitCompletedForUpdate, weak_ptr_factory_.GetWeakPtr(), std::move(callback), app_id, - existing_web_app->name(), + GetWebAppRegistrar().GetAppShortName(app_id), GetFileHandlerUpdateAction(app_id, web_app_info), web_app_info); // Prepare copy-on-write to update existing app.
diff --git a/chrome/browser/web_applications/web_app_install_info.h b/chrome/browser/web_applications/web_app_install_info.h index 4a58a32..7eca50fa 100644 --- a/chrome/browser/web_applications/web_app_install_info.h +++ b/chrome/browser/web_applications/web_app_install_info.h
@@ -302,7 +302,7 @@ absl::optional<blink::Manifest::LaunchHandler> launch_handler; // A mapping from locales to translated fields. - base::flat_map<std::u16string, blink::Manifest::TranslationItem> translations; + base::flat_map<std::string, blink::Manifest::TranslationItem> translations; // The declared permissions policy to apply as the baseline policy for all // documents belonging to the application.
diff --git a/chrome/browser/web_applications/web_app_install_manager_unittest.cc b/chrome/browser/web_applications/web_app_install_manager_unittest.cc index da234dc..ff55170 100644 --- a/chrome/browser/web_applications/web_app_install_manager_unittest.cc +++ b/chrome/browser/web_applications/web_app_install_manager_unittest.cc
@@ -69,7 +69,8 @@ auto web_application_info = std::make_unique<WebAppInstallInfo>(); // Most fields are expected to be populated by a manifest data in a subsequent // override install process data flow. TODO(loyso): Make it more robust. - web_application_info->description = base::UTF8ToUTF16(app.description()); + web_application_info->description = + base::UTF8ToUTF16(app.untranslated_description()); // |user_display_mode| is a user's display mode value and it is typically // populated by a UI dialog in production code. We set it here for testing // purposes. @@ -98,7 +99,7 @@ manifest->start_url = app.start_url(); manifest->scope = app.start_url(); manifest->short_name = u"Short Name to be overriden."; - manifest->name = base::UTF8ToUTF16(app.name()); + manifest->name = base::UTF8ToUTF16(app.untranslated_name()); if (app.theme_color()) { manifest->has_theme_color = true; manifest->theme_color = *app.theme_color(); @@ -799,7 +800,7 @@ std::unique_ptr<const WebApp> app_in_sync_install = CreateWebAppFromSyncAndPendingInstallation( - expected_app->start_url(), expected_app->name(), + expected_app->start_url(), expected_app->untranslated_name(), expected_app->user_display_mode(), expected_app->theme_color().value(), expected_app->is_locally_installed(), expected_app->scope(), @@ -1270,7 +1271,7 @@ ASSERT_TRUE(web_app->theme_color().has_value()); EXPECT_EQ(SK_ColorWHITE, web_app->theme_color().value()); - EXPECT_EQ("Name from APK", web_app->name()); + EXPECT_EQ("Name from APK", web_app->untranslated_name()); EXPECT_EQ("https://example.com/apk_scope", web_app->scope().spec()); ASSERT_TRUE(web_app->sync_fallback_data().theme_color.has_value()); @@ -1332,7 +1333,7 @@ ASSERT_TRUE(web_app->theme_color().has_value()); EXPECT_EQ(SK_ColorWHITE, web_app->theme_color().value()); - EXPECT_EQ("Name from APK", web_app->name()); + EXPECT_EQ("Name from APK", web_app->untranslated_name()); EXPECT_EQ("https://example.com/apk_scope", web_app->scope().spec()); ASSERT_TRUE(web_app->sync_fallback_data().theme_color.has_value());
diff --git a/chrome/browser/web_applications/web_app_install_task_unittest.cc b/chrome/browser/web_applications/web_app_install_task_unittest.cc index 417047ba..55f0e5b 100644 --- a/chrome/browser/web_applications/web_app_install_task_unittest.cc +++ b/chrome/browser/web_applications/web_app_install_task_unittest.cc
@@ -471,8 +471,8 @@ EXPECT_NE(nullptr, web_app); EXPECT_EQ(app_id, web_app->app_id()); - EXPECT_EQ(manifest_name, web_app->name()); - EXPECT_EQ(description, web_app->description()); + EXPECT_EQ(manifest_name, web_app->untranslated_name()); + EXPECT_EQ(description, web_app->untranslated_description()); EXPECT_EQ(url, web_app->start_url()); EXPECT_EQ(scope, web_app->scope()); EXPECT_EQ(theme_color, web_app->theme_color()); @@ -516,8 +516,8 @@ EXPECT_EQ(webapps::InstallResultCode::kSuccessNewInstall, code); EXPECT_EQ(app_id, force_installed_app_id); const WebApp* web_app = registrar().GetAppById(app_id); - EXPECT_EQ(web_app->name(), "Manifest Name2"); - EXPECT_EQ(web_app->description(), "Renderer Description2"); + EXPECT_EQ(web_app->untranslated_name(), "Manifest Name2"); + EXPECT_EQ(web_app->untranslated_description(), "Renderer Description2"); callback_called = true; run_loop.Quit(); })); @@ -662,9 +662,9 @@ // Manifest data overrides Renderer data, except |description|. EXPECT_EQ(app_id, web_app->app_id()); - EXPECT_EQ(manifest_name, web_app->name()); + EXPECT_EQ(manifest_name, web_app->untranslated_name()); EXPECT_EQ(manifest_start_url, web_app->start_url()); - EXPECT_EQ(renderer_description, web_app->description()); + EXPECT_EQ(renderer_description, web_app->untranslated_description()); EXPECT_EQ(manifest_scope, web_app->scope()); EXPECT_EQ(expected_theme_color, web_app->theme_color()); EXPECT_EQ(display_mode, web_app->display_mode()); @@ -1475,7 +1475,7 @@ EXPECT_NE(nullptr, web_app); EXPECT_EQ(app_id, web_app->app_id()); - EXPECT_EQ(description, web_app->description()); + EXPECT_EQ(description, web_app->untranslated_description()); EXPECT_EQ(url, web_app->start_url()); EXPECT_EQ(scope, web_app->scope()); EXPECT_EQ(theme_color, web_app->theme_color());
diff --git a/chrome/browser/web_applications/web_app_install_utils.cc b/chrome/browser/web_applications/web_app_install_utils.cc index d7e436d..3c65f05 100644 --- a/chrome/browser/web_applications/web_app_install_utils.cc +++ b/chrome/browser/web_applications/web_app_install_utils.cc
@@ -10,10 +10,12 @@ #include <set> #include <string> #include <utility> +#include <vector> #include "base/check.h" #include "base/check_op.h" #include "base/containers/contains.h" +#include "base/containers/flat_map.h" #include "base/containers/flat_set.h" #include "base/metrics/histogram.h" #include "base/metrics/histogram_functions.h" @@ -327,6 +329,20 @@ } } +base::flat_map<std::string, blink::Manifest::TranslationItem> +ToWebAppTranslations( + const base::flat_map<std::u16string, blink::Manifest::TranslationItem>& + manifest_translations) { + std::vector<std::pair<std::string, blink::Manifest::TranslationItem>> + translations_vector; + translations_vector.reserve(manifest_translations.size()); + for (const auto& it : manifest_translations) { + translations_vector.emplace_back(base::UTF16ToUTF8(it.first), it.second); + } + return base::flat_map<std::string, blink::Manifest::TranslationItem>( + std::move(translations_vector)); +} + } // namespace apps::FileHandlers CreateFileHandlersFromManifest( @@ -502,7 +518,7 @@ web_app_info->description = manifest.description.value(); } - web_app_info->translations = manifest.translations; + web_app_info->translations = ToWebAppTranslations(manifest.translations); web_app_info->permissions_policy.clear(); for (const auto& decl : manifest.permissions_policy) {
diff --git a/chrome/browser/web_applications/web_app_install_utils_unittest.cc b/chrome/browser/web_applications/web_app_install_utils_unittest.cc index 88d9375..82f92053 100644 --- a/chrome/browser/web_applications/web_app_install_utils_unittest.cc +++ b/chrome/browser/web_applications/web_app_install_utils_unittest.cc
@@ -888,21 +888,19 @@ UpdateWebAppInfoFromManifest(manifest, kAppManifestUrl, &web_app_info); EXPECT_EQ(3u, web_app_info.translations.size()); - EXPECT_EQ(web_app_info.translations[u"language 1"].name, "name 1"); - EXPECT_EQ(web_app_info.translations[u"language 1"].short_name, - "short name 1"); - EXPECT_EQ(web_app_info.translations[u"language 1"].description, + EXPECT_EQ(web_app_info.translations["language 1"].name, "name 1"); + EXPECT_EQ(web_app_info.translations["language 1"].short_name, "short name 1"); + EXPECT_EQ(web_app_info.translations["language 1"].description, "description 1"); - EXPECT_FALSE(web_app_info.translations[u"language 2"].name); - EXPECT_EQ(web_app_info.translations[u"language 2"].short_name, - "short name 2"); - EXPECT_EQ(web_app_info.translations[u"language 2"].description, + EXPECT_FALSE(web_app_info.translations["language 2"].name); + EXPECT_EQ(web_app_info.translations["language 2"].short_name, "short name 2"); + EXPECT_EQ(web_app_info.translations["language 2"].description, "description 2"); - EXPECT_EQ(web_app_info.translations[u"language 3"].name, "name 3"); - EXPECT_FALSE(web_app_info.translations[u"language 3"].short_name); - EXPECT_FALSE(web_app_info.translations[u"language 3"].description); + EXPECT_EQ(web_app_info.translations["language 3"].name, "name 3"); + EXPECT_FALSE(web_app_info.translations["language 3"].short_name); + EXPECT_FALSE(web_app_info.translations["language 3"].description); } class FileHandlersFromManifestTest : public ::testing::TestWithParam<bool> {
diff --git a/chrome/browser/web_applications/web_app_installation_utils_unittest.cc b/chrome/browser/web_applications/web_app_installation_utils_unittest.cc index 67e871f..d19d25c 100644 --- a/chrome/browser/web_applications/web_app_installation_utils_unittest.cc +++ b/chrome/browser/web_applications/web_app_installation_utils_unittest.cc
@@ -46,8 +46,8 @@ SetWebAppManifestFields(web_app_info, *web_app); EXPECT_EQ(web_app->scope(), GURL("https://www.chromium.org/")); - EXPECT_EQ(web_app->name(), "App Name"); - EXPECT_EQ(web_app->description(), "App Description"); + EXPECT_EQ(web_app->untranslated_name(), "App Name"); + EXPECT_EQ(web_app->untranslated_description(), "App Description"); EXPECT_TRUE(web_app->theme_color().has_value()); EXPECT_EQ(*web_app->theme_color(), SK_ColorCYAN); EXPECT_TRUE(web_app->dark_mode_theme_color().has_value());
diff --git a/chrome/browser/web_applications/web_app_registrar.cc b/chrome/browser/web_applications/web_app_registrar.cc index 4a09990..4794196 100644 --- a/chrome/browser/web_applications/web_app_registrar.cc +++ b/chrome/browser/web_applications/web_app_registrar.cc
@@ -538,7 +538,7 @@ } } auto* web_app = GetAppById(app_id); - return web_app ? web_app->name() : std::string(); + return web_app ? web_app->untranslated_name() : std::string(); } std::string WebAppRegistrar::GetAppDescription(const AppId& app_id) const { @@ -551,7 +551,7 @@ } } auto* web_app = GetAppById(app_id); - return web_app ? web_app->description() : std::string(); + return web_app ? web_app->untranslated_description() : std::string(); } absl::optional<SkColor> WebAppRegistrar::GetAppThemeColor(
diff --git a/chrome/browser/web_applications/web_app_registrar_unittest.cc b/chrome/browser/web_applications/web_app_registrar_unittest.cc index 23180013..d0a9ede 100644 --- a/chrome/browser/web_applications/web_app_registrar_unittest.cc +++ b/chrome/browser/web_applications/web_app_registrar_unittest.cc
@@ -194,8 +194,8 @@ const WebApp* app = registrar().GetAppById(app_id); EXPECT_EQ(app_id, app->app_id()); - EXPECT_EQ(name, app->name()); - EXPECT_EQ(description, app->description()); + EXPECT_EQ(name, app->untranslated_name()); + EXPECT_EQ(description, app->untranslated_description()); EXPECT_EQ(start_url, app->start_url()); EXPECT_EQ(scope, app->scope()); EXPECT_EQ(theme_color, app->theme_color()); @@ -664,7 +664,7 @@ EXPECT_EQ(ids.size(), registry_written.size()); for (auto& kv : registry_written) { - EXPECT_EQ("New Name", kv.second->name()); + EXPECT_EQ("New Name", kv.second->untranslated_name()); ids.erase(kv.second->app_id()); } @@ -729,7 +729,7 @@ EXPECT_EQ(ids.size(), updated_registry.size()); for (auto& kv : updated_registry) { - EXPECT_EQ(kv.second->description(), "New Description"); + EXPECT_EQ(kv.second->untranslated_description(), "New Description"); ids.erase(kv.second->app_id()); } @@ -756,8 +756,8 @@ EXPECT_NE(app_copy, app); app_copy->SetName("New Name"); - EXPECT_EQ(app_copy->name(), "New Name"); - EXPECT_EQ(app->name(), "Name"); + EXPECT_EQ(app_copy->untranslated_name(), "New Name"); + EXPECT_EQ(app->untranslated_name(), "Name"); app_copy->AddSource(Source::kPolicy); app_copy->RemoveSource(Source::kSync); @@ -774,7 +774,7 @@ // Pointer value stays the same. EXPECT_EQ(app, registrar().GetAppById(app_id)); - EXPECT_EQ(app->name(), "New Name"); + EXPECT_EQ(app->untranslated_name(), "New Name"); EXPECT_FALSE(app->IsSynced()); EXPECT_TRUE(app->HasAnySources()); }
diff --git a/chrome/browser/web_applications/web_app_sync_bridge.cc b/chrome/browser/web_applications/web_app_sync_bridge.cc index 29d998f1..c10c919 100644 --- a/chrome/browser/web_applications/web_app_sync_bridge.cc +++ b/chrome/browser/web_applications/web_app_sync_bridge.cc
@@ -49,10 +49,10 @@ std::unique_ptr<syncer::EntityData> CreateSyncEntityData(const WebApp& app) { // The Sync System doesn't allow empty entity_data name. - DCHECK(!app.name().empty()); + DCHECK(!app.untranslated_name().empty()); auto entity_data = std::make_unique<syncer::EntityData>(); - entity_data->name = app.name(); + entity_data->name = app.untranslated_name(); // TODO(crbug.com/1103570): Remove this fallback later. if (entity_data->name.empty()) entity_data->name = app.start_url().spec(); @@ -427,12 +427,12 @@ #if DCHECK_IS_ON() for (const std::unique_ptr<WebApp>& web_app : update_data.apps_to_create) { DCHECK(!registrar_->GetAppById(web_app->app_id())); - DCHECK(!web_app->name().empty()); + DCHECK(!web_app->untranslated_name().empty()); } for (const std::unique_ptr<WebApp>& web_app : update_data.apps_to_update) { DCHECK(registrar_->GetAppById(web_app->app_id())); - DCHECK(!web_app->name().empty()); + DCHECK(!web_app->untranslated_name().empty()); } for (const AppId& app_id : update_data.apps_to_delete) @@ -630,7 +630,7 @@ // the fallback sync data name: web_app->SetName(specifics.name()); // Or use syncer::EntityData::name as a last resort. - if (web_app->name().empty()) + if (web_app->untranslated_name().empty()) web_app->SetName(change.data().name); ApplySyncDataToApp(specifics, web_app.get());
diff --git a/chrome/browser/web_applications/web_app_translation_manager.cc b/chrome/browser/web_applications/web_app_translation_manager.cc index dc904ae..c43231ff 100644 --- a/chrome/browser/web_applications/web_app_translation_manager.cc +++ b/chrome/browser/web_applications/web_app_translation_manager.cc
@@ -116,8 +116,7 @@ for (const auto& translation : translations) { (*locale_to_overrides_map - .mutable_locale_to_overrides_map())[base::UTF16ToUTF8( - translation.first)] = + .mutable_locale_to_overrides_map())[translation.first] = ConvertTranslationItemToLocaleOverrides(translation.second); } (*proto.mutable_id_to_translations_map())[app_id] = locale_to_overrides_map; @@ -157,7 +156,7 @@ const std::string& locale = g_browser_process->GetApplicationLocale(); // TODO(crbug.com/1259777): Check other matching locales. Eg if no name // defined in en-US, check en. - auto it = translations.find(base::UTF8ToUTF16(locale)); + auto it = translations.find(locale); if (it != translations.end()) { translation_cache_[app_id] = it->second; }
diff --git a/chrome/browser/web_applications/web_app_translation_manager.h b/chrome/browser/web_applications/web_app_translation_manager.h index 509b9d8..63daead 100644 --- a/chrome/browser/web_applications/web_app_translation_manager.h +++ b/chrome/browser/web_applications/web_app_translation_manager.h
@@ -20,7 +20,7 @@ namespace web_app { -using Locale = std::u16string; +using Locale = std::string; // Handles reading and writing web app translations data to disk and caching // the translations for the current browser locale.
diff --git a/chrome/browser/web_applications/web_app_translation_manager_unittest.cc b/chrome/browser/web_applications/web_app_translation_manager_unittest.cc index 0da8a502..5c20480 100644 --- a/chrome/browser/web_applications/web_app_translation_manager_unittest.cc +++ b/chrome/browser/web_applications/web_app_translation_manager_unittest.cc
@@ -123,21 +123,21 @@ item1.name = "name 1"; item1.short_name = "short name 1"; item1.description = "description 1"; - translations1[u"en"] = item1; + translations1["en"] = item1; blink::Manifest::TranslationItem item2; item2.name = "name 2"; item2.description = "description 2"; - translations1[u"fr"] = item2; + translations1["fr"] = item2; blink::Manifest::TranslationItem item3; item3.short_name = "short name 3"; - translations2[u"en"] = item3; + translations2["en"] = item3; blink::Manifest::TranslationItem item4; item4.short_name = "short name 4"; item4.description = "description 4"; - translations2[u"fr"] = item4; + translations2["fr"] = item4; // Write translations for both apps. AwaitWriteTranslations(app_id1, translations1); @@ -203,12 +203,12 @@ item1.name = "name 1"; item1.short_name = "short name 1"; item1.description = "description 1"; - translations1[u"en"] = item1; + translations1["en"] = item1; blink::Manifest::TranslationItem item2; item2.name = "name 2"; item2.description = "description 2"; - translations2[u"en"] = item2; + translations2["en"] = item2; // Write translations for the app. AwaitWriteTranslations(app_id1, translations1); @@ -242,7 +242,7 @@ item1.name = "name 1"; item1.short_name = "short name 1"; item1.description = "description 1"; - translations[u"en"] = item1; + translations["en"] = item1; auto app_info = std::make_unique<WebAppInstallInfo>(); app_info->start_url = GURL("https://example.com/path");
diff --git a/chrome/browser/webshare/chromeos/sharesheet_client.cc b/chrome/browser/webshare/chromeos/sharesheet_client.cc index 2b29b24..f57ad223 100644 --- a/chrome/browser/webshare/chromeos/sharesheet_client.cc +++ b/chrome/browser/webshare/chromeos/sharesheet_client.cc
@@ -111,8 +111,8 @@ crosapi::mojom::IntentPtr CreateCrosapiShareIntentFromFiles( const std::vector<base::FilePath>& file_paths, const std::vector<std::string>& mime_types, - const std::string& share_text, - const std::string& share_title) { + const std::string& text, + const std::string& title) { DCHECK_EQ(file_paths.size(), mime_types.size()); std::vector<crosapi::mojom::IntentFilePtr> files; @@ -122,6 +122,15 @@ crosapi::mojom::IntentFile::New(file_paths[index], mime_types[index])); } + // Always share text and/or files. + absl::optional<std::string> share_text; + if (!text.empty() || file_paths.empty()) + share_text = text; + + absl::optional<std::string> share_title; + if (!title.empty()) + share_title = title; + const char* action = file_paths.size() <= 1 ? apps_util::kIntentActionSend : apps_util::kIntentActionSendMultiple; @@ -348,6 +357,8 @@ } crosapi::mojom::IntentPtr intent = CreateCrosapiShareIntentFromFiles(file_paths, content_types, text, title); + DCHECK(intent->share_text.has_value() || !intent->files->empty()); + service->GetRemote<crosapi::mojom::Sharesheet>()->ShowBubble( lacros_window_utility::GetRootWindowUniqueId( web_contents->GetTopLevelNativeWindow()), @@ -364,6 +375,7 @@ (*intent->files)[index]->file_size = file_sizes[index]; } } + DCHECK(intent->share_text.has_value() || !intent->files->empty()); sharesheet::SharesheetService* const sharesheet_service = sharesheet::SharesheetServiceFactory::GetForProfile(profile);
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 043b9e6..156ce54 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1647745335-9c17a374f9f5717202dadfceedb26f59e307f5d7.profdata +chrome-linux-main-1647841719-dde64178470992bb22902de35c7f6da437ef8896.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index ba90ab5..2ad9d13 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1647745335-85e886e58b76d946807de29db5f18dd28d32dfaf.profdata +chrome-mac-arm-main-1647841719-a454e0fbfad5fcdae2fb560d898b3d0572057efe.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 6bb26b7..84cc751 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1647745335-f86112fbb7d4623f227927914ba3bab2f20087ba.profdata +chrome-mac-main-1647841719-56b15eaffce97b568aeef52ba6401417768e32df.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 71c292de..b170717 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1647745335-095706efa93d8c344500507705974a4dd653c9fb.profdata +chrome-win32-main-1647831464-4da3ccbeb196fd8e5d1ba40710f9ef1f77550d0f.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 49e3418..82e6c60 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1647745335-ef4496242ab0c193ddde932696127b46174c18c6.profdata +chrome-win64-main-1647841719-46f7b39ef7348a2c1c6b5b56b06945c5cd5f3736.profdata
diff --git a/chrome/installer/linux/BUILD.gn b/chrome/installer/linux/BUILD.gn index 6fc55684..0a7f45e 100644 --- a/chrome/installer/linux/BUILD.gn +++ b/chrome/installer/linux/BUILD.gn
@@ -36,6 +36,7 @@ packaging_files_executables = [ "$root_out_dir/chrome", "$root_out_dir/chrome_crashpad_handler", + "$root_out_dir/chrome_management_service", "$root_out_dir/chrome_sandbox", ] packaging_files_shlibs = [] @@ -192,6 +193,11 @@ deps = [ "//components/crash/core/app:chrome_crashpad_handler" ] } +strip_binary("strip_chrome_management_service") { + binary_input = "$root_out_dir/chrome_management_service" + deps = [ "//chrome/browser/enterprise/connectors/device_trust/key_management/installer/management_service:chrome_management_service" ] +} + strip_binary("strip_chrome_sandbox") { binary_input = "$root_out_dir/chrome_sandbox" deps = [ "//sandbox/linux:chrome_sandbox" ] @@ -386,10 +392,12 @@ ":save_build_info", ":strip_chrome_binary", ":strip_chrome_crashpad_handler", + ":strip_chrome_management_service", ":strip_chrome_sandbox", ":theme_files", "//chrome", "//chrome:packed_resources", + "//chrome/browser/enterprise/connectors/device_trust/key_management/installer/management_service:chrome_management_service", "//chrome/browser/resources/media/mei_preload:component", "//components/crash/core/app:chrome_crashpad_handler", "//sandbox/linux:chrome_sandbox",
diff --git a/chrome/installer/linux/common/chromium-browser/chromium-browser.info b/chrome/installer/linux/common/chromium-browser/chromium-browser.info index 6f67b061..b02a49c 100644 --- a/chrome/installer/linux/common/chromium-browser/chromium-browser.info +++ b/chrome/installer/linux/common/chromium-browser/chromium-browser.info
@@ -17,6 +17,9 @@ # Base directory for package installation. INSTALLDIR=/opt/chromium.org/chromium +# Directory for device policy enrollments. +ENROLLMENTDIR=/etc/chromium/policies/enrollment + # Display string for desktop menu/icon. MENUNAME="Chromium Web Browser"
diff --git a/chrome/installer/linux/common/google-chrome/google-chrome.info b/chrome/installer/linux/common/google-chrome/google-chrome.info index 2ad1b5c..a59750ea 100644 --- a/chrome/installer/linux/common/google-chrome/google-chrome.info +++ b/chrome/installer/linux/common/google-chrome/google-chrome.info
@@ -17,6 +17,9 @@ # Base directory for package installation. INSTALLDIR=/opt/google/chrome +# Directory for device policy enrollments. +ENROLLMENTDIR=/etc/opt/chrome/policies/enrollment + # Display string for desktop menu/icon. MENUNAME="Google Chrome"
diff --git a/chrome/installer/linux/common/installer.include b/chrome/installer/linux/common/installer.include index f646063e1..6b6fa70 100644 --- a/chrome/installer/linux/common/installer.include +++ b/chrome/installer/linux/common/installer.include
@@ -86,6 +86,7 @@ -e "s#@@BUILDDIR@@#${OUTPUTDIR}#g" \ -e "s#@@STAGEDIR@@#${STAGEDIR}#g" \ -e "s#@@SCRIPTDIR@@#${SCRIPTDIR}#g" \ + -e "s#@@ENROLLMENTDIR@@#${ENROLLMENTDIR}#g" \ -e "s#@@MENUNAME@@#${MENUNAME}#g" \ -e "s#@@PRODUCTURL@@#${PRODUCTURL}#g" \ -e "s#@@PREDEPENDS@@#${PREDEPENDS}#g" \ @@ -146,6 +147,11 @@ strippedfile="${OUTPUTDIR}/chrome_crashpad_handler.stripped" install -m 755 "${strippedfile}" "${STAGEDIR}/${INSTALLDIR}/chrome_crashpad_handler" + # Final permissions for the chrome-management-service will be set in + # postinst chrome_management_service_setup(). + strippedfile="${OUTPUTDIR}/chrome_management_service.stripped" + install -m 755 "${strippedfile}" "${STAGEDIR}/${INSTALLDIR}/chrome-management-service" + # resources install -m 644 "${OUTPUTDIR}/resources.pak" "${STAGEDIR}/${INSTALLDIR}/" # TODO(mmoss): This has broken a couple times on adding new .pak files. Maybe @@ -411,6 +417,8 @@ exit 1 fi local expected_perms=777 + elif [ "${base_name}" = "chrome-management-service" ]; then + local expected_perms=755 elif [ "${base_name}" = "chrome-sandbox" ]; then local expected_perms=4755 elif [[ "${base_name}" = "nacl_irt_"*".nexe" ]]; then
diff --git a/chrome/installer/linux/common/postinst.include b/chrome/installer/linux/common/postinst.include index 4e3023e..be47cd4 100644 --- a/chrome/installer/linux/common/postinst.include +++ b/chrome/installer/linux/common/postinst.include
@@ -77,3 +77,32 @@ "^[ ]*<web-browsers>[ ]*$" \ "@@INSTALLDIR@@/default-app-block" fi + +# This function performs the setup for the chrome management service process. +# It creates a new chromemgmt group, creates the signing key file, and updates +# permissions for both the signing key file and the binary. +chrome_management_service_setup() { + if [ ! -f "$DEFAULTS_FILE" ]; then + return + fi + + if ! grep -q "install_device_trust_key_management_command=true" \ + "$DEFAULTS_FILE"; then + return + fi + + getent group chromemgmt > /dev/null || groupadd chromemgmt + + chgrp chromemgmt "@@INSTALLDIR@@/chrome-management-service" + chmod 2755 "@@INSTALLDIR@@/chrome-management-service" + + mkdir -p "@@ENROLLMENTDIR@@" + SIGNING_KEY_FILE="@@ENROLLMENTDIR@@/DeviceTrustSigningKey" + if [ ! -e "$SIGNING_KEY_FILE" ]; then + touch "$SIGNING_KEY_FILE" + chgrp chromemgmt "$SIGNING_KEY_FILE" + chmod 664 "$SIGNING_KEY_FILE" + fi +} + +chrome_management_service_setup
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 511812f..5f18dd7 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -9969,7 +9969,6 @@ data_deps = [ "//content/test:telemetry_gpu_unittest_data", - "//content/test:webgpu_cts_scripts", "//testing:test_scripts_shared", ] }
diff --git a/chrome/test/base/browser_with_test_window_test.cc b/chrome/test/base/browser_with_test_window_test.cc index f38be7e..18bc2d50cf 100644 --- a/chrome/test/base/browser_with_test_window_test.cc +++ b/chrome/test/base/browser_with_test_window_test.cc
@@ -240,8 +240,7 @@ return &cros_settings_test_helper_; } -chromeos::StubInstallAttributes* -BrowserWithTestWindowTest::GetInstallAttributes() { +ash::StubInstallAttributes* BrowserWithTestWindowTest::GetInstallAttributes() { return GetCrosSettingsHelper()->InstallAttributes(); } #endif // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/test/base/browser_with_test_window_test.h b/chrome/test/base/browser_with_test_window_test.h index 0b4c70a..bcbb31c 100644 --- a/chrome/test/base/browser_with_test_window_test.h +++ b/chrome/test/base/browser_with_test_window_test.h
@@ -207,7 +207,7 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) ash::ScopedCrosSettingsTestHelper* GetCrosSettingsHelper(); - chromeos::StubInstallAttributes* GetInstallAttributes(); + ash::StubInstallAttributes* GetInstallAttributes(); #endif private:
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn index eefb01f..74a4c33 100644 --- a/chrome/test/data/webui/BUILD.gn +++ b/chrome/test/data/webui/BUILD.gn
@@ -295,6 +295,7 @@ "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cellular_roaming_toggle_button_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cellular_setup_dialog_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/crostini_page_test.m.js", + "$root_gen_dir/chrome/test/data/webui/settings/chromeos/crostini_extra_containers_subpage_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_page_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_test_utils.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.m.js",
diff --git a/chrome/test/data/webui/settings/chromeos/BUILD.gn b/chrome/test/data/webui/settings/chromeos/BUILD.gn index 89aae80d..8c12ceb 100644 --- a/chrome/test/data/webui/settings/chromeos/BUILD.gn +++ b/chrome/test/data/webui/settings/chromeos/BUILD.gn
@@ -64,6 +64,7 @@ "cellular_setup_dialog_test.js", "change_dictation_locale_dialog_test.js", "crostini_page_test.js", + "crostini_extra_containers_subpage_test.js", "cups_printer_entry_tests.js", "cups_printer_landing_page_tests.js", "cups_printer_page_tests.js",
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/app_details_item_test.js b/chrome/test/data/webui/settings/chromeos/app_management/app_details_item_test.js index 3c10fdd..42a9f8b 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/app_details_item_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/app_details_item_test.js
@@ -217,4 +217,32 @@ appDetailsItem.shadowRoot.querySelector('#type').innerText.trim(), 'Chrome OS System App'); }); + + test('Chrome app version', async function() { + const options = { + type: apps.mojom.AppType.kChromeApp, + version: '17.2', + }; + + // Add Chrome app, and make it the currently selected app. + const app = await fakeHandler.addApp('app', options); + + app_management.AppManagementStore.getInstance().dispatch( + app_management.actions.updateSelectedAppId(app.id)); + + await fakeHandler.flushPipesForTesting(); + + assertTrue( + !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + + appDetailsItem.app = app; + + replaceBody(appDetailsItem); + fakeHandler.flushPipesForTesting(); + test_util.flushTasks(); + + expectEquals( + appDetailsItem.shadowRoot.querySelector('#version').innerText.trim(), + 'Version: 17.2'); + }); });
diff --git a/chrome/test/data/webui/settings/chromeos/crostini_extra_containers_subpage_test.js b/chrome/test/data/webui/settings/chromeos/crostini_extra_containers_subpage_test.js new file mode 100644 index 0000000..35cdabb2 --- /dev/null +++ b/chrome/test/data/webui/settings/chromeos/crostini_extra_containers_subpage_test.js
@@ -0,0 +1,198 @@ +// Copyright 2022 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. + +// clang-format off +// #import {TestCrostiniBrowserProxy} from './test_crostini_browser_proxy.m.js'; +// #import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js'; +// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; +// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// #import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; +// #import {flushTasks} from 'chrome://test/test_util.js'; +// #import {CrostiniBrowserProxy, CrostiniBrowserProxyImpl} from 'chrome://os-settings/chromeos/lazy_load.js'; +// clang-format on + +suite('CrostiniExtraContainersSubpageTests', function() { + /** @type {?SettingsCrostiniPageElement} */ + let crostiniPage = null; + + /** @type {?TestCrostiniBrowserProxy} */ + let crostiniBrowserProxy = null; + + /** @type {?SettingsCrostiniSubPageElement} */ + let subpage; + + /** @type {?Element} */ + let containerNameInput; + + /** @type {?Element} */ + let vmNameInput; + + /** @type {?Element} */ + let createButton; + + setup(async function() { + crostiniBrowserProxy = new TestCrostiniBrowserProxy(); + settings.CrostiniBrowserProxyImpl.instance_ = crostiniBrowserProxy; + crostiniPage = document.createElement('settings-crostini-page'); + document.body.appendChild(crostiniPage); + testing.Test.disableAnimationsAndTransitions(); + crostiniPage.prefs = { + crostini: { + enabled: {value: true}, + }, + }; + Polymer.dom.flush(); + settings.Router.getInstance().navigateTo( + settings.routes.CROSTINI_EXTRA_CONTAINERS); + + await test_util.flushTasks(); + subpage = crostiniPage.$$('settings-crostini-extra-containers'); + assertTrue(!!subpage); + + subpage.allContainers_ = [ + { + 'id': {'container_name': 'penguin', 'vm_name': 'termina'}, + }, + { + 'id': {'container_name': 'custom_container_1', 'vm_name': 'termina'}, + }, + { + 'id': + {'container_name': 'custom_container_2', 'vm_name': 'not_termina'}, + }, + ]; + subpage.$$('#create').click(); + + await test_util.flushTasks(); + subpage = subpage.$$('settings-crostini-create-container-dialog'); + + containerNameInput = subpage.root.querySelector('#containerNameInput'); + vmNameInput = subpage.root.querySelector('#vmNameInput'); + createButton = subpage.root.querySelector('#create'); + }); + + teardown(function() { + crostiniPage.remove(); + settings.Router.getInstance().resetRouteForTesting(); + }); + + + /** + * Helper function to enter |inputValue| in the element |input| and fire an + * input event. + * @param {!Element} inputElement + * @param {string} inputValue + */ + function setInput(inputElement, inputValue) { + inputElement.value = inputValue; + inputElement.dispatchEvent(new Event('input')); + } + + /** + * Helper function to check that the containerNameInput is valid and + * createButton is enabled. + */ + function assertValidAndEnabled() { + assertFalse(containerNameInput.invalid); + assertFalse(createButton.disabled); + } + + /** + * Helper function to check that the containerNameInput is invalid with + * |errorMsgName|, and createButton is disabled. + * @param {string} errorMsg + */ + function assertInvalidAndDisabled(errorMsgName) { + assertTrue(containerNameInput.invalid); + assertTrue(createButton.disabled); + assertEquals( + containerNameInput.errorMessage, loadTimeData.getString(errorMsgName)); + } + + test('AddContainerValidInDefaultVm', async function() { + setInput(containerNameInput, 'custom_container_2'); + assertValidAndEnabled(); + + createButton.click(); + assertEquals(1, crostiniBrowserProxy.getCallCount('createContainer')); + }); + + test('AddContainerValidInNonDefaultVm', async function() { + setInput(containerNameInput, 'custom_container_1'); + setInput(vmNameInput, 'not_termina'); + assertValidAndEnabled(); + + createButton.click(); + assertEquals(1, crostiniBrowserProxy.getCallCount('createContainer')); + }); + + test( + 'ErrorAndDisabledCreateForDefaultContainerNameInDefaultVm', + async function() { + setInput(containerNameInput, 'penguin'); + + assertInvalidAndDisabled( + 'crostiniExtraContainersCreateDialogContainerExistsError'); + }); + + test( + 'ErrorAndDisabledCreateForDefaultContainerNameInNonDefaultVm', + async function() { + setInput(containerNameInput, 'penguin'); + setInput(vmNameInput, 'not_termina'); + + assertInvalidAndDisabled( + 'crostiniExtraContainersCreateDialogContainerExistsError'); + }); + + test( + 'ErrorAndDisabledCreateForDuplicateContainerNameInDefaultVm', + async function() { + setInput(containerNameInput, 'custom_container_1'); + + assertInvalidAndDisabled( + 'crostiniExtraContainersCreateDialogContainerExistsError'); + }); + + test( + 'ErrorAndDisabledCreateForDuplicateContainerNameInNonDefaultVm', + async function() { + setInput(containerNameInput, 'custom_container_2'); + setInput(vmNameInput, 'not_termina'); + + assertInvalidAndDisabled( + 'crostiniExtraContainersCreateDialogContainerExistsError'); + }); + + test( + 'ErrorAndDisabledCreateForEmptyContainerNameInDefaultVm', + async function() { + setInput(containerNameInput, ''); + + assertInvalidAndDisabled( + 'crostiniExtraContainersCreateDialogEmptyContainerNameError'); + }); + + test( + 'ErrorAndDisabledCreateForEmptyContainerNameInNonDefaultVm', + async function() { + setInput(containerNameInput, ''); + setInput(vmNameInput, 'not_termina'); + + assertInvalidAndDisabled( + 'crostiniExtraContainersCreateDialogEmptyContainerNameError'); + }); + + test('ReenabledButtonAfterError', async function() { + setInput(containerNameInput, 'penguin'); + assertInvalidAndDisabled( + 'crostiniExtraContainersCreateDialogContainerExistsError'); + + setInput(containerNameInput, 'custom_container_2'); + assertValidAndEnabled(); + + createButton.click(); + assertEquals(1, crostiniBrowserProxy.getCallCount('createContainer')); + }); +});
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 d391dc6..74ca909 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
@@ -296,6 +296,11 @@ } }; +function crostiniTestGenPreamble() { + GEN('crostini::FakeCrostiniFeatures fake_crostini_features;'); + GEN('fake_crostini_features.SetAll(true);'); +} + TEST_F('OSSettingsAppManagementAppDetailsV3Test', 'AllJsTests', () => { mocha.run(); }); @@ -308,8 +313,7 @@ /** @override */ testGenPreamble() { - GEN('crostini::FakeCrostiniFeatures fake_crostini_features;'); - GEN('fake_crostini_features.SetAll(true);'); + return crostiniTestGenPreamble(); } }; @@ -317,6 +321,23 @@ mocha.run(); }); +var OSSettingsCrostiniExtraContainerPageV3Test = + class extends OSSettingsV3BrowserTest { + /** @override */ + get browsePreload() { + return 'chrome://os-settings/test_loader.html?module=settings/chromeos/crostini_extra_containers_subpage_test.m.js'; + } + + /** @override */ + testGenPreamble() { + return crostiniTestGenPreamble(); + } +}; + +TEST_F('OSSettingsCrostiniExtraContainerPageV3Test', 'AllJsTests', () => { + mocha.run(); +}); + [['AccessibilityPage', 'os_a11y_page_tests.m.js'], ['AboutPage', 'os_about_page_tests.m.js'], ['AccountsPage', 'add_users_tests.m.js'],
diff --git a/chromeos/dbus/constants/dbus_paths.h b/chromeos/dbus/constants/dbus_paths.h index 1295752..fd249dbf 100644 --- a/chromeos/dbus/constants/dbus_paths.h +++ b/chromeos/dbus/constants/dbus_paths.h
@@ -44,4 +44,9 @@ } // namespace dbus_paths } // namespace chromeos +// TODO(https://crbug.com/1164001): remove after the migration is finished. +namespace ash::dbus_paths { +using ::chromeos::dbus_paths::FILE_INSTALL_ATTRIBUTES; +} + #endif // CHROMEOS_DBUS_CONSTANTS_DBUS_PATHS_H_
diff --git a/chromeos/dbus/userdataauth/install_attributes_util.h b/chromeos/dbus/userdataauth/install_attributes_util.h index 98006b9..57bd2c4 100644 --- a/chromeos/dbus/userdataauth/install_attributes_util.h +++ b/chromeos/dbus/userdataauth/install_attributes_util.h
@@ -32,4 +32,13 @@ } // namespace install_attributes_util } // namespace chromeos +// TODO(https://crbug.com/1164001): remove after the migration is finished. +namespace ash::install_attributes_util { +using ::chromeos::install_attributes_util::InstallAttributesFinalize; +using ::chromeos::install_attributes_util::InstallAttributesGet; +using ::chromeos::install_attributes_util::InstallAttributesIsFirstInstall; +using ::chromeos::install_attributes_util::InstallAttributesIsInvalid; +using ::chromeos::install_attributes_util::InstallAttributesSet; +} // namespace ash::install_attributes_util + #endif // CHROMEOS_DBUS_USERDATAAUTH_INSTALL_ATTRIBUTES_UTIL_H_
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb index 91d28a7..8092de1 100644 --- a/chromeos/strings/chromeos_strings_es.xtb +++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -52,6 +52,7 @@ <translation id="1468664791493211953">Ofertas</translation> <translation id="1476467821656042872"><ph name="MANAGER" /> gestiona este dispositivo y es posible que monitorice tu actividad.</translation> <translation id="1478594628797167447">Escáner</translation> +<translation id="1486019694341708158">Activa el interruptor para seleccionar las opciones del salvapantallas</translation> <translation id="1491076385728777984">Actualizando firmware de <ph name="DEVICE_NAME" /></translation> <translation id="1499900233129743732"><ph name="MANAGER" /> gestiona a este usuario y es posible que gestione sus ajustes y supervise su actividad de forma remota.</translation> <translation id="150962533380566081">El PUK no es válido.</translation> @@ -106,6 +107,7 @@ <translation id="2105810540595158374">El dispositivo es un mando de juegos.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, versión <ph name="MILESTONE_VERSION" /></translation> <translation id="2126937207024182736"><ph name="AVAILABLE_MEMORY" /> GB de <ph name="TOTAL_MEMORY" /> GB disponibles.</translation> +<translation id="2138109643290557664">Flotando</translation> <translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2152882202543497059"><ph name="NUMBER" /> fotos</translation> <translation id="2157959690810728433">EN COLA</translation> @@ -268,6 +270,7 @@ <translation id="4271957103967917607">Ver en pantalla completa</translation> <translation id="4275799948641988986">Una vez reparado, ¿quién va a usar el dispositivo?</translation> <translation id="4289540628985791613">Vista general</translation> +<translation id="4289849978083912975">Presentación</translation> <translation id="4297501883039923494">Detenido: error desconocido</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> imágenes</translation> <translation id="4333390807948134856">Tecla <ph name="KEY_NAME" /> pulsada</translation> @@ -538,10 +541,12 @@ <translation id="7175037578838465313">Configurar <ph name="NAME" /></translation> <translation id="7177485034254901881"><ph name="MANAGER" /> gestiona este <ph name="DEVICE_TYPE" />. Los administradores pueden configurar el dispositivo de forma remota.</translation> <translation id="7180611975245234373">Actualizar</translation> +<translation id="7191009787982536050">Animación del salvapantallas</translation> <translation id="7212734716605298123">Actualizaciones de firmware para dispositivos externos</translation> <translation id="7216409898977639127">Proveedor de servicios móviles</translation> <translation id="7271040990581020067">El escáner se está usando en este momento. Vuelve a intentarlo más tarde.</translation> <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation> +<translation id="7281657306185710294">Siente la brisa</translation> <translation id="7287310195820267359">Colecciones de fondos de pantalla</translation> <translation id="7297226631177386107">No se puede conectar con sitios web HTTPS usando un cortafuegos</translation> <translation id="7302860742311162920">ICCID</translation>
diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb index 32a6f9a..7f0a3283 100644 --- a/chromeos/strings/chromeos_strings_fa.xtb +++ b/chromeos/strings/chromeos_strings_fa.xtb
@@ -52,6 +52,7 @@ <translation id="1468664791493211953">پیشنهادها</translation> <translation id="1476467821656042872"><ph name="MANAGER" /> این دستگاه را مدیریت میکند و ممکن است بتواند بر فعالیتتان نظارت داشته باشد.</translation> <translation id="1478594628797167447">اسکنر</translation> +<translation id="1486019694341708158">برای انتخاب گزینههای محافظ صفحهنمایش، کلید تغییر وضعیت را روشن کنید</translation> <translation id="1491076385728777984">درحال بهروزرسانی سفتافزار در <ph name="DEVICE_NAME" /></translation> <translation id="1499900233129743732"><ph name="MANAGER" /> این کاربر را مدیریت میکند و میتواند ازراهدور تنظیمات را مدیریت کند و بر فعالیت کاربر نظارت داشته باشد.</translation> <translation id="150962533380566081">PUK نامعتبر.</translation> @@ -106,6 +107,7 @@ <translation id="2105810540595158374">دستگاه کنترل بازی است.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />، نسخه <ph name="MILESTONE_VERSION" /></translation> <translation id="2126937207024182736"><ph name="AVAILABLE_MEMORY" /> گیگابایت از مجموع <ph name="TOTAL_MEMORY" /> گیگابایت دردسترس است</translation> +<translation id="2138109643290557664">شناور شدن</translation> <translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />٪</translation> <translation id="2152882202543497059"><ph name="NUMBER" /> عکس</translation> <translation id="2157959690810728433">در صف</translation> @@ -268,6 +270,7 @@ <translation id="4271957103967917607">مشاهده در حالت تمام صفحه</translation> <translation id="4275799948641988986">بعداز تعمیر، چه کسی از دستگاه استفاده خواهد کرد؟</translation> <translation id="4289540628985791613">نمای کلی</translation> +<translation id="4289849978083912975">نمایش اسلاید</translation> <translation id="4297501883039923494">متوقف شد - خطای نامشخص</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> تصویر</translation> <translation id="4333390807948134856">کلید <ph name="KEY_NAME" /> فشار داده شد</translation> @@ -539,10 +542,12 @@ <translation id="7175037578838465313">پیکربندی <ph name="NAME" /></translation> <translation id="7177485034254901881">این <ph name="DEVICE_TYPE" /> توسط <ph name="MANAGER" /> مدیریت میشود. سرپرستان میتوانند این دستگاه را ازراهدور پیکربندی کنند.</translation> <translation id="7180611975245234373">بازخوانی</translation> +<translation id="7191009787982536050">پویانمایی محافظ صفحهنمایش</translation> <translation id="7212734716605298123">بهروزرسانیهای سفتافزار برای دستگاههای خارجی</translation> <translation id="7216409898977639127">ارائهدهنده شبکه تلفن همراه</translation> <translation id="7271040990581020067">اسکنر درحال استفاده است. بعداً دوباره امتحان کنید.</translation> <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation> +<translation id="7281657306185710294">احساس کردن نسیم</translation> <translation id="7287310195820267359">مجموعه کاغذدیواری</translation> <translation id="7297226631177386107">نمیتوان ازطریق دیوار آتش به وبسایتهای HTTPS متصل شد</translation> <translation id="7302860742311162920">ICCID</translation>
diff --git a/chromeos/strings/chromeos_strings_ur.xtb b/chromeos/strings/chromeos_strings_ur.xtb index dfda470..b03374f5 100644 --- a/chromeos/strings/chromeos_strings_ur.xtb +++ b/chromeos/strings/chromeos_strings_ur.xtb
@@ -52,6 +52,7 @@ <translation id="1468664791493211953">پیشکشیں</translation> <translation id="1476467821656042872"><ph name="MANAGER" /> اس آلے کا نظم کرتا ہے اور آپ کی سرگرمی کو مانیٹر کر سکتا ہے۔</translation> <translation id="1478594628797167447">اسکینر</translation> +<translation id="1486019694341708158">اسکرین سیور کے اختیارات منتخب کرنے کے لیے ٹوگل آن کریں</translation> <translation id="1491076385728777984"><ph name="DEVICE_NAME" /> فرم ویئر کو اپ ڈیٹ کیا جا رہا ہے</translation> <translation id="1499900233129743732"><ph name="MANAGER" /> اس صارف کا نظم کرتا ہے اور دور سے ترتیبات کا نظم اور صارف کی سرگرمی کو مانیٹر کر سکتا ہے۔</translation> <translation id="150962533380566081">غلط PUK۔</translation> @@ -106,6 +107,7 @@ <translation id="2105810540595158374">آلہ ایک گیم کنٹرولر ہے۔</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />، ورژن <ph name="MILESTONE_VERSION" /></translation> <translation id="2126937207024182736"><ph name="TOTAL_MEMORY" /> GB میں سے <ph name="AVAILABLE_MEMORY" /> GB دستیاب ہے</translation> +<translation id="2138109643290557664">اینیمیشن کے ذریعے دکھائيں</translation> <translation id="2141644705054017895">%<ph name="PERCENTAGE_VALUE" /></translation> <translation id="2152882202543497059"><ph name="NUMBER" /> تصاویر</translation> <translation id="2157959690810728433">قطار بند</translation> @@ -268,6 +270,7 @@ <translation id="4271957103967917607">فُل اسکرین میں دیکھیں</translation> <translation id="4275799948641988986">مرمت کے بعد، کون آلہ استعمال کرے گا؟</translation> <translation id="4289540628985791613">عمومی جائزہ</translation> +<translation id="4289849978083912975">سلائیڈ شو</translation> <translation id="4297501883039923494">رک گیا - نامعلوم خرابی</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> تصاویر</translation> <translation id="4333390807948134856"><ph name="KEY_NAME" /> کلید دبائی گئی</translation> @@ -538,10 +541,12 @@ <translation id="7175037578838465313"><ph name="NAME" /> کنفیگر کریں</translation> <translation id="7177485034254901881">یہ <ph name="DEVICE_TYPE" /> <ph name="MANAGER" /> کے زیر انتظام ہے۔ منتظمین دور سے آلے کو کنفیگر کر سکتے ہیں۔</translation> <translation id="7180611975245234373">ریفریش کریں</translation> +<translation id="7191009787982536050">اسکرین سیور اینیمیشن</translation> <translation id="7212734716605298123">بیرونی آلات کیلئے فرم ویئر اپ ڈیٹس</translation> <translation id="7216409898977639127">سیلولر فراہم کنندہ</translation> <translation id="7271040990581020067">اسکینر فی الحال زیر استعمال ہے۔ بعد میں دوبارہ کوشش کریں۔</translation> <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation> +<translation id="7281657306185710294">ہوا کا جھونکا محسوس کریں</translation> <translation id="7287310195820267359">وال پیپر کے مجموعے</translation> <translation id="7297226631177386107">فائر وال کے ذریعے HTTP ویب سائٹس سے رابطہ منسلک نہیں کیا جا سکتا</translation> <translation id="7302860742311162920">ICCID</translation>
diff --git a/chromeos/strings/chromeos_strings_uz.xtb b/chromeos/strings/chromeos_strings_uz.xtb index 0c0f454b..3f7a7686 100644 --- a/chromeos/strings/chromeos_strings_uz.xtb +++ b/chromeos/strings/chromeos_strings_uz.xtb
@@ -52,6 +52,7 @@ <translation id="1468664791493211953">Takliflar</translation> <translation id="1476467821656042872">Bu qurilma <ph name="MANAGER" /> domenida boshqariladi va faoliyatingiz kuzatilishi mumkin.</translation> <translation id="1478594628797167447">Skaner</translation> +<translation id="1486019694341708158">Tugmani bosib, ekran lavhasi parametrlarini tanlang</translation> <translation id="1491076385728777984"><ph name="DEVICE_NAME" /> mikrodasturi yangilanmoqda</translation> <translation id="1499900233129743732"><ph name="MANAGER" /> bu foydalanuvchi faoliyatini masofadan kuzatishi va boshqarishi mumkin.</translation> <translation id="150962533380566081">PUK kod xato.</translation> @@ -106,6 +107,7 @@ <translation id="2105810540595158374">Qurilma — geympad</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, versiya: <ph name="MILESTONE_VERSION" /></translation> <translation id="2126937207024182736"><ph name="AVAILABLE_MEMORY" />/<ph name="TOTAL_MEMORY" /> GB joy bor</translation> +<translation id="2138109643290557664">Ustma-ust chiqadigan</translation> <translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2152882202543497059"><ph name="NUMBER" /> ta rasm</translation> <translation id="2157959690810728433">NAVBATDA</translation> @@ -268,6 +270,7 @@ <translation id="4271957103967917607">Toʻliq ekranli rejimda koʻrish</translation> <translation id="4275799948641988986">Taʼmirlashdan keyin qurilmadan kim foydalanadi?</translation> <translation id="4289540628985791613">Umumiy</translation> +<translation id="4289849978083912975">Slayd-shou</translation> <translation id="4297501883039923494">Toʻxtatildi – Notanish xato</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> ta rasm</translation> <translation id="4333390807948134856"><ph name="KEY_NAME" /> tugmasi bosildi</translation> @@ -539,10 +542,12 @@ <translation id="7175037578838465313"><ph name="NAME" /> – sozlash</translation> <translation id="7177485034254901881">Bu <ph name="DEVICE_TYPE" /> qurilmasi <ph name="MANAGER" /> domenida boshqariladi. Administratorlar qurilmani masofadan sozlashi mumkin.</translation> <translation id="7180611975245234373">Yangilash</translation> +<translation id="7191009787982536050">Ekran lavhasi animatsiyasi</translation> <translation id="7212734716605298123">Tashqi qurilmalar uchun mikrodastur yangilanishi</translation> <translation id="7216409898977639127">Mobil tarmoq</translation> <translation id="7271040990581020067">Skaner hozir band. Keyinroq urining.</translation> <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation> +<translation id="7281657306185710294">Qadab ilinadigan</translation> <translation id="7287310195820267359">Fon rasmlari termasi</translation> <translation id="7297226631177386107">HTTPS saytlarga himoya devori orqali ulanish imkonsiz</translation> <translation id="7302860742311162920">ICCID</translation>
diff --git a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb index fb7df08..bc2c749b 100644 --- a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb +++ b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb
@@ -9,6 +9,7 @@ <translation id="2783359740176230170">Hurtig betaling</translation> <translation id="3018033505440165876">Prøv Google Assistent\ni Chrome</translation> <translation id="4130750466177569591">Jeg accepterer</translation> +<translation id="4404736763084919307">Google Assistant skal have tilladelse fra dig</translation> <translation id="4437727785356380473">Google Assistent i Chrome er lukket.</translation> <translation id="4517854969512651305">Hæv værdien</translation> <translation id="4850886885716139402">Vis</translation> @@ -16,6 +17,7 @@ <translation id="4982366513646093083">Bestil mad\nmed nogle få tryk</translation> <translation id="5267269112080050255">Google Assistent i Chrome er åbnet i fuld højde.</translation> <translation id="5447168050208292829">Tjek ind på din flyafgang\nmed nogle få tryk</translation> +<translation id="5545898449961003030">Hej! Jeg kan hjælpe dig med at købe billetter med bare få tryk</translation> <translation id="5801568494490449797">Præferencer</translation> <translation id="6555233628095991027">Google Assistent i Chrome er åbnet i halv højde.</translation> <translation id="6785872064505734160">Google Assistent i Chrome kan udføre handlinger for dig på websites</translation> @@ -27,5 +29,6 @@ <translation id="7953600313732929223">Prøv stemmekommandoer\npå websites</translation> <translation id="8253702004019660079">Google Assistent i Chrome</translation> <translation id="8500511870202433545">Lej en bil\nmed nogle få tryk</translation> +<translation id="9084406551994160152">Google Assistent gør det nemmere for dig at købe filmbilletter ved hjælp af dine oplysninger, som opbevares sikkert</translation> <translation id="945522503751344254">Send feedback</translation> </translationbundle> \ No newline at end of file
diff --git a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb index 01c3f5c0..bf7b39f4 100644 --- a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb +++ b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb
@@ -9,6 +9,7 @@ <translation id="2783359740176230170">تسویهحساب سریع</translation> <translation id="3018033505440165876">«دستیار Google» را در\nChrome امتحان کنید</translation> <translation id="4130750466177569591">موافقم</translation> +<translation id="4404736763084919307">«دستیار Google» به اجازه شما نیاز دارد</translation> <translation id="4437727785356380473">«دستیار Google» در Chrome بسته شد.</translation> <translation id="4517854969512651305">افزایش مقدار</translation> <translation id="4850886885716139402">نما</translation> @@ -16,6 +17,7 @@ <translation id="4982366513646093083">فقط با چند ضربه\nغذا سفارش دهید</translation> <translation id="5267269112080050255">«دستیار Google» بهصورت کامل در Chrome باز شد.</translation> <translation id="5447168050208292829">فقط با چند ضربه\n برای پروازتان اعلام حضور کنید</translation> +<translation id="5545898449961003030">سلام، میتوانم به شما کمک کنم تنها با چند ضربه بلیت بخرید</translation> <translation id="5801568494490449797">اولویتها</translation> <translation id="6555233628095991027">«دستیار Google» بهصورت نیمه در Chrome باز شد.</translation> <translation id="6785872064505734160">«دستیار Google» در Chrome میتواند کنشهایی را در وبسایتها برایتان انجام دهد</translation> @@ -27,5 +29,6 @@ <translation id="7953600313732929223">از کنشهای گفتاری در\nوبسایتها استفاده کنید</translation> <translation id="8253702004019660079">«دستیار Google» در Chrome.</translation> <translation id="8500511870202433545">فقط با چند ضربه\nخودرو اجاره کنید</translation> +<translation id="9084406551994160152">«دستیار Google» خرید بلیت بااستفاده از اطلاعات بهطور ایمن ذخیرهشدهتان را آسانتر میکند</translation> <translation id="945522503751344254">ارسال بازخورد</translation> </translationbundle> \ No newline at end of file
diff --git a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_hy.xtb b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_hy.xtb index ab301a16..50180bb 100644 --- a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_hy.xtb +++ b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_hy.xtb
@@ -9,6 +9,7 @@ <translation id="2783359740176230170">Արագ վճարում</translation> <translation id="3018033505440165876">Փորձեք Google Օգնականը\nChrome-ում</translation> <translation id="4130750466177569591">Համաձայն եմ</translation> +<translation id="4404736763084919307">Google Օգնականին անհրաժեշտ է ձեր թույլտվությունը</translation> <translation id="4437727785356380473">Google Օգնականը Chrome-ում փակվեց:</translation> <translation id="4517854969512651305">Մեծացնել արժեքը</translation> <translation id="4850886885716139402">Տեսք</translation> @@ -16,6 +17,7 @@ <translation id="4982366513646093083">Պատվիրեք սնունդ՝\nկատարելով մի քանի հպում</translation> <translation id="5267269112080050255">Google Օգնականը Chrome-ում բացված է ամբողջությամբ։</translation> <translation id="5447168050208292829">Գրանցվեք չվերթին՝\nկատարելով մի քանի հպում</translation> +<translation id="5545898449961003030">Ողջույն, ես կարող եմ օգնել ձեզ տոմսեր գնել ընդամենը մի քանի հպումով</translation> <translation id="5801568494490449797">Նախընտրանքներ</translation> <translation id="6555233628095991027">Google Օգնականը Chrome-ում կիսով չափ է բացված։</translation> <translation id="6785872064505734160">Google Օգնականը Chrome-ում կարող է կայքերի հետ կապված գործողություններ կատարել</translation> @@ -27,5 +29,6 @@ <translation id="7953600313732929223">Փորձեք ձայնային հրահանգները\nկայքերում</translation> <translation id="8253702004019660079">Google Օգնականը Chrome-ում:</translation> <translation id="8500511870202433545">Մեքենա վարձեք՝\nկատարելով մի քանի հպում</translation> +<translation id="9084406551994160152">Google Օգնականի միջոցով կարող եք հեշտությամբ կինոյի տոմսեր գնել՝ օգտագործելով ձեր պահված տվյալները</translation> <translation id="945522503751344254">Կարծիք հայտնել</translation> </translationbundle> \ No newline at end of file
diff --git a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb index b8e83894..8a783cdc 100644 --- a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb +++ b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb
@@ -9,6 +9,7 @@ <translation id="2783359740176230170">Spartus mokėjimų apdorojimas</translation> <translation id="3018033505440165876">Išbandykite „Google“ padėjėją naršyklėje „Chrome“</translation> <translation id="4130750466177569591">Sutinku</translation> +<translation id="4404736763084919307">„Google“ padėjėjui reikia jūsų leidimo</translation> <translation id="4437727785356380473">Programa „Google Assistant“ sistemoje „Chrome“ uždaryta.</translation> <translation id="4517854969512651305">Padidinti vertę</translation> <translation id="4850886885716139402">Žiūrėti</translation> @@ -16,6 +17,7 @@ <translation id="4982366513646093083">Užsisakykite maisto vos keliais palietimais</translation> <translation id="5267269112080050255">Programa „Google Assistant“ naršyklėje „Chrome“ atidaryta viso aukščio.</translation> <translation id="5447168050208292829">Prisiregistruokite skrydžiui vos keliais palietimais</translation> +<translation id="5545898449961003030">Sveiki, galiu padėti įsigyti bilietų vos keliais palietimais</translation> <translation id="5801568494490449797">Nuostatos</translation> <translation id="6555233628095991027">Programa „Google Assistant“ naršyklėje „Chrome“ atidaryta pusės aukščio.</translation> <translation id="6785872064505734160">„Google“ padėjėjas naršyklėje „Chrome“ gali atlikti veiksmus svetainėse už jus</translation> @@ -27,5 +29,6 @@ <translation id="7953600313732929223">Išbandykite veiksmus balsu svetainėse</translation> <translation id="8253702004019660079">„Google Assistant“ sistemoje „Chrome“.</translation> <translation id="8500511870202433545">Išsinuomokite automobilį vos keliais palietimais</translation> +<translation id="9084406551994160152">„Google“ padėjėjas gali padėti lengvai įsigyti bilietų į kiną naudodamas jūsų saugiai saugomą išsamią informaciją</translation> <translation id="945522503751344254">Siųsti atsiliepimą</translation> </translationbundle> \ No newline at end of file
diff --git a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_pa.xtb b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_pa.xtb index d89b324..766b6d5 100644 --- a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_pa.xtb +++ b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_pa.xtb
@@ -9,6 +9,7 @@ <translation id="2783359740176230170">ਤੇਜ਼ ਚੈੱਕਆਊਟ</translation> <translation id="3018033505440165876">Chrome ਵਿੱਚ\nGoogle Assistant ਨੂੰ ਵਰਤ ਕੇ ਦੇਖੋ</translation> <translation id="4130750466177569591">ਮੈਂ ਸਹਿਮਤ ਹਾਂ</translation> +<translation id="4404736763084919307">Google Assistant ਨੂੰ ਤੁਹਾਡੀ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</translation> <translation id="4437727785356380473">Chrome ਵਿੱਚ Google Assistant ਬੰਦ ਹੋਇਆ।</translation> <translation id="4517854969512651305">ਮੁੱਲ ਵਧਾਓ</translation> <translation id="4850886885716139402">ਦੇਖੋ</translation> @@ -16,6 +17,7 @@ <translation id="4982366513646093083">ਬਸ ਕੁਝ ਟੈਪਾਂ ਵਿੱਚ\nਖਾਣ ਲਈ ਆਰਡਰ ਕਰੋ</translation> <translation id="5267269112080050255">Chrome ਵਿੱਚ Google Assistant ਨੂੰ ਪੂਰੀ ਉਚਾਈ 'ਤੇ ਖੋਲ੍ਹਿਆ ਗਿਆ।</translation> <translation id="5447168050208292829">ਬਸ ਕੁਝ ਟੈਪਾਂ ਵਿੱਚ\nਆਪਣੀ ਉਡਾਣ ਲਈ ਚੈੱਕ-ਇਨ ਕਰੋ</translation> +<translation id="5545898449961003030">ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ, ਮੇਰੇ ਵੱਲੋਂ ਕੁਝ ਟੈਪਾਂ ਨਾਲ ਟਿਕਟਾਂ ਖਰੀਦਣ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ</translation> <translation id="5801568494490449797">ਤਰਜੀਹਾਂ</translation> <translation id="6555233628095991027">Chrome ਵਿੱਚ Google Assistant ਨੂੰ ਅੱਧੀ ਉਚਾਈ 'ਤੇ ਖੋਲ੍ਹਿਆ ਗਿਆ।</translation> <translation id="6785872064505734160">Chrome ਵਿੱਚ Google Assistant ਸਾਰੀਆਂ ਵੈੱਬਸਾਈਟਾਂ 'ਤੇ ਤੁਹਾਡੇ ਲਈ ਕਾਰਵਾਈਆਂ ਪੂਰੀ ਕਰ ਸਕਦੀ ਹੈ</translation> @@ -27,5 +29,6 @@ <translation id="7953600313732929223">ਵੈੱਬਸਾਈਟਾਂ 'ਤੇ\nਅਵਾਜ਼ੀ ਕਾਰਵਾਈਆਂ ਕਰਕੇ ਦੇਖੋ</translation> <translation id="8253702004019660079">Chrome ਵਿੱਚ Google Assistant.</translation> <translation id="8500511870202433545">ਬਸ ਕੁਝ ਟੈਪਾਂ ਵਿੱਚ\nਕਾਰ ਕਿਰਾਏ 'ਤੇ ਲਓ</translation> +<translation id="9084406551994160152">ਤੁਹਾਡੀ Google Assistant ਤੁਹਾਡੇ ਸਟੋਰ ਕੀਤੇ ਸੁਰੱਖਿਅਤ ਵੇਰਵਿਆਂ ਨੂੰ ਵਰਤ ਕੇ ਫ਼ਿਲਮ ਟਿਕਟਾਂ ਨੂੰ ਖਰੀਦਣਾ ਵਧੇਰੇ ਆਸਾਨ ਬਣਾ ਦਿੰਦੀ ਹੈ</translation> <translation id="945522503751344254">ਪ੍ਰਤੀਕਰਮ ਭੇਜੋ</translation> </translationbundle> \ No newline at end of file
diff --git a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_te.xtb b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_te.xtb index 7871919..20e89b1e 100644 --- a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_te.xtb +++ b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_te.xtb
@@ -9,6 +9,7 @@ <translation id="2783359740176230170">వేగమైన చెక్అవుట్</translation> <translation id="3018033505440165876">Chromeలో Google Assistantను\nట్రై చేయండి</translation> <translation id="4130750466177569591">నేను అంగీకరిస్తున్నాను</translation> +<translation id="4404736763084919307">Google Assistantకు మీ అనుమతి అవసరం</translation> <translation id="4437727785356380473">Chromeలో Google అసిస్టెంట్ మూసివేయబడింది.</translation> <translation id="4517854969512651305">విలువను పెంచుతుంది</translation> <translation id="4850886885716139402">వీక్షణ</translation> @@ -16,6 +17,7 @@ <translation id="4982366513646093083">కేవలం కొన్ని సార్లు ట్యాప్ చేయడం ద్వారా\nఆహారాన్ని ఆర్డర్ చేయండి</translation> <translation id="5267269112080050255">Chromeలో Google అసిస్టెంట్ పూర్తి ఎత్తులో తెరవబడింది.</translation> <translation id="5447168050208292829">కేవలం కొన్ని సార్లు ట్యాప్ చేయడం ద్వారా\nమీ విమానంలోకి చెక్ ఇన్ చేయండి</translation> +<translation id="5545898449961003030">హాయ్, కేవలం కొన్ని ట్యాప్లు చేయడం ద్వారా టికెట్లను కొనుగోలు చేయడంలో నేను మీకు సహాయం చేయగలను</translation> <translation id="5801568494490449797">ప్రాధాన్యతలు</translation> <translation id="6555233628095991027">Chromeలో Google అసిస్టెంట్ సగం ఎత్తులో తెరవబడింది.</translation> <translation id="6785872064505734160">Chromeలో Google Assistant మీ కోసం వెబ్సైట్ల అంతటా చర్యలను పూర్తి చేయగలదు</translation> @@ -27,5 +29,6 @@ <translation id="7953600313732929223">వెబ్సైట్లలో\nవాయిస్ చర్యలను ట్రై చేయండి</translation> <translation id="8253702004019660079">Chromeలో Google అసిస్టెంట్.</translation> <translation id="8500511870202433545">కేవలం కొన్ని సార్లు ట్యాప్ చేయడం ద్వారా \nకారు అద్దెకు తీసుకోండి</translation> +<translation id="9084406551994160152">మీ Google Assistant మీరు సురక్షితంగా స్టోర్ చేసిన వివరాలను ఉపయోగించి సినిమా టికెట్లను కొనుగోలు చేయడాన్ని సులభతరం చేస్తుంది</translation> <translation id="945522503751344254">ఫీడ్బ్యాక్ పంపండి</translation> </translationbundle> \ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb index 610b906c..de6ce3a 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
@@ -77,6 +77,7 @@ <translation id="2687403674020088961">Bloquear todas las cookies (no recomendado)</translation> <translation id="2704606927547763573">Copiado</translation> <translation id="2717722538473713889">Direcciones de correo electrónico</translation> +<translation id="2750481671343847896">Los sitios pueden mostrar solicitudes de inicio de sesión de servicios de identidad.</translation> <translation id="2785051990912111074">Se borrarán las cookies de <ph name="WEBSITE" />.</translation> <translation id="2822354292072154809">¿Seguro que quieres restablecer todos los permisos de los sitios de <ph name="CHOSEN_OBJECT_NAME" />?</translation> <translation id="2870560284913253234">Sitio</translation> @@ -112,6 +113,7 @@ <translation id="3763247130972274048">Toca dos veces a la derecha o a la izquierda del vídeo para saltar 10 s</translation> <translation id="3797520601150691162">El tema oscuro no se aplica a un sitio específico</translation> <translation id="381841723434055211">Números de teléfono</translation> +<translation id="3826050100957962900">Inicio de sesión de terceros</translation> <translation id="3835233591525155343">Uso de tu dispositivo</translation> <translation id="385051799172605136">Volver</translation> <translation id="3859306556332390985">Buscar hacia delante</translation> @@ -235,6 +237,7 @@ <translation id="6643016212128521049">Borrar</translation> <translation id="6689172468748959065">Fotos de perfil</translation> <translation id="6697925417670533197">Descargas activas</translation> +<translation id="6722828510648505498">Bloquea las solicitudes de inicio de sesión de servicios de identidad.</translation> <translation id="6746124502594467657">Bajar</translation> <translation id="6749077623962119521">¿Restablecer permisos?</translation> <translation id="6766622839693428701">Desliza el dedo hacia abajo para cerrarla.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb index cea304e..78878c0 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
@@ -77,6 +77,7 @@ <translation id="2687403674020088961">مسدود کردن همه کوکیها (توصیه نمیشود)</translation> <translation id="2704606927547763573">کپی شد</translation> <translation id="2717722538473713889">آدرسهای ایمیل</translation> +<translation id="2750481671343847896">سایتها میتوانند پیاموارههای ورود به سیستم سرویسهای تعیین هویت را نشان دهند.</translation> <translation id="2785051990912111074">این گزینه کوکیها را برای <ph name="WEBSITE" /> پاک خواهد کرد</translation> <translation id="2822354292072154809">مطمئناید میخواهید همه مجوزهای سایت مربوط به <ph name="CHOSEN_OBJECT_NAME" /> را بازنشانی کنید؟</translation> <translation id="2870560284913253234">سایت</translation> @@ -112,6 +113,7 @@ <translation id="3763247130972274048">در سمت راست یا چپ ویدیو دو ضربه سریع بزنید تا ۱۰ ثانیه رد شود</translation> <translation id="3797520601150691162">طرحزمینه تیره برای سایت خاصی استفاده نشود</translation> <translation id="381841723434055211">شمارههای تلفن</translation> +<translation id="3826050100957962900">ورود به سیستم شخص ثالث</translation> <translation id="3835233591525155343">استفاده از دستگاه</translation> <translation id="385051799172605136">بازگشت</translation> <translation id="3859306556332390985">جستجو به جلو</translation> @@ -235,6 +237,7 @@ <translation id="6643016212128521049">پاک کردن</translation> <translation id="6689172468748959065">عکسهای نمایه</translation> <translation id="6697925417670533197">بارگیریهای فعال</translation> +<translation id="6722828510648505498">پیاموارههای ورود به سیستم سرویسهای تعیین هویت مسدود میشود.</translation> <translation id="6746124502594467657">انتقال به پایین</translation> <translation id="6749077623962119521">اجازهها بازنشانی شوند؟</translation> <translation id="6766622839693428701">برای بستن، تند بهپایین بکشید.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb index 0709fdb7..ae08270b 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb
@@ -77,6 +77,7 @@ <translation id="2687403674020088961">سبھی کوکیز مسدود کریں (تجویز نہیں کی جاتی ہے)</translation> <translation id="2704606927547763573">کاپی کیا</translation> <translation id="2717722538473713889">ای میل پتے</translation> +<translation id="2750481671343847896">سائٹس شناختی سروسز سے سائن ان پرامپٹس دکھا سکتی ہیں۔</translation> <translation id="2785051990912111074">یہ انتخاب <ph name="WEBSITE" /> کے لیے کوکیز کو صاف کرے گا</translation> <translation id="2822354292072154809">کیا آپ واقعی <ph name="CHOSEN_OBJECT_NAME" /> کے لیے سائٹ کی سبھی اجازتوں کو دوبارہ ترتیب دینا چاہتے ہیں؟</translation> <translation id="2870560284913253234">سائٹ</translation> @@ -112,6 +113,7 @@ <translation id="3763247130972274048">10 سیکنڈ کو نظر انداز کرنے کے لیے، دائیں یا بائیں ویڈیو پر دوبار تھپتھپائیں</translation> <translation id="3797520601150691162">کسی مخصوص سائٹ کیلئے گہری تھیم لاگو نہ کریں</translation> <translation id="381841723434055211">فون نمبرز</translation> +<translation id="3826050100957962900">فریق ثالث سائن ان</translation> <translation id="3835233591525155343">آپ کے آلے کا استعمال</translation> <translation id="385051799172605136">پیچھے</translation> <translation id="3859306556332390985">آگے لے جائیں</translation> @@ -235,6 +237,7 @@ <translation id="6643016212128521049">صاف کریں</translation> <translation id="6689172468748959065">پروفائل کی تصاویر</translation> <translation id="6697925417670533197">فعال ڈاؤن لوڈز</translation> +<translation id="6722828510648505498">شناختی سروسز سے سائن ان کے پرامپٹس مسدود کریں۔</translation> <translation id="6746124502594467657">نیچے منتقل کریں</translation> <translation id="6749077623962119521">اجازتیں ری سیٹ کریں؟</translation> <translation id="6766622839693428701">بند کرنے کے لئے نیچے سوائپ کریں۔</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb index 52b7513..fb263b1e 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb
@@ -77,6 +77,7 @@ <translation id="2687403674020088961">Barcha cookie fayllarini taqiqlash (tavsiya etilmaydi)</translation> <translation id="2704606927547763573">Nusxa olindi</translation> <translation id="2717722538473713889">Email manzillar</translation> +<translation id="2750481671343847896">Saytlar shaxsni tasdiqlash xizmatlariga kirish oynalarini chiqarishi mumkin</translation> <translation id="2785051990912111074">Bunda <ph name="WEBSITE" /> cookie fayllari tozalanadi</translation> <translation id="2822354292072154809"><ph name="CHOSEN_OBJECT_NAME" /> uchun barcha sayt ruxsatnomalari ilk holatga qaytarilsinmi?</translation> <translation id="2870560284913253234">Sayt</translation> @@ -112,6 +113,7 @@ <translation id="3763247130972274048">10 soniya oʻtkazish uchun chap yoki oʻng tomoniga ikki marta bosing</translation> <translation id="3797520601150691162">Maxsus saytlar uchun tungi mavzu tatbiq etilmaydi</translation> <translation id="381841723434055211">Telefon raqamlari</translation> +<translation id="3826050100957962900">Tashqi xizmatga kirish</translation> <translation id="3835233591525155343">Qurilmadan foydalanish</translation> <translation id="385051799172605136">Orqaga</translation> <translation id="3859306556332390985">Oldinga surish</translation> @@ -235,6 +237,7 @@ <translation id="6643016212128521049">Tozalash</translation> <translation id="6689172468748959065">Profil rasmlari</translation> <translation id="6697925417670533197">Faol yuklanmalar</translation> +<translation id="6722828510648505498">Shaxsni tasdiqlash xizmatlariga kirish oynalarini bloklash</translation> <translation id="6746124502594467657">Pastga tushish</translation> <translation id="6749077623962119521">Ruxsatlar tiklansinmi?</translation> <translation id="6766622839693428701">Yopish uchun pastga suring.</translation>
diff --git a/components/browser_ui/widget/android/BUILD.gn b/components/browser_ui/widget/android/BUILD.gn index 0735e65..fe09e7fc3 100644 --- a/components/browser_ui/widget/android/BUILD.gn +++ b/components/browser_ui/widget/android/BUILD.gn
@@ -162,6 +162,7 @@ "java/res/drawable-hdpi/ic_arrow_back_white_24dp.png", "java/res/drawable-hdpi/ic_check_googblue_24dp.png", "java/res/drawable-hdpi/ic_drag_handle_grey600_24dp.png", + "java/res/drawable-hdpi/ic_error_outline_googblue_24dp.png", "java/res/drawable-hdpi/ic_more_vert_24dp_on_dark_bg.png", "java/res/drawable-hdpi/ic_more_vert_24dp_on_light_bg.png", "java/res/drawable-mdpi/btn_delete_24dp.png", @@ -169,6 +170,7 @@ "java/res/drawable-mdpi/ic_arrow_back_white_24dp.png", "java/res/drawable-mdpi/ic_check_googblue_24dp.png", "java/res/drawable-mdpi/ic_drag_handle_grey600_24dp.png", + "java/res/drawable-mdpi/ic_error_outline_googblue_24dp.png", "java/res/drawable-mdpi/ic_more_vert_24dp_on_dark_bg.png", "java/res/drawable-mdpi/ic_more_vert_24dp_on_light_bg.png", "java/res/drawable-v23/app_menu_bg.xml", @@ -193,6 +195,7 @@ "java/res/drawable-xhdpi/ic_arrow_back_white_24dp.png", "java/res/drawable-xhdpi/ic_check_googblue_24dp.png", "java/res/drawable-xhdpi/ic_drag_handle_grey600_24dp.png", + "java/res/drawable-xhdpi/ic_error_outline_googblue_24dp.png", "java/res/drawable-xhdpi/ic_more_vert_24dp_on_dark_bg.png", "java/res/drawable-xhdpi/ic_more_vert_24dp_on_light_bg.png", "java/res/drawable-xxhdpi/btn_delete_24dp.png", @@ -200,6 +203,7 @@ "java/res/drawable-xxhdpi/ic_arrow_back_white_24dp.png", "java/res/drawable-xxhdpi/ic_check_googblue_24dp.png", "java/res/drawable-xxhdpi/ic_drag_handle_grey600_24dp.png", + "java/res/drawable-xxhdpi/ic_error_outline_googblue_24dp.png", "java/res/drawable-xxhdpi/ic_more_vert_24dp_on_dark_bg.png", "java/res/drawable-xxhdpi/ic_more_vert_24dp_on_light_bg.png", "java/res/drawable-xxxhdpi/btn_delete_24dp.png", @@ -207,6 +211,7 @@ "java/res/drawable-xxxhdpi/ic_arrow_back_white_24dp.png", "java/res/drawable-xxxhdpi/ic_check_googblue_24dp.png", "java/res/drawable-xxxhdpi/ic_drag_handle_grey600_24dp.png", + "java/res/drawable-xxxhdpi/ic_error_outline_googblue_24dp.png", "java/res/drawable-xxxhdpi/ic_more_vert_24dp_on_dark_bg.png", "java/res/drawable-xxxhdpi/ic_more_vert_24dp_on_light_bg.png", "java/res/drawable/async_image_view_unavailable.xml",
diff --git a/chrome/android/java/res/drawable-hdpi/ic_error_outline_googblue_24dp.png b/components/browser_ui/widget/android/java/res/drawable-hdpi/ic_error_outline_googblue_24dp.png similarity index 100% rename from chrome/android/java/res/drawable-hdpi/ic_error_outline_googblue_24dp.png rename to components/browser_ui/widget/android/java/res/drawable-hdpi/ic_error_outline_googblue_24dp.png Binary files differ
diff --git a/chrome/android/java/res/drawable-mdpi/ic_error_outline_googblue_24dp.png b/components/browser_ui/widget/android/java/res/drawable-mdpi/ic_error_outline_googblue_24dp.png similarity index 100% rename from chrome/android/java/res/drawable-mdpi/ic_error_outline_googblue_24dp.png rename to components/browser_ui/widget/android/java/res/drawable-mdpi/ic_error_outline_googblue_24dp.png Binary files differ
diff --git a/chrome/android/java/res/drawable-xhdpi/ic_error_outline_googblue_24dp.png b/components/browser_ui/widget/android/java/res/drawable-xhdpi/ic_error_outline_googblue_24dp.png similarity index 100% rename from chrome/android/java/res/drawable-xhdpi/ic_error_outline_googblue_24dp.png rename to components/browser_ui/widget/android/java/res/drawable-xhdpi/ic_error_outline_googblue_24dp.png Binary files differ
diff --git a/chrome/android/java/res/drawable-xxhdpi/ic_error_outline_googblue_24dp.png b/components/browser_ui/widget/android/java/res/drawable-xxhdpi/ic_error_outline_googblue_24dp.png similarity index 100% rename from chrome/android/java/res/drawable-xxhdpi/ic_error_outline_googblue_24dp.png rename to components/browser_ui/widget/android/java/res/drawable-xxhdpi/ic_error_outline_googblue_24dp.png Binary files differ
diff --git a/chrome/android/java/res/drawable-xxxhdpi/ic_error_outline_googblue_24dp.png b/components/browser_ui/widget/android/java/res/drawable-xxxhdpi/ic_error_outline_googblue_24dp.png similarity index 100% rename from chrome/android/java/res/drawable-xxxhdpi/ic_error_outline_googblue_24dp.png rename to components/browser_ui/widget/android/java/res/drawable-xxxhdpi/ic_error_outline_googblue_24dp.png Binary files differ
diff --git a/components/exo/wayland/BUILD.gn b/components/exo/wayland/BUILD.gn index 32f8226..7f6c2e3 100644 --- a/components/exo/wayland/BUILD.gn +++ b/components/exo/wayland/BUILD.gn
@@ -252,11 +252,16 @@ source_set("unit_tests") { testonly = true - sources = [ "server_unittest.cc" ] + sources = [ + "server_unittest.cc", + "test/wayland_server_test_base.cc", + "test/wayland_server_test_base.h", + ] deps = [ ":wayland", "//base", + "//base/test:test_support", "//build:chromeos_buildflags", "//components/exo", "//components/exo:test_support",
diff --git a/components/exo/wayland/server_unittest.cc b/components/exo/wayland/server_unittest.cc index e4757235..02a95f2 100644 --- a/components/exo/wayland/server_unittest.cc +++ b/components/exo/wayland/server_unittest.cc
@@ -14,83 +14,30 @@ #include "base/bind.h" #include "base/files/file_enumerator.h" #include "base/files/file_util.h" -#include "base/files/scoped_temp_dir.h" #include "base/process/process_handle.h" #include "base/run_loop.h" -#include "base/strings/string_util.h" -#include "base/strings/stringprintf.h" -#include "base/threading/thread.h" -#include "build/chromeos_buildflags.h" +#include "base/test/bind.h" #include "components/exo/capabilities.h" #include "components/exo/display.h" -#include "components/exo/test/exo_test_base_views.h" #include "components/exo/wayland/server_util.h" +#include "components/exo/wayland/test/wayland_server_test_base.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -#if BUILDFLAG(IS_CHROMEOS_ASH) -#include "components/exo/test/exo_test_base.h" -#endif - namespace exo { namespace wayland { -namespace { -base::AtomicSequenceNumber g_next_socket_id; - -std::string GetUniqueSocketName() { - return base::StringPrintf("wayland-test-%d-%d", base::GetCurrentProcId(), - g_next_socket_id.GetNext()); -} - -// Use ExoTestBase on Chrome OS because Server starts to depends on ash::Shell, -// which is unavailable on other platforms so then ExoTestBaseViews instead. -using TestBase = -#if BUILDFLAG(IS_CHROMEOS_ASH) - test::ExoTestBase -#else - test::ExoTestBaseViews -#endif - ; - -class TestCapabilities : public Capabilities { - public: - std::string GetSecurityContext() const override { return "test"; } -}; - -class ServerTest : public TestBase { - public: - ServerTest() = default; - ServerTest(const ServerTest&) = delete; - ServerTest& operator=(const ServerTest&) = delete; - ~ServerTest() override = default; - - void SetUp() override { - ASSERT_TRUE(xdg_temp_dir_.CreateUniqueTempDir()); - setenv("XDG_RUNTIME_DIR", xdg_temp_dir_.GetPath().MaybeAsASCII().c_str(), - 1 /* overwrite */); - TestBase::SetUp(); - } - - protected: - base::ScopedTempDir xdg_temp_dir_; -}; +using ServerTest = test::WaylandServerTestBase; TEST_F(ServerTest, AddSocket) { - std::unique_ptr<Display> display(new Display); - std::unique_ptr<Server> server( - new Server(display.get(), Capabilities::GetDefaultCapabilities())); - server->Initialize(); + auto server = CreateServer(Capabilities::GetDefaultCapabilities()); // Check that calling AddSocket() with a unique socket name succeeds. bool rv = server->AddSocket(GetUniqueSocketName()); EXPECT_TRUE(rv); } TEST_F(ServerTest, GetFileDescriptor) { - std::unique_ptr<Display> display(new Display); - std::unique_ptr<Server> server( - new Server(display.get(), Capabilities::GetDefaultCapabilities())); - server->Initialize(); + auto server = CreateServer(Capabilities::GetDefaultCapabilities()); bool rv = server->AddSocket(GetUniqueSocketName()); EXPECT_TRUE(rv); @@ -104,11 +51,9 @@ Capabilities::GetDefaultCapabilities(); Capabilities* capability_ptr = capabilities.get(); - Display display; - Server server(&display, std::move(capabilities)); - server.Initialize(); + auto server = CreateServer(std::move(capabilities)); - EXPECT_EQ(GetCapabilities(server.GetWaylandDisplayForTesting()), + EXPECT_EQ(GetCapabilities(server->GetWaylandDisplayForTesting()), capability_ptr); } @@ -116,8 +61,6 @@ using MockServerFunction = testing::MockFunction<void(bool, const base::FilePath&)>; - std::unique_ptr<Display> display(new Display); - base::ScopedTempDir non_xdg_dir; ASSERT_TRUE(non_xdg_dir.CreateUniqueTempDir()); @@ -132,8 +75,7 @@ run_loop.Quit(); })); - std::unique_ptr<Server> server = - Server::Create(display.get(), std::make_unique<TestCapabilities>()); + auto server = CreateServer(); server->StartAsync(base::BindOnce(&MockServerFunction::Call, base::Unretained(&server_callback))); run_loop.Run(); @@ -147,49 +89,31 @@ EXPECT_FALSE(base::PathExists(server_socket)); } -void ConnectToServer(const std::string socket_name, - bool* connected_to_server, - base::WaitableEvent* event) { - wl_display* display = wl_display_connect(socket_name.c_str()); - *connected_to_server = !!display; - event->Signal(); - wl_display_disconnect(display); -} - TEST_F(ServerTest, Dispatch) { - std::unique_ptr<Display> display(new Display); - std::unique_ptr<Server> server( - new Server(display.get(), Capabilities::GetDefaultCapabilities())); - server->Initialize(); + auto server = CreateServer(Capabilities::GetDefaultCapabilities()); std::string socket_name = GetUniqueSocketName(); bool rv = server->AddSocket(socket_name); EXPECT_TRUE(rv); - base::Thread client("client-" + socket_name); - ASSERT_TRUE(client.Start()); + test::WaylandClientRunner client(server.get(), "client-" + socket_name); + wl_display* client_display; // Post a task that connects server on the created thread. bool connected_to_server = false; - base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, - base::WaitableEvent::InitialState::NOT_SIGNALED); - client.task_runner()->PostTask(FROM_HERE, - base::BindOnce(&ConnectToServer, socket_name, - &connected_to_server, &event)); + client.RunAndWait(base::BindLambdaForTesting([&]() { + client_display = wl_display_connect(socket_name.c_str()); + connected_to_server = !!client_display; + })); - // Call Dispatch() with a 5 second timeout. - server->Dispatch(base::Seconds(5)); - - // Check if client thread managed to connect to server. - event.Wait(); EXPECT_TRUE(connected_to_server); + + client.RunAndWait(base::BindLambdaForTesting( + [&]() { wl_display_disconnect(client_display); })); } TEST_F(ServerTest, Flush) { - std::unique_ptr<Display> display(new Display); - std::unique_ptr<Server> server( - new Server(display.get(), Capabilities::GetDefaultCapabilities())); - server->Initialize(); + auto server = CreateServer(Capabilities::GetDefaultCapabilities()); bool rv = server->AddSocket(GetUniqueSocketName()); EXPECT_TRUE(rv); @@ -198,6 +122,5 @@ server->Flush(); } -} // namespace } // namespace wayland } // namespace exo
diff --git a/components/exo/wayland/test/wayland_server_test_base.cc b/components/exo/wayland/test/wayland_server_test_base.cc new file mode 100644 index 0000000..a9b6567 --- /dev/null +++ b/components/exo/wayland/test/wayland_server_test_base.cc
@@ -0,0 +1,106 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/exo/wayland/test/wayland_server_test_base.h" + +#include <stdlib.h> + +#include <wayland-client-core.h> + +#include <memory> + +#include "base/atomic_sequence_num.h" +#include "base/bind.h" +#include "base/files/file_enumerator.h" +#include "base/files/file_util.h" +#include "base/process/process_handle.h" +#include "base/run_loop.h" +#include "base/strings/string_util.h" +#include "base/strings/stringprintf.h" +#include "base/test/bind.h" +#include "base/threading/thread.h" +#include "components/exo/capabilities.h" +#include "components/exo/display.h" +#include "components/exo/test/exo_test_base_views.h" +#include "components/exo/wayland/server.h" +#include "components/exo/wayland/server_util.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace exo { +namespace wayland { +namespace test { +namespace { + +base::AtomicSequenceNumber g_next_socket_id; + +class TestCapabilities : public Capabilities { + public: + std::string GetSecurityContext() const override { return "test"; } +}; + +} // namespace + +// static +std::string WaylandServerTestBase::GetUniqueSocketName() { + return base::StringPrintf("wayland-test-%d-%d", base::GetCurrentProcId(), + g_next_socket_id.GetNext()); +} + +WaylandServerTestBase::WaylandServerTestBase() = default; + +WaylandServerTestBase::~WaylandServerTestBase() = default; + +void WaylandServerTestBase::SetUp() { + ASSERT_TRUE(xdg_temp_dir_.CreateUniqueTempDir()); + setenv("XDG_RUNTIME_DIR", xdg_temp_dir_.GetPath().MaybeAsASCII().c_str(), + 1 /* overwrite */); + TestBase::SetUp(); + display_ = std::make_unique<Display>(); +} + +void WaylandServerTestBase::TearDown() { + display_.reset(); + TestBase::TearDown(); +} + +std::unique_ptr<Server> WaylandServerTestBase::CreateServer() { + return CreateServer(std::make_unique<TestCapabilities>()); +} + +std::unique_ptr<Server> WaylandServerTestBase::CreateServer( + std::unique_ptr<Capabilities> capabilities) { + if (!capabilities) + capabilities = std::make_unique<TestCapabilities>(); + return Server::Create(display_.get(), std::move(capabilities)); +} + +WaylandClientRunner::WaylandClientRunner(Server* server, + const std::string& name) + : base::Thread(name), + server_(server), + event_(base::WaitableEvent::ResetPolicy::AUTOMATIC, + base::WaitableEvent::InitialState::NOT_SIGNALED) { + Start(); +} + +void WaylandClientRunner::RunAndWait(base::OnceClosure callback) { + event_.Reset(); + + task_runner()->PostTask( + FROM_HERE, + (base::BindOnce( + [](base::OnceClosure callback, base::WaitableEvent* event) { + std::move(callback).Run(); + event->Signal(); + }, + std::move(callback), &event_))); + + while (!event_.IsSignaled()) + server_->Dispatch(base::Milliseconds(10)); +} + +} // namespace test +} // namespace wayland +} // namespace exo
diff --git a/components/exo/wayland/test/wayland_server_test_base.h b/components/exo/wayland/test/wayland_server_test_base.h new file mode 100644 index 0000000..19dce36 --- /dev/null +++ b/components/exo/wayland/test/wayland_server_test_base.h
@@ -0,0 +1,81 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_EXO_WAYLAND_TEST_WAYLAND_SERVER_TEST_BASE_H_ +#define COMPONENTS_EXO_WAYLAND_TEST_WAYLAND_SERVER_TEST_BASE_H_ + +#include <memory> + +#include "base/callback.h" +#include "base/files/scoped_temp_dir.h" +#include "base/threading/thread.h" +#include "build/chromeos_buildflags.h" + +#if BUILDFLAG(IS_CHROMEOS_ASH) +#include "components/exo/test/exo_test_base.h" +#else +#include "components/exo/test/exo_test_base_views.h" +#endif + +namespace exo { +class Capabilities; +class Display; + +namespace wayland { +class Server; + +namespace test { + +// Use ExoTestBase on Chrome OS because Server starts to depends on ash::Shell, +// which is unavailable on other platforms so then ExoTestBaseViews instead. +using TestBase = +#if BUILDFLAG(IS_CHROMEOS_ASH) + exo::test::ExoTestBase +#else + exo::test::ExoTestBaseViews +#endif + ; + +// Base class for tests that create an exo's wayland server. +class WaylandServerTestBase : public TestBase { + public: + static std::string GetUniqueSocketName(); + + WaylandServerTestBase(); + WaylandServerTestBase(const WaylandServerTestBase&) = delete; + WaylandServerTestBase& operator=(const WaylandServerTestBase&) = delete; + ~WaylandServerTestBase() override; + + void SetUp() override; + void TearDown() override; + + std::unique_ptr<Server> CreateServer( + std::unique_ptr<Capabilities> capabilities); + std::unique_ptr<Server> CreateServer(); + + protected: + std::unique_ptr<Display> display_; + base::ScopedTempDir xdg_temp_dir_; +}; + +// A class to support a client side code on a separate thread. +class WaylandClientRunner : base::Thread { + public: + WaylandClientRunner(Server* server, const std::string& name); + WaylandClientRunner(const WaylandClientRunner&) = delete; + WaylandClientRunner& operator=(const WaylandClientRunner&) = delete; + ~WaylandClientRunner() override = default; + + void RunAndWait(base::OnceClosure callback); + + private: + Server* server_; // not owned. server must outlive WaylandClientRunner. + base::WaitableEvent event_; +}; + +} // namespace test +} // namespace wayland +} // namespace exo + +#endif // COMPONENTS_EXO_WAYLAND_TEST_WAYLAND_SERVER_TEST_BASE_H_
diff --git a/components/signin/core/browser/account_reconcilor_unittest.cc b/components/signin/core/browser/account_reconcilor_unittest.cc index ca41105..81299e3d 100644 --- a/components/signin/core/browser/account_reconcilor_unittest.cc +++ b/components/signin/core/browser/account_reconcilor_unittest.cc
@@ -1428,10 +1428,9 @@ } private: - chromeos::ScopedStubInstallAttributes install_attributes_{ - chromeos::StubInstallAttributes::CreateActiveDirectoryManaged( - "realm.com", - "device_id")}; + ash::ScopedStubInstallAttributes install_attributes_{ + ash::StubInstallAttributes::CreateActiveDirectoryManaged("realm.com", + "device_id")}; }; // clang-format off
diff --git a/components/signin/core/browser/active_directory_account_reconcilor_delegate.cc b/components/signin/core/browser/active_directory_account_reconcilor_delegate.cc index c5360ea..1e720841 100644 --- a/components/signin/core/browser/active_directory_account_reconcilor_delegate.cc +++ b/components/signin/core/browser/active_directory_account_reconcilor_delegate.cc
@@ -12,7 +12,7 @@ ActiveDirectoryAccountReconcilorDelegate:: ActiveDirectoryAccountReconcilorDelegate() { - DCHECK(chromeos::InstallAttributes::Get()->IsActiveDirectoryManaged()); + DCHECK(ash::InstallAttributes::Get()->IsActiveDirectoryManaged()); } ActiveDirectoryAccountReconcilorDelegate::
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index ccbe76b..ec8247d 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -574,6 +574,7 @@ <translation id="2666092431469916601">Top</translation> <translation id="2666117266261740852">Luk andre faner eller apps</translation> <translation id="2672201172023654893">Din browser administreres ikke.</translation> +<translation id="2673968385134502798">Spil</translation> <translation id="2674170444375937751">Er du sikker på, at du vil slette disse sider fra din historik?</translation> <translation id="2674804415323431591">Skjul forslag</translation> <translation id="2676271551327853224">Roc-8K</translation> @@ -607,6 +608,7 @@ <translation id="2775884851269838147">Første udskriftsside</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2784949926578158345">Forbindelsen blev nulstillet.</translation> +<translation id="2791176355335562114">Betal hurtigere næste gang</translation> <translation id="2792012897584536778">Administratorer for denne enhed har konfigureret sikkerhedscertifikater, som muligvis giver dem mulighed for at se indholdet af de websites, du besøger.</translation> <translation id="2799020568854403057">Det website, du er på vej til, indeholder skadelige apps</translation> <translation id="2799223571221894425">Genstart</translation> @@ -1851,6 +1853,7 @@ <translation id="6825578344716086703">Du forsøgte at få fat i <ph name="DOMAIN" />, men serveren præsenterede et certifikat, der er signeret med en svag signaturalgoritme (f.eks. SHA-1). Det betyder, at sikkerhedsoplysningerne fra serveren kan være forfalskede, og at serveren muligvis ikke er den server, som du forventede (du kommunikerer muligvis med en person med ondsindede hensigter).</translation> <translation id="6826993739343257035">Vil du tillade AR?</translation> <translation id="6831043979455480757">Oversæt</translation> +<translation id="6833752742582340615">Gem dit kort og dine faktureringsoplysninger på din Google-konto for at betale hurtigere og mere sikkert</translation> <translation id="6839929833149231406">Område</translation> <translation id="6846340164947227603">Brug et virtuelt kortnummer...</translation> <translation id="6852204201400771460">Vil du genindlæse appen?</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb index 589385f..d5a5254 100644 --- a/components/strings/components_strings_es.xtb +++ b/components/strings/components_strings_es.xtb
@@ -171,6 +171,7 @@ <translation id="1436185428532214179">Puede solicitar permiso para editar archivos y carpetas de tu dispositivo</translation> <translation id="1442386063175183758">Plegado en ventana a la derecha</translation> <translation id="1442987760062738829">Perforar</translation> +<translation id="1446396933673057385">Comprobación de la fiabilidad</translation> <translation id="1447067628680007684">(x86_64)</translation> <translation id="1453974140256777690">El texto que pegas o adjuntas se envía a Google Cloud o a terceros para que se analice. Por ejemplo, puede que se analice para buscar datos sensibles.</translation> <translation id="1455413310270022028">Goma de borrar</translation> @@ -462,6 +463,7 @@ <translation id="2318594867107319532">Última marca de tiempo de la política:</translation> <translation id="2328651992442742497">Permitido (predeterminado)</translation> <translation id="2329182534073751090">ubicación de ventanas</translation> +<translation id="2329473609445770916">Este sitio define intereses que otros sitios pueden usar para mostrarte anuncios</translation> <translation id="2330137317877982892"><ph name="CREDIT_CARD" />; fecha de caducidad: <ph name="EXPIRATION_DATE_ABBR" /></translation> <translation id="2337852623177822836">Configuración controlada por el administrador</translation> <translation id="2340263603246777781"><ph name="ORIGIN" /> quiere emparejarse</translation> @@ -739,6 +741,7 @@ <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />: pulsa Tabulador y, después, Intro para personalizar el diseño de tu navegador</translation> <translation id="3240791268468473923">Se ha abierto la hoja de credenciales de pago seguro con una credencial que no coincide</translation> <translation id="324180406144491771">Los enlaces de <ph name="HOST_NAME" /> se han bloqueado</translation> +<translation id="3248611290851046188">Este sitio define intereses que otros sitios pueden usar para mostrarte anuncios. Este sitio también consulta tus intereses de Chrome para mostrarte anuncios más relevantes.</translation> <translation id="3249845759089040423">Estilosa</translation> <translation id="3252266817569339921">Francés</translation> <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y luego Intro para crear un nuevo evento en Google Calendar rápidamente</translation> @@ -850,6 +853,7 @@ <translation id="3586931643579894722">Ocultar detalles</translation> <translation id="3587738293690942763">Medio</translation> <translation id="3592413004129370115">Italian (sobre)</translation> +<translation id="3595645257662173296">¿Qué pruebas la respaldan?</translation> <translation id="3595699422137460894">{NUM_DAYS,plural, =0{Puedes restablecer tu grupo en cualquier momento. Se tarda alrededor de un día en unirse a un nuevo grupo.}=1{Puedes restablecer tu grupo en cualquier momento. Se tarda alrededor de un día en unirse a un nuevo grupo.}other{Puedes restablecer tu grupo en cualquier momento. Se tardan {NUM_DAYS} días en unirse a un nuevo grupo.}}</translation> <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation> <translation id="3603507503523709">Tu administrador ha bloqueado esta aplicación</translation> @@ -1669,6 +1673,7 @@ <translation id="6165508094623778733">Más información</translation> <translation id="6167577165590485365">Último intento de obtención:</translation> <translation id="6169916984152623906">Ahora puedes navegar de forma privada; las otras personas que usen este dispositivo no verán tu actividad. No obstante, se guardarán las descargas y los marcadores.</translation> +<translation id="6176716740821145453">Piensa un momento en la fiabilidad</translation> <translation id="6177128806592000436">La conexión con este sitio web no es segura</translation> <translation id="6180316780098470077">Intervalo de reintentos</translation> <translation id="6196640612572343990">Bloquear cookies de terceros</translation> @@ -1792,6 +1797,7 @@ <translation id="6615297766614333076">Apilador 2</translation> <translation id="6624427990725312378">Información de contacto</translation> <translation id="6626291197371920147">Añadir un número de tarjeta válido</translation> +<translation id="6627727261837091711">Mostrar detalles de la personalización de anuncios</translation> <translation id="6628463337424475685">Búsqueda de <ph name="ENGINE" /></translation> <translation id="6630043285902923878">Buscando dispositivos USB...</translation> <translation id="6630809736994426279">Es posible que los atacantes que se encuentren en <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> intenten instalar programas peligrosos en tu Mac para robar o eliminar tu información (por ejemplo, fotos, contraseñas, mensajes y tarjetas de crédito). <ph name="BEGIN_LEARN_MORE_LINK" />Más información<ph name="END_LEARN_MORE_LINK" /></translation> @@ -2061,6 +2067,7 @@ <translation id="7473891865547856676">No, gracias</translation> <translation id="7481312909269577407">Adelante</translation> <translation id="7485870689360869515">No se han encontrado datos.</translation> +<translation id="7485948220959728508">¿Quién está detrás de esta información?</translation> <translation id="7495528107193238112">Este contenido está bloqueado. Para solucionar el problema, ponte en contacto con el propietario del sitio web.</translation> <translation id="7497998058912824456">Botón de crear documento, pulsa Intro para crear un nuevo Documento de Google rápidamente</translation> <translation id="7506488012654002225">Chromium <ph name="BEGIN_EMPHASIS" />no almacenará<ph name="END_EMPHASIS" /> la siguiente información: @@ -2141,6 +2148,7 @@ <translation id="7682287625158474539">Dirección de envío</translation> <translation id="7687186412095877299">Rellena formularios de pago con tus métodos de pago guardados</translation> <translation id="7687305263118037187">Tiempo de espera de reintento agotado</translation> +<translation id="7687451951329798396">¿Qué dicen otras fuentes?</translation> <translation id="7693583928066320343">Orden de páginas recibido</translation> <translation id="7697066736081121494">Prc8 (sobre)</translation> <translation id="769721561045429135">Tienes tarjetas que solo se pueden usar en este dispositivo. Haz clic en Continuar para revisarlas.</translation> @@ -2385,6 +2393,7 @@ <translation id="8507227106804027148">Línea de comandos</translation> <translation id="8508648098325802031">Icono de búsqueda</translation> <translation id="8511402995811232419">Gestionar cookies</translation> +<translation id="851353418319061866">Comprobación de la fiabilidad</translation> <translation id="8519753333133776369">Tu administrador permite el dispositivo de interfaz humana (HID)</translation> <translation id="8522552481199248698">Chrome puede ayudarte a proteger tu cuenta de Google y a cambiar tu contraseña.</translation> <translation id="8530813470445476232">Borra el historial de navegación, las cookies, la caché y más desde la configuración de Chrome</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index 7f482ab5..eebea0d 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -171,6 +171,7 @@ <translation id="1436185428532214179">میتواند برای ویرایش فایلها و پوشههای موجود در دستگاهتان درخواست دهد</translation> <translation id="1442386063175183758">سمت راست تاخوردگی دروازهای</translation> <translation id="1442987760062738829">سوراخ کردن</translation> +<translation id="1446396933673057385">صحتسنجی</translation> <translation id="1447067628680007684">(x86_64)</translation> <translation id="1453974140256777690">نوشتاری که جایگذاری یا پیوست میکنید برای تجزیهوتحلیل به Google Cloud یا اشخاص ثالث ارسال میشود. مثلاً ممکن است ازنظر وجود دادههای حساس اسکن شوند.</translation> <translation id="1455413310270022028">پاککن</translation> @@ -462,6 +463,7 @@ <translation id="2318594867107319532">آخرین مُهر زمان خطمشی:</translation> <translation id="2328651992442742497">مجاز است (پیشفرض)</translation> <translation id="2329182534073751090">جایگذاری پنجره</translation> +<translation id="2329473609445770916">این سایت علایقی را که دیگر سایتها برای نمایش آگهی استفاده میکنند مشخص میکند</translation> <translation id="2330137317877982892"><ph name="CREDIT_CARD" />، در <ph name="EXPIRATION_DATE_ABBR" /> منقضی میشود</translation> <translation id="2337852623177822836">تنظیم توسط سرپرست کنترل میشود</translation> <translation id="2340263603246777781"><ph name="ORIGIN" /> میخواهد مرتبط شود</translation> @@ -574,6 +576,7 @@ <translation id="2666092431469916601">بالا</translation> <translation id="2666117266261740852">برگهها یا برنامههای دیگر را ببندید</translation> <translation id="2672201172023654893">مرورگرتان تحتمدیریت نیست.</translation> +<translation id="2673968385134502798">بازیها</translation> <translation id="2674170444375937751">آیا مطمئن هستید میخواهید این صفحات را از سابقه خود حذف کنید؟</translation> <translation id="2674804415323431591">پنهان کردن پیشنهادها</translation> <translation id="2676271551327853224">Roc-8K</translation> @@ -607,6 +610,7 @@ <translation id="2775884851269838147">صفحه چاپ اول</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2784949926578158345">اتصال مجدداً برقرار شد.</translation> +<translation id="2791176355335562114">دفعه بعد سریعتر پرداخت کنید</translation> <translation id="2792012897584536778">سرپرستان این دستگاه چند گواهینامه امنیتی راهاندازی کردهاند که میتواند به آنها اجازه دهد محتوای وبسایتهایی را که بازدید میکنید، ببینند.</translation> <translation id="2799020568854403057">سایت پیشرو حاوی برنامههای خطرناک است</translation> <translation id="2799223571221894425">راهاندازی مجدد</translation> @@ -739,6 +743,7 @@ <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای سفارشی کردن ظاهر مرورگر، کلید «جهش» و سپس «ورود» را فشار دهید</translation> <translation id="3240791268468473923">برگ «اطلاعات کاربری مطابقت ندارد» در روند وارد کردن اطلاعات کاربری پرداخت امن باز شد</translation> <translation id="324180406144491771">پیوندهای «<ph name="HOST_NAME" />» مسدود شده است</translation> +<translation id="3248611290851046188">این سایت علایقی را که دیگر سایتها برای نمایش آگهی استفاده میکنند مشخص میکند. این سایت علایقتان را نیز از Chrome میگیرد تا آگهیهای مرتبطتری به شما نشان دهد.</translation> <translation id="3249845759089040423">شیک</translation> <translation id="3252266817569339921">فرانسوی</translation> <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای ایجاد سریع رویداد جدید در «تقویم Google»، کلید «جهش» و سپس «ورود» را فشار دهید</translation> @@ -850,6 +855,7 @@ <translation id="3586931643579894722">عدم نمایش جزئیات</translation> <translation id="3587738293690942763">وسط</translation> <translation id="3592413004129370115">Italian (Envelope)</translation> +<translation id="3595645257662173296">چه شواهدی آن را تأیید میکند؟</translation> <translation id="3595699422137460894">{NUM_DAYS,plural, =0{هرزمان خواستید میتوانید گروه را بازنشانی کنید. پیوستن به گروه جدید حدود یک روز طول میکشد.}=1{هرزمان خواستید میتوانید گروه را بازنشانی کنید. پیوستن به گروه جدید حدود یک روز طول میکشد.}one{هرزمان خواستید میتوانید گروه را بازنشانی کنید. پیوستن به گروه جدید {NUM_DAYS} روز طول میکشد.}other{هرزمان خواستید میتوانید گروه را بازنشانی کنید. پیوستن به گروه جدید {NUM_DAYS} روز طول میکشد.}}</translation> <translation id="3600246354004376029"><ph name="TITLE" />، <ph name="DOMAIN" />، <ph name="TIME" /></translation> <translation id="3603507503523709">سرپرست برنامه را مسدود کرده است</translation> @@ -1669,6 +1675,7 @@ <translation id="6165508094623778733">بیشتر بدانید</translation> <translation id="6167577165590485365">آخرین تلاش برای واکشی:</translation> <translation id="6169916984152623906">اکنون میتوانید بهطور خصوصی مرور کنید و سایر افرادی که از این دستگاه استفاده میکنند فعالیت شما را نخواهند دید. بااینوجود بارگیریها و نشانکها ذخیره خواهند شد.</translation> +<translation id="6176716740821145453">لحظهای تأمل کنید و صحت اطلاعات را بسنجید</translation> <translation id="6177128806592000436">اتصال شما به این سایت امن نیست</translation> <translation id="6180316780098470077">فاصله زمانی امتحان مجدد</translation> <translation id="6196640612572343990">مسدود کردن کوکیهای شخص ثالث</translation> @@ -1792,6 +1799,7 @@ <translation id="6615297766614333076">پشتهساز ۲</translation> <translation id="6624427990725312378">اطلاعات تماس</translation> <translation id="6626291197371920147">افزودن شماره کارت معتبر</translation> +<translation id="6627727261837091711">نمایش جزئیات شخصیسازی آگهی</translation> <translation id="6628463337424475685">جستجوی <ph name="ENGINE" /></translation> <translation id="6630043285902923878">درحال پیدا کردن دستگاههای USB…</translation> <translation id="6630809736994426279">شاید درحالحاضر مهاجمها در <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> در تلاش باشند برنامههای خطرناکی در Mac شما نصب کنند که اطلاعاتتان (مانند عکسها، گذرواژهها، پیامها و کارتهای اعتباری) را به سرقت میبرند یا حذف میکنند. <ph name="BEGIN_LEARN_MORE_LINK" />بیشتر بدانید<ph name="END_LEARN_MORE_LINK" /></translation> @@ -1851,6 +1859,7 @@ <translation id="6825578344716086703">تلاش کردید به <ph name="DOMAIN" /> دسترسی داشته باشید، اما گواهینامه ارائهشده از سوی سرور با استفاده از یک الگوریتم امضای ضعیف (مانند SHA-1) امضا شده است. یعنی ممکن است اعتبارنامه امنیتی ارائهشده از سوی سرور جعلی باشد و ممکن است سرور، سرور موردانتظار شما نباشد (ممکن است با یک مهاجم در ارتباط باشید).</translation> <translation id="6826993739343257035">AR مجاز باشد؟</translation> <translation id="6831043979455480757">ترجمه</translation> +<translation id="6833752742582340615">برای تسویهحساب ایمن و سریعتر، اطلاعات کارت و صورتحساب را در «حساب Google» خودتان ذخیره کنید</translation> <translation id="6839929833149231406">ناحیه</translation> <translation id="6846340164947227603">استفاده از شماره کارت مجازی...</translation> <translation id="6852204201400771460">برنامه تازهسازی شود؟</translation> @@ -2061,6 +2070,7 @@ <translation id="7473891865547856676">نه متشکرم</translation> <translation id="7481312909269577407">ارسال کردن</translation> <translation id="7485870689360869515">هیچ دادهای یافت نشد.</translation> +<translation id="7485948220959728508">چه کسی مسئول این اطلاعات است؟</translation> <translation id="7495528107193238112">این محتوا مسدود شده است. برای برطرف کردن مشکل با مالک سایت تماس بگیرید.</translation> <translation id="7497998058912824456">دکمه ایجاد سند؛ برای ایجاد سریع «سندنگار Google» جدید، کلید «ورود» را فشار دهید</translation> <translation id="7506488012654002225">Chromium اطلاعات زیر را <ph name="BEGIN_EMPHASIS" />ذخیره نخواهد کرد<ph name="END_EMPHASIS" />: @@ -2141,6 +2151,7 @@ <translation id="7682287625158474539">ارسال</translation> <translation id="7687186412095877299">فرمهای پرداخت را با روشهای پرداخت ذخیرهشدهتان پر میکند</translation> <translation id="7687305263118037187">پایان درنگ امتحان مجدد</translation> +<translation id="7687451951329798396">منابع دیگر چه میگویند؟</translation> <translation id="7693583928066320343">ترتیب صفحه دریافت شد</translation> <translation id="7697066736081121494">Prc8 (Envelope)</translation> <translation id="769721561045429135">درحالحاضر، کارتهایی دارید که فقط در این دستگاه قابل استفادهاند. برای ادامه مرور کارتها، کلیک کنید.</translation> @@ -2385,6 +2396,7 @@ <translation id="8507227106804027148">خط فرمان</translation> <translation id="8508648098325802031">نماد جستجو</translation> <translation id="8511402995811232419">مدیریت کوکیها</translation> +<translation id="851353418319061866">صحتسنجی</translation> <translation id="8519753333133776369">دستگاه HID را سرپرستتان مجاز کرده است</translation> <translation id="8522552481199248698">Chrome میتواند کمک کند از حساب Google خود محافظت کنید و گذرواژهتان را تغییر دهید.</translation> <translation id="8530813470445476232">سابقه مرور، کوکی، حافظه پنهان و موارد دیگر را در تنظیمات Chrome پاک کنید.</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb index 2e7f0ec..a8ac1c6 100644 --- a/components/strings/components_strings_hy.xtb +++ b/components/strings/components_strings_hy.xtb
@@ -574,6 +574,7 @@ <translation id="2666092431469916601">Վերին</translation> <translation id="2666117266261740852">Փակեք մյուս ներդիրներն ու հավելվածները</translation> <translation id="2672201172023654893">Ձեր դիտարկիչը ոչ ոք չի կառավարում։</translation> +<translation id="2673968385134502798">Խաղեր</translation> <translation id="2674170444375937751">Իսկապե՞ս ուզում եք ջնջել այս էջերը ձեր պատմությունից:</translation> <translation id="2674804415323431591">Թաքցնել առաջարկները</translation> <translation id="2676271551327853224">Roc-8K</translation> @@ -607,6 +608,7 @@ <translation id="2775884851269838147">Տպման առաջին էջ</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2784949926578158345">Կապակցումը վերակայվել է:</translation> +<translation id="2791176355335562114">Հաջորդ անգամ ավելի արագ վճարեք</translation> <translation id="2792012897584536778">Այս սարքի ադմինիստրատորները կարգավորել են անվտանգության հավաստագրեր, որոնց շնորհիվ նրանք կարող են տեսնել ձեր այցելած կայքերի բովանդակությունը:</translation> <translation id="2799020568854403057">Կայքը, որը պատրաստվում եք այցելել, պարունակում է վնասարար հավելվածներ</translation> <translation id="2799223571221894425">Վերագործարկել</translation> @@ -1852,6 +1854,7 @@ <translation id="6825578344716086703">Դուք փորձում էիք մտնել <ph name="DOMAIN" />, սակայն սերվերի ներկայացրած հավաստագիրը ստորագրված էր թույլ ալգորիթմով: Սա նշանակում է, որ սերվերի ներկայացրած անվտանգության հավատարմագրերը կարող են կեղծված լինել, իսկ սերվերը կարող է ձեր ակնկալած սերվերը չլինել (հնարավոր է՝ դուք կապ եք հաստատել հարձակվողի հետ):</translation> <translation id="6826993739343257035">Թույլատրե՞լ AR պարամետրը</translation> <translation id="6831043979455480757">Թարգմանել</translation> +<translation id="6833752742582340615">Պահեք ձեր քարտը և վճարային տվյալները Google հաշվում՝ վճարումներն ավելի ապահով և արագ կատարելու համար</translation> <translation id="6839929833149231406">Շրջան</translation> <translation id="6846340164947227603">Օգտագործել վիրտուալ քարտի համարը</translation> <translation id="6852204201400771460">Կրկին բեռնե՞լ հավելվածը</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index 8c3df5fe..46fbd8ee 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -574,6 +574,7 @@ <translation id="2666092431469916601">Į viršų</translation> <translation id="2666117266261740852">Uždarykite kitus skirtukus arba programas</translation> <translation id="2672201172023654893">Jūsų naršyklė nėra tvarkoma.</translation> +<translation id="2673968385134502798">Žaidimai</translation> <translation id="2674170444375937751">Ar tikrai norite pašalinti šiuos puslapius iš savo istorijos?</translation> <translation id="2674804415323431591">Slėpti pasiūlymus</translation> <translation id="2676271551327853224">Roc-8K</translation> @@ -607,6 +608,7 @@ <translation id="2775884851269838147">Pirmas spausdinamas lapas</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2784949926578158345">Ryšys atkurtas.</translation> +<translation id="2791176355335562114">Spartesnis kitas mokėjimas</translation> <translation id="2792012897584536778">Šio įrenginio administratoriai nustatė saugos sertifikatus, leidžiančius jiems peržiūrėti svetainių, kuriose lankotės, turinį.</translation> <translation id="2799020568854403057">Pateiktoje svetainėje yra kenkėjiškų programų</translation> <translation id="2799223571221894425">Paleisti iš naujo</translation> @@ -1852,6 +1854,7 @@ <translation id="6825578344716086703">Bandėte pasiekti <ph name="DOMAIN" />, bet serveris pateikė sertifikatą, kuris pasirašytas naudojant nesudėtingą parašo algoritmą (pvz., SHA-1). Tai reiškia, kad serverio pateikti saugos prisijungimo duomenys galėjo būti suklastoti ir serveris gali būti ne tas, kurio tikėjotės (gali būti, kad bendraujate su užpuoliku).</translation> <translation id="6826993739343257035">Leisti AR?</translation> <translation id="6831043979455480757">Vertėjas</translation> +<translation id="6833752742582340615">Išsaugokite kortelės ir atsiskaitymo informaciją „Google“ paskyroje, kad galėtumėte saugiai ir sparčiai atsiskaityti</translation> <translation id="6839929833149231406">Sritis</translation> <translation id="6846340164947227603">Naudoti virtualų kortelės numerį...</translation> <translation id="6852204201400771460">Įkelti programą iš naujo?</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb index ae665fe..6a2e222 100644 --- a/components/strings/components_strings_pa.xtb +++ b/components/strings/components_strings_pa.xtb
@@ -570,6 +570,7 @@ <translation id="2666092431469916601">ਟੌਪ</translation> <translation id="2666117266261740852">ਦੂਜੀਆਂ ਟੈਬਾਂ ਜਾਂ ਐਪਾਂ ਬੰਦ ਕਰੋ</translation> <translation id="2672201172023654893">ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਦਾ ਪ੍ਰਬੰਧਨ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।</translation> +<translation id="2673968385134502798">ਗੇਮਾਂ</translation> <translation id="2674170444375937751">ਕੀ ਤੁਸੀਂ ਪੱਕੇ ਤੌਰ 'ਤੇ ਇਹਨਾਂ ਪੰਨਿਆਂ ਨੂੰ ਆਪਣੇ ਇਤਿਹਾਸ ਵਿੱਚੋਂ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?</translation> <translation id="2674804415323431591">ਸੁਝਾਅ ਲੁਕਾਓ</translation> <translation id="2676271551327853224">Roc-8K</translation> @@ -603,6 +604,7 @@ <translation id="2775884851269838147">ਪਹਿਲਾ ਪ੍ਰਿੰਟ ਕੀਤਾ ਪੇਜ</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2784949926578158345">ਕਨੈਕਸ਼ਨ ਰੀਸੈਟ ਕੀਤਾ ਗਿਆ ਸੀ।</translation> +<translation id="2791176355335562114">ਅਗਲੀ ਵਾਰ ਵਧੇਰੇ ਤੇਜ਼ੀ ਨਾਲ ਭੁਗਤਾਨ ਕਰੋ</translation> <translation id="2792012897584536778">ਇਸ ਡੀਵਾਈਸ ਦੇ ਪ੍ਰਸ਼ਾਸਕਾਂ ਨੇ ਸੁਰੱਖਿਆ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਸੈੱਟ ਕੀਤੇ ਹੋਏ ਹਨ ਜੋ ਸ਼ਾਇਦ ਉਹਨਾਂ ਨੂੰ ਤੁਹਾਡੇ ਵੱਲੋਂ ਦੇਖੀਆਂ ਜਾਂਦੀਆਂ ਵੈੱਬਸਾਈਟਾਂ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਦੇਖਣ ਦੇਣ।</translation> <translation id="2799020568854403057">ਸਾਈਟ ਵਿੱਚ ਅੱਗੇ ਹਾਨੀਕਾਰਕ ਐਪਾਂ ਹਨ</translation> <translation id="2799223571221894425">ਰੀਲੌਂਚ ਕਰੋ</translation> @@ -1838,6 +1840,7 @@ <translation id="6825578344716086703">ਤੁਸੀਂ <ph name="DOMAIN" /> 'ਤੇ ਪਹੁੰਚਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ, ਪਰ ਸਰਵਰ ਨੇ ਕਿਸੇ ਕਮਜ਼ੋਰ ਹਸਤਾਖਰ ਐਲਗੋਰਿਦਮ ਦੀ ਵਰਤੋਂ ਨਾਲ ਹਸਤਾਖਰ ਕੀਤੇ ਇੱਕ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨੂੰ ਪੇਸ਼ ਕੀਤਾ (ਜਿਵੇਂ ਕਿ SHA-1)। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਸਰਵਰ ਵੱਲੋਂ ਪੇਸ਼ ਕੀਤੇ ਸੁਰੱਖਿਆ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲ ਨਕਲੀ ਹੋ ਸਕਦੇ ਹਨ, ਅਤੇ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਇਹ ਸਰਵਰ ਤੁਹਾਡਾ ਸੰਭਾਵਿਤ ਸਰਵਰ ਨਾ ਹੋਵੇ (ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿਸੇ ਹਮਲਾਵਰ ਨਾਲ ਸੰਚਾਰ ਕਰ ਰਹੇ ਹੋਵੋ)।</translation> <translation id="6826993739343257035">ਕੀ AR ਨੂੰ ਇਜਾਜ਼ਤ ਦੇਣੀ ਹੈ?</translation> <translation id="6831043979455480757">ਅਨੁਵਾਦ ਕਰੋ</translation> +<translation id="6833752742582340615">ਸੁਰੱਖਿਅਤ ਅਤੇ ਵਧੇਰੇ ਤੇਜ਼ ਚੈੱਕ-ਆਊਟਾਂ ਲਈ ਆਪਣੇ ਕਾਰਡ ਅਤੇ ਬਿਲਿੰਗ ਜਾਣਕਾਰੀ ਨੂੰ ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੋ</translation> <translation id="6839929833149231406">ਖੇਤਰ</translation> <translation id="6846340164947227603">ਕੋਈ ਆਭਾਸੀ ਕਾਰਡ ਨੰਬਰ ਵਰਤੋ...</translation> <translation id="6852204201400771460">ਕੀ ਐਪ ਰੀਲੋਡ ਕਰਨੀ ਹੈ?</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index ba4cbbc..58db498 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -1565,7 +1565,7 @@ <translation id="5826507051599432481">பொதுவான பெயர் (CN)</translation> <translation id="5830698870816298009">கேமரா உபயோகம் & நகர்வு</translation> <translation id="583281660410589416">தெரியாதது</translation> -<translation id="5838278095973806738">தீங்கிழைப்பவர்கள் திருடிவிடலாம் என்பதால், இந்தத் தளத்தில் முக்கியத் தகவலை (எடுத்துக்காட்டு: கடவுச்சொற்கள் அல்லது கிரெடிட் கார்டுகள்) உள்ளிட வேண்டாம்.</translation> +<translation id="5838278095973806738">தீங்கிழைப்பவர்கள் திருடிவிடலாம் என்பதால், இந்தத் தளத்தில் பாதுகாக்கப்பட வேண்டிய தகவலை (எடுத்துக்காட்டு: கடவுச்சொற்கள் அல்லது கிரெடிட் கார்டுகள்) உள்ளிட வேண்டாம்.</translation> <translation id="5851548754964597211">தாவல் பட்டியல்</translation> <translation id="5860033963881614850">ஆஃப்</translation> <translation id="5862579898803147654">ஸ்டேக்கர் 8</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index a8207e8..12927c8 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -576,6 +576,7 @@ <translation id="2666092431469916601">పైన</translation> <translation id="2666117266261740852">ఇతర ట్యాబ్లు లేదా యాప్లను మూసివేయండి</translation> <translation id="2672201172023654893">మీ బ్రౌజర్ మేనేజ్ చేయబడలేదు.</translation> +<translation id="2673968385134502798">గేమ్లు</translation> <translation id="2674170444375937751">మీ చరిత్ర నుండి ఈ పేజీలను తొలగించదలిచారా?</translation> <translation id="2674804415323431591">సూచనలను దాచు</translation> <translation id="2676271551327853224">ROC 8K</translation> @@ -609,6 +610,7 @@ <translation id="2775884851269838147">మొదట ఈ పేజీని ప్రింట్ చేయండి</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2784949926578158345">కనెక్షన్ మళ్ళీ సెట్ చేయబడింది.</translation> +<translation id="2791176355335562114">తర్వాతిసారి త్వరగా పేమెంట్ చేయండి</translation> <translation id="2792012897584536778">ఈ పరికర నిర్వాహకులు మీరు సందర్శించే వెబ్సైట్ల కంటెంట్ను చూడటానికి వారిని అనుమతించే అవకాశం ఉండే భద్రతా సర్టిఫికెట్లను సెటప్ చేశారు.</translation> <translation id="2799020568854403057">రాబోయే సైట్లో హానికరమైన యాప్లు ఉన్నాయి</translation> <translation id="2799223571221894425">మళ్లీ ప్రారంభించు</translation> @@ -1853,6 +1855,7 @@ <translation id="6825578344716086703"><ph name="DOMAIN" />ను చేరుకోవడానికి మీరు ప్రయత్నించారు, కానీ సర్వర్ (SHA-1 వంటి) బలహీనమైన సంతకం అల్గారిథమ్ను ఉపయోగించి సంతకం చేసిన ప్రమాణపత్రాన్ని అందించింది. అంటే సర్వర్ అందించిన భద్రత ఆధారాలు నకిలీ కావచ్చు మరియు సర్వర్ మీరు ఊహించిన సర్వర్ కాకపోవచ్చు (మీరు హ్యాకర్తో పరస్పర చర్య చేస్తుండవచ్చు).</translation> <translation id="6826993739343257035">ARను అనుమతించాలా?</translation> <translation id="6831043979455480757">అనువదించు</translation> +<translation id="6833752742582340615">సురక్షితమైన, వేగవంతమైన చెక్ అవుట్ల కోసం మీ కార్డ్, అలాగే బిల్లింగ్ సమాచారాన్ని మీ Google ఖాతాలో సేవ్ చేయండి</translation> <translation id="6839929833149231406">ప్రాంతం</translation> <translation id="6846340164947227603">వర్చువల్ కార్డ్ నంబర్ను ఉపయోగించండి...</translation> <translation id="6852204201400771460">యాప్ను మళ్లీ లోడ్ చేయాలా?</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index a15a66b..b4d1179 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -172,6 +172,7 @@ <translation id="1436185428532214179">سائٹ آپ کے آلے پر موجود فائلز یا فولڈرز میں ترمیم کرنے کیلئے پوچھ سکتی ہے</translation> <translation id="1442386063175183758">دایاں گیٹ فولڈ</translation> <translation id="1442987760062738829">سوراخ کریں</translation> +<translation id="1446396933673057385">درستگی چیک</translation> <translation id="1447067628680007684">(x86_64)</translation> <translation id="1453974140256777690">جو ٹیکسٹ آپ پیسٹ یا منسلک کرتے ہیں اسے تجزیہ کیلئے Google کلاؤڈ یا فریق ثالث کو بھیجا جاتا ہے۔ مثال کے طور پر، اسے حساس ڈیٹا کیلئے اسکین کیا جا سکتا ہے۔</translation> <translation id="1455413310270022028">صافی</translation> @@ -463,6 +464,7 @@ <translation id="2318594867107319532">پالیسی کی آخری ٹائم سٹیمپ:</translation> <translation id="2328651992442742497">اجازت ہے (ڈیفالٹ)</translation> <translation id="2329182534073751090">ونڈو کا مقام</translation> +<translation id="2329473609445770916">یہ سائٹ ان دلچسپیوں کا تعین کرتی ہے جو دوسری سائٹس آپ کو اشتہارات دکھانے کے لیے استعمال کر سکتی ہیں</translation> <translation id="2330137317877982892"><ph name="CREDIT_CARD" /> کی میعاد <ph name="EXPIRATION_DATE_ABBR" /> کو ختم ہو جائے گی</translation> <translation id="2337852623177822836">ترتیب آپ کے منتظم کی جانب سے کنٹرول کی جاتی ہے</translation> <translation id="2340263603246777781"><ph name="ORIGIN" /> جوڑا بنانا چاہتی ہے</translation> @@ -741,6 +743,7 @@ <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />، اپنے براؤزر کی شکل کو حسب ضرورت بنانے کیلئے ٹیب پھر Enter دبائیں</translation> <translation id="3240791268468473923">ادائیگی کی اسناد محفوظ کریں کوئی مماثل اسناد نہیں کی شیٹ کھلی ہوئی ہے</translation> <translation id="324180406144491771">“<ph name="HOST_NAME" />” لنکس مسدود ہیں</translation> +<translation id="3248611290851046188">یہ سائٹ ان دلچسپیوں کا تعین کرتی ہے جو دوسری سائٹس آپ کو اشتہارات دکھانے کے لیے استعمال کر سکتی ہیں۔ یہ سائٹ آپ کو مزید متعلقہ اشتہارات دکھانے کے لیے Chrome سے آپ کی دلچسپیاں بھی موصول کرتی ہے۔</translation> <translation id="3249845759089040423">دلکش</translation> <translation id="3252266817569339921">فرانسيسی</translation> <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />، Google کیلنڈر میں تیزی سے ایک نیا ایونٹ تخلیق کرنے کیلئے Tab، پھر Enter دبائیں</translation> @@ -852,6 +855,7 @@ <translation id="3586931643579894722">تفصیلات چھپائیں</translation> <translation id="3587738293690942763">وسطی</translation> <translation id="3592413004129370115">Italian (Envelope)</translation> +<translation id="3595645257662173296">کون سا ثبوت اس کو سپورٹ کرتا ہے؟</translation> <translation id="3595699422137460894">{NUM_DAYS,plural, =0{آپ کسی بھی وقت اپنے گروپ کو ری سیٹ کر سکتے ہیں۔ ایک نئے گروپ میں شامل ہونے کے لیے ایک دن لگتا ہے۔}=1{آپ کسی بھی وقت اپنے گروپ کو ری سیٹ کر سکتے ہیں۔ ایک نئے گروپ میں شامل ہونے کے لیے ایک دن لگتا ہے۔}other{آپ کسی بھی وقت اپنے گروپ کو ری سیٹ کر سکتے ہیں۔ ایک نئے گروپ میں شامل ہونے کے لیے {NUM_DAYS} دن لگتے ہیں۔}}</translation> <translation id="3600246354004376029"><ph name="TITLE" />، <ph name="DOMAIN" />، <ph name="TIME" /></translation> <translation id="3603507503523709">ایپلیکیشن کو آپ کے منتظم کے ذریعے مسدود کیا گیا</translation> @@ -1672,6 +1676,7 @@ <translation id="6165508094623778733">مزید جانیں</translation> <translation id="6167577165590485365">بازیافت کی آخری کوشش:</translation> <translation id="6169916984152623906">اب آپ نجی طور پر براؤز کر سکتے ہیں، اور اس آلے کا استعمال کرنے والے دوسرے لوگوں کو آپ کی سرگرمی نہیں دکھائی دے گی۔ تاہم، ڈاؤن لوڈز اور بک مارکس محفوظ ہو جائیں گے۔</translation> +<translation id="6176716740821145453">درستگی پر غور کرنے کیلئے تھوڑا سا وقت نکالیں</translation> <translation id="6177128806592000436">اس سائٹ سے آپ کا کنکشن محفوظ نہیں ہے</translation> <translation id="6180316780098470077">دوبارہ کوشش کرنے کا وقفہ</translation> <translation id="6196640612572343990">فریق ثالث کوکیز کو مسدود کریں</translation> @@ -1795,6 +1800,7 @@ <translation id="6615297766614333076">اسٹیکر 2</translation> <translation id="6624427990725312378">رابطے کی معلومات</translation> <translation id="6626291197371920147">درست کارڈ نمبر شامل کریں</translation> +<translation id="6627727261837091711">اشتہار کی ذاتی نوعیت سازی کی تفصیلات دکھائیں</translation> <translation id="6628463337424475685"><ph name="ENGINE" /> تلاش</translation> <translation id="6630043285902923878">USB آلات تلاش کئے جا رہے ہیں...</translation> <translation id="6630809736994426279">فی الحال <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> پر موجود حملہ آور آپ کے Mac پر ایسے خطرناک پروگرامز انسٹال کرنے کی کوشش کر سکتے ہیں جن سے آپ کی معلومات (مثلاً، تصاویر، پاس ورڈز، پیغامات، اور کریڈٹ کارڈز) چوری یا حذف ہو سکتی ہیں۔ <ph name="BEGIN_LEARN_MORE_LINK" />مزید جانیں<ph name="END_LEARN_MORE_LINK" /></translation> @@ -2064,6 +2070,7 @@ <translation id="7473891865547856676">نہیں شکریہ</translation> <translation id="7481312909269577407">فارورڈ کریں</translation> <translation id="7485870689360869515">کوئی ڈیٹا نہیں ملا۔</translation> +<translation id="7485948220959728508">اس معلومات کے پیچھے کون ہے؟</translation> <translation id="7495528107193238112">یہ مواد مسدود ہے۔ مسئلے کو حل کرنے کے لیے سائٹ کے مالک سے رابطہ کریں۔</translation> <translation id="7497998058912824456">دستاویز تخلیق کریں بٹن، تیزی سے ایک نیا Google Doc تخلیق کرنے کیلئے Enter دبائیں</translation> <translation id="7506488012654002225">Chromium درج ذیل معلومات کو <ph name="BEGIN_EMPHASIS" />محفوظ نہیں کرے گا<ph name="END_EMPHASIS" />: @@ -2144,6 +2151,7 @@ <translation id="7682287625158474539">ترسیل</translation> <translation id="7687186412095877299">آپ کے محفوظ کردہ ادائیگی کے طریقوں سے ادائیگی کے فارمز پُر کرتا ہے</translation> <translation id="7687305263118037187">دوبارہ کوشش ٹائم آؤٹ</translation> +<translation id="7687451951329798396">دوسرے ذرائع کیا کہتے ہیں؟</translation> <translation id="7693583928066320343">صفحات کی ترتیب موصول ہوئی</translation> <translation id="7697066736081121494">Prc8 (Envelope)</translation> <translation id="769721561045429135">ابھی، آپ کے پاس ایسے کارڈز ہیں جنہیں صرف اس آلہ پر استعمال کیا جا سکتا ہے کارڈز کا جائزہ لینے کیلئے 'جاری رکھیں' پر کلک کریں۔</translation> @@ -2388,6 +2396,7 @@ <translation id="8507227106804027148">کمانڈ لائن</translation> <translation id="8508648098325802031">تلاش کا آئیکن</translation> <translation id="8511402995811232419">کوکیز کا نظم کریں</translation> +<translation id="851353418319061866">درستگی چیک</translation> <translation id="8519753333133776369">آپ کے منتظم کی جانب سے HID آلے کی اجازت ہے</translation> <translation id="8522552481199248698">Chrome آپ کی اپنا Google اکاؤنٹ محفوظ اور پاس ورڈ تبدیل کرنے میں مدد کر سکتا ہے۔</translation> <translation id="8530813470445476232">Chrome ترتیبات میں اپنے براؤزنگ کی سرگزشت، کوکیز، کیش اور بہت کچھ کو صاف کریں</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb index fe0a5a4..3590eeb 100644 --- a/components/strings/components_strings_uz.xtb +++ b/components/strings/components_strings_uz.xtb
@@ -171,6 +171,7 @@ <translation id="1436185428532214179">Qurilmangizdagi fayl yoki jildlarni tahrirlash uchun ruxsat soʻrashi mumkin</translation> <translation id="1442386063175183758">Oʻng tomonni darvozasimon taxlash</translation> <translation id="1442987760062738829">Teshik ochish</translation> +<translation id="1446396933673057385">Aniqlik tekshiruvi</translation> <translation id="1447067628680007684">(x86_64)</translation> <translation id="1453974140256777690">Siz joylaydigan yoki biriktiradigan matn tekshiruv uchun Google Cloud yoki boshqa tashqi xizmatlarga yuboriladi. Masalan, tarkibida maxfiy axborot borligini aniqlash uchun.</translation> <translation id="1455413310270022028">Oʻchirgʻich</translation> @@ -461,6 +462,7 @@ <translation id="2318594867107319532">Oxirgi vaqt belgisi qoidasi:</translation> <translation id="2328651992442742497">Ruxsat etilgan (standart)</translation> <translation id="2329182534073751090">oynani joylashtirish</translation> +<translation id="2329473609445770916">Bu sayt boshqa saytlar reklama chiqarishda ishlata oladigan qiziqishlarni ifodalaydi</translation> <translation id="2330137317877982892"><ph name="CREDIT_CARD" />, muddati: <ph name="EXPIRATION_DATE_ABBR" /></translation> <translation id="2337852623177822836">Sozlamani administrator boshqaradi</translation> <translation id="2340263603246777781"><ph name="ORIGIN" /> qurilmangizga ulanmoqchi</translation> @@ -738,6 +740,7 @@ <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Brauzeringiz koʻrinishini moslash uchun avval Tab, keyin Enter tugmasini bosing</translation> <translation id="3240791268468473923">Xavfsiz toʻlov maʼlumotlari ochilgan jadvaldagi maʼlumotlarga mos kelmadi</translation> <translation id="324180406144491771">“<ph name="HOST_NAME" />” havolalari bloklangan</translation> +<translation id="3248611290851046188">Bu sayt boshqa saytlar reklama chiqarishda ishlata oladigan qiziqishlarni ifodalaydi. Bu sayt ham mos reklamalarni chiqarish uchun qiziqishlaringiz haqidagi Chrome maʼlumotlaridan foydalanadi.</translation> <translation id="3249845759089040423">Jozibali</translation> <translation id="3252266817569339921">Fransuzcha</translation> <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Taqvimda yangi tadbirni tez yaratish uchun avval Tab, keyin Enter tugmasini bosing</translation> @@ -848,6 +851,7 @@ <translation id="3586931643579894722">Tafsilotlarni yopish</translation> <translation id="3587738293690942763">Oʻrtacha</translation> <translation id="3592413004129370115">Italian (Envelope)</translation> +<translation id="3595645257662173296">Buning qaysi isboti bor ekan?</translation> <translation id="3595699422137460894">{NUM_DAYS,plural, =0{Guruh sozlamalarini istalgan vaqtda tiklash mumkin. Yangi guruhga qoʻshilish bir kun vaqt oladi.}=1{Guruh sozlamalarini istalgan vaqtda tiklash mumkin. Yangi guruhga qoʻshilish bir kun vaqt oladi.}other{Guruh sozlamalarini istalgan vaqtda tiklash mumkin. Yangi guruhga qoʻshilish {NUM_DAYS} kun vaqt oladi.}}</translation> <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation> <translation id="3603507503523709">Ilova administrator tomonidan bloklangan</translation> @@ -1665,6 +1669,7 @@ <translation id="6165508094623778733">Batafsil</translation> <translation id="6167577165590485365">Oxirgi olishga urinish:</translation> <translation id="6169916984152623906">Inkognito rejimida bajargan amallaringiz ushbu qurilmaning boshqa foydalanuvchilariga ko‘rinmaydi. Biroq xatcho‘plar va yuklab olingan fayllar saqlanib qoladi.</translation> +<translation id="6176716740821145453">Aniqlikka vaqt ajrating</translation> <translation id="6177128806592000436">Bu sayt bilan o‘rnatilgan aloqa himoyalanmagan.</translation> <translation id="6180316780098470077">Qayta urinishlar intervali</translation> <translation id="6196640612572343990">Tashqi cookie-fayllarni bloklash.</translation> @@ -1788,6 +1793,7 @@ <translation id="6615297766614333076">Taxlovchi 2</translation> <translation id="6624427990725312378">Aloqa ma’lumoti</translation> <translation id="6626291197371920147">Karta raqamini xatosiz kiriting</translation> +<translation id="6627727261837091711">Reklamani moslashtirish tafsilotlarini chiqarish</translation> <translation id="6628463337424475685"><ph name="ENGINE" /> qidiruvi</translation> <translation id="6630043285902923878">USB qurilmalar qidirilmoqda...</translation> <translation id="6630809736994426279">Firibgarlar <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> sayti orqali Mac kompyuteringizga shaxsiy ma’lumotlarni (masalan, rasmlar, parollar, xabarlar va kredit karta ma’lumotlari) o‘g‘irlash yoki o‘chirish maqsadida zararli ilovalarni o‘rnatishi mumkin. <ph name="BEGIN_LEARN_MORE_LINK" />Batafsil<ph name="END_LEARN_MORE_LINK" /></translation> @@ -2058,6 +2064,7 @@ <translation id="7473891865547856676">Yo‘q, rahmat</translation> <translation id="7481312909269577407">Oldinga</translation> <translation id="7485870689360869515">Ma‘lumotlar topilmadi.</translation> +<translation id="7485948220959728508">Bu axborot orqasida kim bor?</translation> <translation id="7495528107193238112">Bu kontent bloklandi. Muammoni yechish uchun sayt egasiga murojaat qiling.</translation> <translation id="7497998058912824456">Doc hujjatini yaratish tugmasi, yangi Google Doc hujjatini tezda yaratish uchun Enter tugmasini bosing</translation> <translation id="7506488012654002225">Chromium quyidagi maʼlumotlarni <ph name="BEGIN_EMPHASIS" />saqlamaydi<ph name="END_EMPHASIS" />: @@ -2138,6 +2145,7 @@ <translation id="7682287625158474539">Yetkazib berish manzili</translation> <translation id="7687186412095877299">Saqlangan toʻlov usullari maʼlumotlarini avtomatik tarzda toʻlov shakllariga kiritiladi</translation> <translation id="7687305263118037187">Urinish vaqti tugadi</translation> +<translation id="7687451951329798396">Boshqa manbalarda nima yozilgan ekan?</translation> <translation id="7693583928066320343">Sahifalar tartibi olindi</translation> <translation id="7697066736081121494">Prc8 (Envelope)</translation> <translation id="769721561045429135">Hozir faqat shu qurilmada ishlaydigan kartalaringiz mavjud. Kartalarni tekshirish uchun davom etish tugmasini bosing.</translation> @@ -2382,6 +2390,7 @@ <translation id="8507227106804027148">Buyruqlar qatori</translation> <translation id="8508648098325802031">Qidiruv ikonkasi</translation> <translation id="8511402995811232419">Cookie fayllarni boshqarish</translation> +<translation id="851353418319061866">Aniqlik tekshiruvi</translation> <translation id="8519753333133776369">HID qurilmaga administrator ruxsat bergan</translation> <translation id="8522552481199248698">Chrome Google hisobingizni himoyalash va parolni almashtirish uchun yordam beradi.</translation> <translation id="8530813470445476232">Brauzer tarixi, cookie fayllar, kesh va boshqa Chrome sozlamalarini tozalang</translation>
diff --git a/components/viz/service/gl/DEPS b/components/viz/service/gl/DEPS index 1510a5d..e67db49 100644 --- a/components/viz/service/gl/DEPS +++ b/components/viz/service/gl/DEPS
@@ -14,7 +14,6 @@ "+gpu/vulkan", "+ipc", "+media/base/android/media_codec_util.h", - "+media/base/media_log.h", "+media/gpu", "+media/mojo", "+mojo/public/cpp",
diff --git a/components/viz/service/gl/gpu_service_impl.cc b/components/viz/service/gl/gpu_service_impl.cc index d40ae37..4d849fc 100644 --- a/components/viz/service/gl/gpu_service_impl.cc +++ b/components/viz/service/gl/gpu_service_impl.cc
@@ -49,7 +49,6 @@ #include "ipc/ipc_channel_handle.h" #include "ipc/ipc_sync_channel.h" #include "ipc/ipc_sync_message_filter.h" -#include "media/base/media_log.h" #include "media/gpu/buildflags.h" #include "media/gpu/gpu_video_accelerator_util.h" #include "media/gpu/gpu_video_encode_accelerator_factory.h"
diff --git a/content/browser/renderer_host/input/scroll_behavior_browsertest.cc b/content/browser/renderer_host/input/scroll_behavior_browsertest.cc index a693574..25f582a9 100644 --- a/content/browser/renderer_host/input/scroll_behavior_browsertest.cc +++ b/content/browser/renderer_host/input/scroll_behavior_browsertest.cc
@@ -467,8 +467,9 @@ // This tests that a in-progress smooth scroll on a subframe stops when // interrupted by another smooth scroll. +// Flaky on multiple platforms: crbug.com/1306980 IN_PROC_BROWSER_TEST_P(ScrollBehaviorBrowserTest, - OneSmoothScriptScrollAbortsAnother_Subframe) { + DISABLED_OneSmoothScriptScrollAbortsAnother_Subframe) { LoadURL(kSubframeScrollDataURL); EXPECT_TRUE(ExecJs(
diff --git a/content/browser/service_worker/service_worker_internals_ui_browsertest.cc b/content/browser/service_worker/service_worker_internals_ui_browsertest.cc index 37652e9..4a20e9d 100644 --- a/content/browser/service_worker/service_worker_internals_ui_browsertest.cc +++ b/content/browser/service_worker/service_worker_internals_ui_browsertest.cc
@@ -317,8 +317,8 @@ EXPECT_EQ(0, CountRenderProcessHosts()); } -// TODO(crbug.com/1307548): Flaky on Linux -#if BUILDFLAG(IS_LINUX) +// TODO(crbug.com/1307548): Flaky on Linux/Lacros/Mac +#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_MAC)) #define MAYBE_RegisteredSWReflectedOnInternalUI \ DISABLED_RegisteredSWReflectedOnInternalUI #else
diff --git a/content/renderer/pepper/pepper_video_encoder_host.cc b/content/renderer/pepper/pepper_video_encoder_host.cc index 1ede19e1..91043a0 100644 --- a/content/renderer/pepper/pepper_video_encoder_host.cc +++ b/content/renderer/pepper/pepper_video_encoder_host.cc
@@ -21,7 +21,6 @@ #include "gpu/command_buffer/common/context_creation_attribs.h" #include "gpu/ipc/client/command_buffer_proxy_impl.h" #include "media/base/bitrate.h" -#include "media/base/media_log.h" #include "media/video/video_encode_accelerator.h" #include "ppapi/c/pp_codecs.h" #include "ppapi/c/pp_errors.h"
diff --git a/content/renderer/pepper/video_encoder_shim.cc b/content/renderer/pepper/video_encoder_shim.cc index a3417f26..fe7d973c 100644 --- a/content/renderer/pepper/video_encoder_shim.cc +++ b/content/renderer/pepper/video_encoder_shim.cc
@@ -17,7 +17,6 @@ #include "base/threading/thread_task_runner_handle.h" #include "content/renderer/pepper/pepper_video_encoder_host.h" #include "content/renderer/render_thread_impl.h" -#include "media/base/media_log.h" #include "media/video/video_encode_accelerator.h" #include "third_party/libvpx/source/libvpx/vpx/vp8cx.h" #include "third_party/libvpx/source/libvpx/vpx/vpx_encoder.h"
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 0996594..4304cc5 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -786,9 +786,6 @@ ":telemetry_gpu_integration_test_data", # For WebGPU CTS tests. - ":webgpu_cts_js", - ":webgpu_cts_scripts", - ":webgpu_cts_test_page", "//third_party/dawn/third_party/gn/webgpu-cts", # For anything using Skia Gold (pixel, maps). @@ -796,33 +793,6 @@ ] } -# This needs to be copied to the output directory since the CTS tests also -# serve resources that are copied into it. -copy("webgpu_cts_test_page") { - testonly = true - sources = [ - "//third_party/blink/web_tests/wpt_internal/webgpu/cts_chrome.https.html", - ] - outputs = [ "$target_gen_dir/cts_chrome.https.html" ] -} - -copy("webgpu_cts_js") { - testonly = true - sources = [ "//third_party/webgpu-cts/chrome_telemetry.js" ] - outputs = [ "$target_gen_dir/chrome_telemetry.js" ] -} - -group("webgpu_cts_scripts") { - testonly = true - data = [ - "//third_party/node/", - "//third_party/webgpu-cts/scripts/", - "//third_party/webgpu-cts/src/src/", - "//third_party/webgpu-cts/src/node.tsconfig.json", - "//third_party/webgpu-cts/src/tsconfig.json", - ] -} - group("telemetry_gpu_common_data") { testonly = true data = [
diff --git a/content/test/gpu/PRESUBMIT.py b/content/test/gpu/PRESUBMIT.py index 52af242..6debbe29 100644 --- a/content/test/gpu/PRESUBMIT.py +++ b/content/test/gpu/PRESUBMIT.py
@@ -90,7 +90,6 @@ results.extend(input_api.RunTests(pylint_checks)) results.extend(CheckForNewSkipExpectations(input_api, output_api)) - results.extend(CheckForWebGpuExpectationSync(input_api, output_api)) return results @@ -121,27 +120,6 @@ return result -def CheckForWebGpuExpectationSync(input_api, output_api): - """Enforces that the WebGPU expectations are synced if the CL touched them.""" - webgpu_expectations = input_api.os_path.join(input_api.PresubmitLocalPath(), - 'gpu_tests', 'test_expectations', - 'webgpu_cts_expectations.txt') - file_filter = lambda f: f.AbsoluteLocalPath() == webgpu_expectations - result = [] - for _ in input_api.AffectedFiles(file_filter=file_filter): - check = input_api.Command(name='check_webgpu_expectation_sync', - cmd=[ - input_api.python3_executable, - 'process_generated_webgpu_expectations.py', - 'validate' - ], - kwargs={}, - message=output_api.PresubmitError, - python3=True) - result.extend(input_api.RunTests([check])) - return result - - def CheckChangeOnUpload(input_api, output_api): return CommonChecks(input_api, output_api)
diff --git a/content/test/gpu/gpu_path_util/__init__.py b/content/test/gpu/gpu_path_util/__init__.py index dc4cbe51..012f8e72 100644 --- a/content/test/gpu/gpu_path_util/__init__.py +++ b/content/test/gpu/gpu_path_util/__init__.py
@@ -15,7 +15,6 @@ GPU_DATA_RELATIVE_PATH = os.path.join(*_GPU_DATA_RELATIVE_PATH_COMPONENTS) GPU_DATA_DIR = os.path.join(CHROMIUM_SRC_DIR, *_GPU_DATA_RELATIVE_PATH_COMPONENTS) -GPU_EXPECTATIONS_DIR = os.path.join(GPU_DIR, 'gpu_tests', 'test_expectations') TOOLS_PERF_DIR = os.path.join(CHROMIUM_SRC_DIR, 'tools', 'perf')
diff --git a/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt index a30d2c86..4b46300 100644 --- a/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt index 4650b335..fc6b623a 100644 --- a/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt index 6cc7892c..c2a1b51 100644 --- a/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt index 5061a107..ff63e8a 100644 --- a/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt index 6cc7892c..c2a1b51 100644 --- a/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt index 972217c..d1d193e 100644 --- a/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt index 6e1eb3ba..d7aaf8c 100644 --- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt index 4d6f61a..8fec6bce 100644 --- a/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt index 3d7583b..bd5739c 100644 --- a/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt index b030e11..192387d 100644 --- a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt index e7a5a90..98c8cbb 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt index b380b18..a5a41bb 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt index 8c117dc..d4b3a8e 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
@@ -54,9 +54,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] # END TAG HEADER ###############################
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgpu_cts_expectation_queries.js b/content/test/gpu/gpu_tests/test_expectations/webgpu_cts_expectation_queries.js index 81a3f2f..042a0ca 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgpu_cts_expectation_queries.js +++ b/content/test/gpu/gpu_tests/test_expectations/webgpu_cts_expectation_queries.js
@@ -2,1664 +2,25 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// OS tags. -const linux = 'linux'; -const mac = 'mac'; -const win = 'win'; -const bigsur = 'bigsur'; // Mac 11. - -// GPU tags. -const amd = 'amd'; -const intel = 'intel'; -const intel_hd630 = 'intel-0x5912'; -const intel_uhd630 = 'intel-0x3e92'; -const nvidia = 'nvidia'; - -// Expected results. +// So that expecations below have lighter syntax without quotes. +const Mac = 'Mac'; +const Win = 'Win'; const Failure = 'Failure'; -const RetryOnFailure = 'RetryOnFailure'; -const Skip = 'Skip'; -const Slow = 'Slow'; -// Multiple expectations related to the same bug with the same tags. -// Format: -// { -// { -// b: bug (string), -// t: [tag1, tag2, ...] (strings), -// e: [expected_result] (strings), -// w: run_in_worker (optional, boolean), -// q: [query1, query2, ...] (strings) -// } -// } -var expectation_groups = [ - // - // Dawn bugs - // - { - // Handling of base_vertex base_instance is not implemented for indirect - // draws on D3D12. - b: 'crbug.com/dawn/548', - t: [win], - e: [Failure], - q: [ - 'webgpu:api,operation,rendering,draw:arguments:indirect=true;*', - 'webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="baseVertex";*' - ], - }, - { - // Failures because stencil8 and depth16unorm aren't implemented. - b: 'crbug.com/dawn/570', - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,image_copy,buffer_related:bytes_per_row_alignment:format="depth16unorm";*', - // Original query conflicts with a query for crbug.com/dawn/1125, so - // specify some extra query parameters to avoid that. - // 'webgpu:api,operation,rendering,depth_clip_clamp:depth_clamp_and_clip:format="depth16unorm";*', - // Started not finding any cases. - /*'webgpu:api,operation,rendering,depth_clip_clamp:depth_clamp_and_clip:format="depth16unorm";clampDepth=true;writeDepth=true;*', - 'webgpu:api,operation,rendering,depth_clip_clamp:depth_clamp_and_clip:format="depth16unorm";clampDepth=false;writeDepth=false;*', - 'webgpu:api,operation,rendering,depth_clip_clamp:depth_clamp_and_clip:format="depth16unorm";clampDepth=true;writeDepth=false;*',*/ - // Completely overlaps other queries for depth_test_input_clamped. - // 'webgpu:api,operation,rendering,depth_clip_clamp:depth_test_input_clamped:format="depth16unorm";*', - ], - }, - { - // Failures because stencil8 and depth16unorm aren't implemented. - // These would normally be restricted to stencil8 and depth16unorm formats, - // but some are currently handled as subcases within a single test, so the - // entire test has to be disabled in those cases. - b: 'crbug.com/dawn/666', - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,encoding,cmds,copyTextureToTexture:texture_format_compatibility:*', - // These currently conflict with a broader query from crbug.com/dawn/1071, - // so they're handled with more platform-specific tags below. - //'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";*', - //'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="depth16unorm";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:format="stencil8";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:format="depth16unorm";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:format="depth24unorm-stencil8";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:format="depth32float-stencil8";*', - // TODO: Figure out why expectations for this aren't applying, probably - // due to issues with %20 encoding/decoding. - 'webgpu:api,validation,attachment_compatibility:render_pass_and_bundle,depth_format:*', - 'webgpu:api,validation,attachment_compatibility:render_pass_or_bundle_and_pipeline,depth_format:*', - 'webgpu:api,validation,createRenderPipeline:color_formats_must_be_renderable:format="stencil8";*', - 'webgpu:api,validation,createRenderPipeline:color_formats_must_be_renderable:format="depth16unorm";*', - 'webgpu:api,validation,encoding,cmds,copyTextureToTexture:copy_aspects:format="stencil8";*', - 'webgpu:api,validation,encoding,cmds,copyTextureToTexture:copy_aspects:format="depth16unorm";*', - 'webgpu:api,validation,encoding,cmds,copyTextureToTexture:depth_stencil_copy_restrictions:format="stencil8";*', - 'webgpu:api,validation,encoding,cmds,copyTextureToTexture:depth_stencil_copy_restrictions:format="depth16unorm";*', - // TODO: Figure out why the broader query still doesn't apply to any cases - // 'webgpu:api,validation,queue,copyToTexture,ImageBitmap:destination_texture,format:format="stencil8";*', - // 'webgpu:api,validation,queue,copyToTexture,ImageBitmap:destination_texture,format:format="depth16unorm";*', - 'webgpu:api,validation,encoding,cmds,buffer_texture_copies:depth_stencil_format,copy_usage_and_aspect:format="stencil8";*', - 'webgpu:api,validation,encoding,cmds,buffer_texture_copies:depth_stencil_format,copy_usage_and_aspect:format="depth16unorm";*', - 'webgpu:api,validation,encoding,cmds,buffer_texture_copies:depth_stencil_format,copy_buffer_offset:format="depth16unorm";*', - 'webgpu:api,validation,encoding,cmds,buffer_texture_copies:depth_stencil_format,copy_buffer_offset:format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:bound_on_bytes_per_row:method="CopyB2T";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:bound_on_bytes_per_row:method="CopyB2T";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:bound_on_bytes_per_row:method="CopyT2B";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:bound_on_bytes_per_row:method="CopyT2B";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:bound_on_bytes_per_row:method="WriteTexture";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:bound_on_bytes_per_row:method="WriteTexture";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:offset_alignment:method="CopyB2T";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:offset_alignment:method="CopyB2T";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:offset_alignment:method="CopyT2B";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:offset_alignment:method="CopyT2B";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:offset_alignment:method="WriteTexture";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:offset_alignment:method="WriteTexture";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:required_bytes_in_copy:method="CopyB2T";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:required_bytes_in_copy:method="CopyB2T";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:required_bytes_in_copy:method="CopyT2B";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:required_bytes_in_copy:method="CopyT2B";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:required_bytes_in_copy:method="WriteTexture";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:required_bytes_in_copy:method="WriteTexture";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:rows_per_image_alignment:method="CopyB2T";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:rows_per_image_alignment:method="CopyB2T";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:rows_per_image_alignment:method="CopyT2B";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:rows_per_image_alignment:method="CopyT2B";format="stencil8";*', - 'webgpu:api,validation,image_copy,layout_related:rows_per_image_alignment:method="WriteTexture";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,layout_related:rows_per_image_alignment:method="WriteTexture";format="stencil8";*', - 'webgpu:api,validation,image_copy,buffer_related:bytes_per_row_alignment:format="stencil8";*', - 'webgpu:api,validation,capability_checks,features,texture_formats:depth_stencil_state:format="depth24unorm-stencil8";*', - 'webgpu:api,validation,capability_checks,features,texture_formats:depth_stencil_state:format="depth32float-stencil8";*', - 'webgpu:api,validation,capability_checks,features,texture_formats:render_bundle_encoder_descriptor_depth_stencil_format:format="depth24unorm-stencil8";*', - 'webgpu:api,validation,capability_checks,features,texture_formats:render_bundle_encoder_descriptor_depth_stencil_format:format="depth32float-stencil8";*', - 'webgpu:api,validation,capability_checks,features,texture_formats:texture_descriptor:format="depth24unorm-stencil8";*', - 'webgpu:api,validation,capability_checks,features,texture_formats:texture_descriptor:format="depth32float-stencil8";*', - 'webgpu:api,validation,createRenderPipeline:depth_stencil_state,depth_aspect,depth_test:isAsync=false;format="stencil8";*', - 'webgpu:api,validation,createRenderPipeline:depth_stencil_state,depth_aspect,depth_test:isAsync=true;format="stencil8";*', - 'webgpu:api,validation,createRenderPipeline:depth_stencil_state,depth_aspect,depth_write:isAsync=false;format="stencil8";*', - 'webgpu:api,validation,createRenderPipeline:depth_stencil_state,depth_aspect,depth_write:isAsync=true;format="stencil8";*', - 'webgpu:api,validation,createRenderPipeline:depth_stencil_state,format:isAsync=false;format="stencil8"', - 'webgpu:api,validation,createRenderPipeline:depth_stencil_state,format:isAsync=true;format="stencil8"', - 'webgpu:api,validation,createRenderPipeline:depth_stencil_state,stencil_aspect,stencil_test:isAsync=false;format="stencil8";*', - 'webgpu:api,validation,createRenderPipeline:depth_stencil_state,stencil_aspect,stencil_test:isAsync=true;format="stencil8";*', - 'webgpu:api,validation,createRenderPipeline:depth_stencil_state,stencil_aspect,stencil_write:isAsync=false;format="stencil8";*', - 'webgpu:api,validation,createRenderPipeline:depth_stencil_state,stencil_aspect,stencil_write:isAsync=true;format="stencil8";*', - 'webgpu:api,validation,texture,destroy:submit_a_destroyed_texture_as_attachment:depthStencilTextureAspect="stencil-only";*', - ], - }, - { - // This was originally part of the larger crbug.com/dawn/666 group, but had - // to be split out to avoid conflicts with crbug.com/dawn/1071 queries. - b: 'crbug.com/dawn/666', - t: [mac, amd], - e: [Failure], - q: [ - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - ], - }, - { - // This was originally part of the larger crbug.com/dawn/666 group, but had - // to be split out to avoid conflicts with crbug.com/dawn/1071 queries. - b: 'crbug.com/dawn/666', - t: [mac, nvidia], - e: [Failure], - q: [ - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - ], - }, - { - // This was originally part of the larger crbug.com/dawn/666 group, but had - // to be split out to avoid conflicts with crbug.com/dawn/1071 queries. - b: 'crbug.com/dawn/666', - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - ], - }, - { - // This was originally part of the larger crbug.com/dawn/666 group, but had - // to be split out to avoid conflicts with crbug.com/dawn/1071 queries. - b: 'crbug.com/dawn/666', - t: [win], - e: [Failure], - q: [ - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=1;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=1;dimension="2d";format="stencil8";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=3;dimension="2d";format="depth16unorm";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";depthOrArrayLayers=3;dimension="2d";format="stencil8";*', - ], - }, - // Currently conflicts with a broader query for crbug.com/dawn/1071, handled - // in more specific queries below. - /* - { - // Failures because stencil8 and depth16unorm aren't implemented. - b: 'crbug.com/dawn/666', - t: null, - e: [Failure], - q: [ - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="depth16unorm";*', - ], - w: true, - }, - */ - { - b: 'crbug.com/dawn/666', - t: [mac, amd], - e: [Failure], - q: [ - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="depth16unorm";*', - ], - w: true, - }, - { - b: 'crbug.com/dawn/666', - t: [mac, nvidia], - e: [Failure], - q: [ - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="depth16unorm";*', - ], - w: true, - }, - { - b: 'crbug.com/dawn/666', - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="depth16unorm";*', - ], - w: true, - }, - { - b: 'crbug.com/dawn/666', - t: [win], - e: [Failure], - q: [ - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="depth16unorm";*', - ], - w: true, - }, - { - // maxArrayLayoutCount limit should be 256 instead of 2048. - // These queries should be restricted to the following once they are no - // longer subcases. - // 'webgpu:api,validation,createTexture:texture_size,2d_texture,compressed_format:size=[4,4,2047];*', - // 'webgpu:api,validation,createTexture:texture_size,2d_texture,compressed_format:size=[4,4,2048];*', - // 'webgpu:api,validation,createTexture:texture_size,2d_texture,compressed_format:size=[4,4,2049];*', - // 'webgpu:api,validation,createTexture:texture_size,2d_texture,uncompressed_format:size=[1,1,2047];*', - // 'webgpu:api,validation,createTexture:texture_size,2d_texture,uncompressed_format:size=[1,1,2048];*', - // 'webgpu:api,validation,createTexture:texture_size,2d_texture,uncompressed_format:size=[1,1,2049];*', - b: 'crbug.com/dawn/685', - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,createTexture:texture_size,2d_texture,compressed_format:*', - 'webgpu:api,validation,createTexture:texture_size,2d_texture,uncompressed_format:*', - ], - }, - { - // Failures because stencil8 and depth16unorm aren't implemented. - b: 'crbug.com/dawn/690', - t: null, - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_depth_stencil:format="stencil8";*', - 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_depth_stencil:format="depth16unorm";*', - 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_depth_stencil:format="depth24plus-stencil8";*', - 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_depth_stencil:format="depth24unorm-stencil8";*', - 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_depth_stencil:format="depth32float-stencil8";*', - 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_depth_stencil:format="depth32float";copyMethod="CopyT2B";aspect="depth-only"', - 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:format="stencil8";*', - 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:format="depth16unorm";*', - 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:format="depth24plus-stencil8";*', - 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:format="depth24unorm-stencil8";*', - 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:format="depth32float-stencil8";copyMethod="CopyT2B";aspect="depth-only"', - 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:format="depth32float-stencil8";aspect="stencil-only";*', - 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:format="depth32float";copyMethod="CopyT2B";aspect="depth-only"', - // TODO: Figure out why the broader query doesn't find anything - // 'webgpu:api,operation,command_buffer,copyTextureToTexture:copy_stencil_aspect:format="stencil8";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:copy_depth_stencil:format="depth16unorm";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:copy_depth_stencil:format="stencil8";*', - ], - }, - // TODO: Figure out why these queries don't find any cases. - /* - { - b: 'crbug.com/dawn/704', - t: [mac, intel], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_with_stencil_aspect:*', - 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_copy_with_stencil_aspect:*', - ], - }, - */ - { - // baseVertex is always 0 for drawIndirect. - b: 'crbug.com/dawn/722', - t: [mac, intel], - e: [Failure], - q: [ - 'webgpu:api,operation,rendering,draw:arguments:indirect=true;base_vertex=9;*', - ], - }, - { - b: 'crbug.com/dawn/746', - t: null, - e: [Failure], - q: [ - 'webgpu:api,operation,shader_module,compilation_info:offset_and_length:valid=false;unicode=true', - ], - }, - { - b: 'crbug.com/dawn/759', - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,rendering,draw:vertex_attributes,basic:*', - ], - }, - { - // Dawn validation requires that aspects of attachments is "all", which the - // tests don't do. - // See also crbug.com/dawn/603 for missing resource state - // D3D12_RESOURCE_STATE_DEPTH_WRITE that happens on the same tests. - b: 'crbug.com/dawn/812', - t: null, - e: [Failure], - q: [ - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="DepthTest";format="depth24plus-stencil8";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="StencilTest";format="depth24plus-stencil8";*', - 'webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_aspect:format="depth24plus-stencil8";*' - ], - }, - { - // Depth/stencil textures with multiple mip levels don't clear properly on - // Mac Intel. (By default they are disabled behind disallow_unsafe_apis.) - // May be restrictable to Metal. - b: 'crbug.com/dawn/838', - t: [mac], - e: [Failure], - q: [ - // Conflicts with an identical query from crbug.com/dawn/812. - // 'webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_aspect:format="depth24plus-stencil8";*', - // TODO: Figure out why the broader query doesn't find anything. - // 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_upload_to_stencil_aspect:stencilFormat="depth24plus-stencil8";*', - // Conflicts with broader query from crbug.com/dawn/690. - // 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_depth_stencil:format="depth24plus-stencil8";*', - // TODO: Figure out why the broader query doesn't find anything. - // 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_upload_to_stencil_aspect:stencilFormat="depth24plus-stencil8";*', - // Conflicts with broader query from crbug.com/dawn/690. - //'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:format="depth24plus-stencil8";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:format="depth32float";*', - ], - }, - { - // Dawn implements validation of the limit at createShaderModule time, while - // the CTS checks at createRenderPipeline time. - b: 'crbug.com/dawn/986', - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,vertex_state:vertex_shader_input_location_limit:*', - ], - }, - { - // The D3D12 debug layers produce and incorrect warning: Missing State: - // 0x1000: D3D12_RESOURCE_STATE_RESOLVE_DEST - b: 'crbug.com/dawn/988', - t: [win], - e: [Failure], - q: [ - 'webgpu:api,operation,render_pass,resolve:render_pass_resolve:*', - ], - }, - { - b: 'crbug.com/dawn/995', - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,buffer,create:createBuffer_invalid_and_oom:*', - ], - }, - { - b: 'crbug.com/dawn/999', - t: null, - e: [Failure], - q: [ - 'webgpu:api,operation,buffers,map_oom:mappedAtCreation,smaller_getMappedRange:*', - 'webgpu:api,operation,buffers,map_oom:mappedAtCreation,full_getMappedRange:*', - ], - }, - { - b: 'crbug.com/dawn/1002', - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,buffer,destroy:error_buffer:*', - ], - }, - { - // Precision. Need a better way to compare expected values. - b: 'crbug.com/dawn/1003', - t: null, - e: [Failure], - q: [ - 'webgpu:util,texture,texel_data:unorm_texel_data_in_shader:format="rgba8unorm-srgb";*', - 'webgpu:util,texture,texel_data:unorm_texel_data_in_shader:format="bgra8unorm-srgb";*', - 'webgpu:util,texture,texel_data:ufloat_texel_data_in_shader:format="rg11b10ufloat";*', - 'webgpu:util,texture,texel_data:ufloat_texel_data_in_shader:format="rgb9e5ufloat";*', - ], - }, - { - // Precision. Need a better way to compare expected values. - b: 'crbug.com/dawn/1003', - t: [mac], - e: [Failure], - q: [ - 'webgpu:util,texture,texel_data:unorm_texel_data_in_shader:format="rgb10a2unorm";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:readMethod="Sample";format="rg11b10ufloat";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:readMethod="Sample";format="rgb9e5ufloat";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rgb9e5ufloat";*', - ], - }, - { - b: 'crbug.com/dawn/1003', - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rgb9e5ufloat";*', - ], - }, - { - // Failures because readonly storage textures have been removed. - b: 'crbug.com/dawn/1025', - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,resource_usages,texture,in_pass_encoder:unused_bindings_in_pipeline:*', - ], - }, - { - b: 'crbug.com/dawn/1046', - t: [mac], - e: [Failure], - q: [ - 'webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="firstVertex";type="float32x4";*', - 'webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="instanceCount";type="float32x4";*', - 'webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="vertexCount";type="float32x4";*', - 'webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="baseVertex";type="float32x4";*', - 'webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";*', - ], - }, - { - // The copyTextureToTexture tests should allow information loss caused by - // some bit patterns having the same value. - b: 'crbug.com/dawn/1047', - t: [mac], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="r8snorm";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rg8snorm";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba8snorm";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="r8snorm";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rg8snorm";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rgba8snorm";*', - ], - }, - { - // Unexpected result. Possibly due to using dst-alpha on an attachment with - // no alpha channel. - b: 'crbug.com/dawn/1063', - t: [win, intel], - e: [Failure], - q: [ - 'webgpu:api,operation,render_pipeline,pipeline_output_targets:color,component_count,blend:*', - ], - }, - { - // Error from debug layer. - // Also affects crbug.com/dawn/1112. - b: 'crbug.com/dawn/1064', - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,adapter,requestDevice_limits:worse_than_default:*', - ], - }, - { - // r8unorm/rg8unorm with multiple mip levels don't clear properly on Mac - // Intel. - b: 'crbug.com/dawn/1071', - t: [mac, intel], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="r8unorm";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rg8unorm";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="r8unorm";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rg8unorm";*', - 'webgpu:api,operation,command_buffer,image_copy:mip_levels:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="r8unorm";*', - 'webgpu:api,operation,command_buffer,image_copy:mip_levels:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rg8unorm";*', - 'webgpu:api,operation,command_buffer,image_copy:mip_levels:initMethod="WriteTexture";checkMethod="FullCopyT2B";format="r8unorm";*', - 'webgpu:api,operation,command_buffer,image_copy:mip_levels:initMethod="WriteTexture";checkMethod="FullCopyT2B";format="rg8unorm";*', - 'webgpu:api,operation,command_buffer,image_copy:mip_levels:initMethod="WriteTexture";checkMethod="PartialCopyT2B";format="r8unorm";*', - 'webgpu:api,operation,command_buffer,image_copy:mip_levels:initMethod="WriteTexture";checkMethod="PartialCopyT2B";format="rg8unorm";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_only:colorFormat="r8unorm";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_only:colorFormat="rg8unorm";*', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";storeOperation="discard"', - 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";storeOperation="store"', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:format="r8unorm";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:format="rg8unorm";*', - // Handled by the above broader queries. - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="CopyToBuffer";format="r8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="CopyToBuffer";format="rg8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="CopyToTexture";format="r8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="CopyToTexture";format="rg8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="r8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rg8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="3d";readMethod="CopyToBuffer";format="r8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="3d";readMethod="CopyToBuffer";format="rg8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="3d";readMethod="CopyToTexture";format="r8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="3d";readMethod="CopyToTexture";format="rg8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="3d";readMethod="Sample";format="r8unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="3d";readMethod="Sample";format="rg8unorm";*', - // These should eventually be restricted to r8unorm and rg8unorm only. - // 'webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_only:*', - // Handled by an identical query in an unaffiliated group. - // 'webgpu:api,validation,createTexture:mipLevelCount,format:*', - // Recover the below two test expectations after new MSAA rules are - // implemented (see crbug.com/dawn/1244 for more details). - // 'webgpu:api,validation,createTexture:sampleCount,valid_sampleCount_with_other_parameter_varies:dimension="_undef_";*', - // 'webgpu:api,validation,createTexture:sampleCount,valid_sampleCount_with_other_parameter_varies:dimension="2d";*', - // Handled by a broader query in an unaffiliated group. - // 'webgpu:api,validation,createTexture:sampleCount,valid_sampleCount_with_other_parameter_varies:dimension="3d";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyB2T";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="CopyT2B";*', - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";*', - ], - }, - { - b: 'crbug.com/dawn/1071', - t: [mac, intel], - e: [Failure], - w: true, - q: [ - 'webgpu:api,operation,render_pass,storeOp:*', - ], - }, - { - // Incorrect results, only on Mac Intel. - b: 'crbug.com/dawn/1083', - t: [mac, intel], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,copyTextureToTexture:copy_depth_stencil:format="depth32float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:copy_depth_stencil:format="depth24plus";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:copy_depth_stencil:format="depth24plus-stencil8";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:copy_depth_stencil:format="depth32float-stencil8";*', - ], - }, - { - b: 'crbug.com/dawn/1095', - t: [linux, nvidia], - e: [RetryOnFailure], - q: [ - 'webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:*', - ], - }, - { - b: 'crbug.com/dawn/1107', - t: [mac], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="r32float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rg16float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rg32float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba16float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba32float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rg11b10ufloat";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="r32float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rg16float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rg32float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rgba16float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rgba32float";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rg11b10ufloat";*', - ], - }, - { - b: 'crbug.com/dawn/1111', - t: [linux], - e: [Failure], - q: [ - 'webgpu:shader,execution,zero_init:compute,zero_init:*', - ], - }, - { - // Device lost failures for certain batches. - b: 'crbug.com/dawn/1116', - t: [mac, amd], - e: [Failure], - q: [ - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=17;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=18;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=19;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=20;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=21;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=22;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=23;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=24;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=25;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=26;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=27;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=28;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=29;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=17;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=18;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=19;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=20;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=21;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=22;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=23;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=24;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=25;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=26;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=27;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=28;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=29;*', - ], - }, - { - // Possibly Intel-only, flaky failures on Mac 11.5.2. - b: 'crbug.com/dawn/1119', - t: [bigsur], - e: [Failure], - w: true, - q: [ - 'webgpu:api,operation,rendering,basic:large_draw:*', - ], - }, - { - // Need to clamp depth in shader on Vulkan. - b: 'crbug.com/dawn/1125', - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,rendering,depth_clip_clamp:depth_clamp_and_clip:writeDepth=true;*', - 'webgpu:api,operation,rendering,depth_clip_clamp:depth_test_input_clamped:unclippedDepth=false;*', - // Started not finding any cases. - /*'webgpu:api,operation,rendering,depth_clip_clamp:depth_clamp_and_clip:clampDepth=false;writeDepth=true;*', - 'webgpu:api,operation,rendering,depth_clip_clamp:depth_test_input_clamped:clampDepth=false;*',*/ - ], - }, - { - // Failures because srgb-equality for compressed formats isn't implemented - // in Dawn validation. - b: 'crbug.com/dawn/1204', - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,compressed,array:*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,compressed,non_array:*', - ], - }, - { - // Failures because of the changes on the validation rules on the texture - // format of multisampled texture creation. - b: 'crbug.com/dawn/1244', - t: null, - e: [Failure], - q: [ - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="r32sint";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="r32uint";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rg32sint";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rg32uint";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rgba32sint";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rgba32uint";*', - // Conflicts with a broader query not associated with a bug. - // 'webgpu:api,validation,createTexture:sampleCount,valid_sampleCount_with_other_parameter_varies:dimension="2d";*', - // 'webgpu:api,validation,createTexture:sampleCount,valid_sampleCount_with_other_parameter_varies:dimension="_undef_";*', - 'webgpu:api,validation,createTexture:sampleCount,various_sampleCount_with_all_formats:*', - ], - }, - { - // Originally part of the generic queries above, but had to be split due to - // conflicts with queries associated with crbug.com/1237175. - b: 'crbug.com/dawn/1244', - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rg32float";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rgba32float";*', - - ], - }, - { - // Originally part of the generic queries above, but had to be split due to - // conflicts with queries associated with crbug.com/1237175. - b: 'crbug.com/dawn/1244', - t: [mac], - e: [Failure], - q: [ - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rg32float";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rgba32float";*', - - ], - }, - { - // Originally part of the generic queries above, but had to be split due to - // conflicts with queries associated with crbug.com/1237175. - b: 'crbug.com/dawn/1244', - t: [win, amd], - e: [Failure], - q: [ - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rg32float";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rgba32float";*', - - ], - }, - { - // Originally part of the generic queries above, but had to be split due to - // conflicts with queries associated with crbug.com/1237175. - b: 'crbug.com/dawn/1244', - t: [win, nvidia], - e: [Failure], - q: [ - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rg32float";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rgba32float";*', - - ], - }, - { - b: 'crbug.com/dawn/1256', - t: [linux], - e: [Failure], - q: [ - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gpu_context_canvas:*', - ], - }, - { - // # Device lost is triggered unexpectedly. - b: 'crbug.com/dawn/1278', - t: [win], - e: [Failure], - // More exact query that can be used once sub-cases are pulled out: - // webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=32;dimension="3d";format="r8unorm";mipLevel=2;copyWidthModifier=-1;copyHeightModifier=-1;copyDepthModifier=0;* - q: [ - 'webgpu:api,validation,image_copy,texture_related:format:method="WriteTexture";depthOrArrayLayers=32;dimension="3d";format="r8unorm";*', - ], - }, - { - // Wrong results in copyToTexture. - b: 'crbug.com/dawn/1279', - t: [win, intel], - e: [Failure], - q: [ - // Can be restricted to width=256 and height=255 once sub-cases are - // pulled out. - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";orientation="flipY";srcDoFlipYDuringCopy=false;dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";orientation="none";srcDoFlipYDuringCopy=true;dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";srcDoFlipYDuringCopy=true;dstColorFormat="rg32float";*', - ], - }, - { - // 3D texture issue. - b: 'crbug.com/dawn/1288', - t: [win], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:dimension="3d";*', - ], - }, - { - // 3D texture issue. - b: 'crbug.com/dawn/1289', - t: [win], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,image_copy:mip_levels:dimension="3d";*', - 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow:dimension="3d";*', - ], - }, - { - // This might not actually be the same root cause as the Windows suppression - // above, as the Linux version was added when switching test harnesses and - // the existing query seemed relevant. - b: 'crbug.com/dawn/1289', - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,image_copy:mip_levels:dimension="3d";*', - // Conflicts with a broader query associated with crbug.com/dawn/690. - // 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_depth_stencil:format="depth32float-stencil8";copyMethod="CopyT2B";aspect="depth-only"', - // 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:format="depth32float-stencil8";copyMethod="CopyT2B";aspect="depth-only"', - ], - }, - { - b: 'crbug.com/dawn/1297', - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,createRenderPipeline:pipeline_output_targets,blend_min_max:*', - ], - }, - { - b: 'crbug.com/dawn/1314', - t: [linux, nvidia], - e: [Failure], - q: [ - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:orientation="flipY";dstColorFormat="rgba16float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:orientation="none";srcDoFlipYDuringCopy=false;dstColorFormat="rgba16float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:orientation="flipY";srcDoFlipYDuringCopy=true;dstColorFormat="rgba32float";dstPremultiplied=false', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:orientation="flipY";srcDoFlipYDuringCopy=true;dstColorFormat="rgba8unorm-srgb";dstPremultiplied=true', - ] - }, - { - b: 'crbug.com/dawn/1319', - t: [win, intel], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rg16sint";dstFormat="rg16sint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rg16uint";dstFormat="rg16uint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rg32float";dstFormat="rg32float";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rg32sint";dstFormat="rg32sint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rg32uint";dstFormat="rg32uint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba16sint";dstFormat="rgba16sint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba16uint";dstFormat="rgba16uint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba32float";dstFormat="rgba32float";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba32sint";dstFormat="rgba32sint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba32uint";dstFormat="rgba32uint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba8sint";dstFormat="rgba8sint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba8snorm";dstFormat="rgba8snorm";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba8uint";dstFormat="rgba8uint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rg16uint";dstFormat="rg16uint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rg32sint";dstFormat="rg32sint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rgba16uint";dstFormat="rgba16uint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rgba32sint";dstFormat="rgba32sint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rgba8sint";dstFormat="rgba8sint";dimension="2d"', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:srcFormat="rgba8uint";dstFormat="rgba8uint";dimension="2d"', - ], - }, - { - b: 'crbug.com/dawn/1320', - t: [win], - e: [Failure], - q: [ - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="3d";readMethod="CopyToBuffer";format="rgba8uint";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="3d";readMethod="CopyToTexture";format="rgba8unorm";*', - ], - }, - // - // Tint bugs - // - { - // Timeout + compilation failure. - b: 'crbug.com/tint/993', - t: [mac], - e: [Skip], - q: [ - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="function";*', - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="private";access="write";*', - ], - }, - { - b: 'crbug.com/tint/993', - t: [win], - e: [Failure], - q: [ - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="function";*', - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="private";*', - ], - }, - { - b: 'crbug.com/tint/993', - t: [mac], - e: [Failure], - q: [ - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="workgroup";*', - ], - }, - { - // Crashes on pipeline compilation in the driver. - b: 'crbug.com/tint/993', - t: [linux], - e: [Skip], - q: [ - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="workgroup";*', - ], - }, - { - b: 'crbug.com/tint/1215', - t: null, - e: [Failure], - q: [ - 'webgpu:shader,execution,shader_io,compute_builtins:inputs:*', - ], - }, - { - b: 'crbug.com/tint/1216', - t: null, - e: [Failure], - q: [ - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="storage";storageMode="read_write";access="read";containerType="vector";*', - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="storage";storageMode="read";access="read";containerType="vector";*', - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="uniform";access="read";containerType="vector";*', - // Currently conflict with a broader query from crbug.com/tint/993. - // 'webgpu:shader,execution,robust_access:linear_memory:storageClass="workgroup";access="read";containerType="vector";*', - // 'webgpu:shader,execution,robust_access:linear_memory:storageClass="workgroup";access="write";containerType="vector";*', - ], - }, - { - // Originally part of the larger crbug.com/tin/1216 group, but split out to - // resolve a conflict with a broad expectation from crbug.com/tint/993. - b: 'crbug.com/tint/1216', - t: [linux], - e: [Failure], - q: [ - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="private";access="read";containerType="vector";*', - ], - }, - { - // Originally part of the larger crbug.com/tin/1216 group, but split out to - // resolve a conflict with a broad expectation from crbug.com/tint/993. - b: 'crbug.com/tint/1216', - t: [mac], - e: [Failure], - q: [ - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="private";access="read";containerType="vector";*', - ], - }, - { - b: 'crbug.com/tint/1228', - t: null, - e: [Failure], - q: [ - 'webgpu:shader,execution,builtin,log:float_builtin_functions,log:*', - 'webgpu:shader,execution,builtin,log2:float_builtin_functions,log2:*', - ], - }, - { - b: 'crbug.com/tint/1228', - t: [linux], - e: [Failure], - q: [ - 'webgpu:shader,execution,builtin,abs:float_builtin_functions,abs_float:*', - ], - }, - { - b: 'crbug.com/tint/1228', - t: [win], - e: [Failure], - q: [ - 'webgpu:shader,execution,builtin,abs:float_builtin_functions,abs_float:*', - ], - }, - { - // Failing since the test was added. - b: 'crbug.com/tint/1287', - t: [linux, nvidia], - e: [Failure], - q: [ - 'webgpu:shader,execution,shader_io,shared_structs:shared_between_stages:*', - ], - }, - { - // Failing since the test was added. - b: 'crbug.com/tint/1287', - t: [win, nvidia], - e: [Failure], - q: [ - 'webgpu:shader,execution,shader_io,shared_structs:shared_between_stages:*', - ], - }, - { - // KI due to support in Tint being rolled back. - b: 'crbug.com/tint/1322', - t: [win], - e: [Failure], - q: [ - 'webgpu:shader,execution,sampling,gradients_in_varying_loop:derivative_in_varying_loop:*', - ], - }, - { - b: 'crbug.com/tint/1367', - t: [linux, intel], - e: [Failure], - q: [ - 'webgpu:shader,execution,builtin,countTrailingZeros:integer_builtin_functions,countTrailingZeros_signed:*', - 'webgpu:shader,execution,builtin,countTrailingZeros:integer_builtin_functions,countTrailingZeros_unsigned:*', - 'webgpu:shader,execution,builtin,firstTrailingBit:integer_builtin_functions,firstTrailingBit_signed:*', - 'webgpu:shader,execution,builtin,firstTrailingBit:integer_builtin_functions,firstTrailingBit_unsigned:*', - ], - }, - { - b: 'crbug.com/tint/1464', - t: [linux, intel], - e: [Slow], - q: [ - 'webgpu:shader,execution,memory_model,atomicity:atomicity:*', - 'webgpu:shader,execution,memory_model,coherence:corr:*', - ], - }, - { - b: 'crbug.com/tint/1467', - t: [mac, intel], - e: [Failure], - q: [ - 'webgpu:shader,execution,builtin,atan2:*', - ], - }, - { - b: 'crbug.com/tint/1471', - t: null, - e: [Failure], - q: [ - 'webgpu:shader,execution,builtin,ldexp:float_builtin_functions,ldexp:*', - ], - }, - // - // Chromium bugs - // - { - // Flaky "Check failed: bytes_in_use_ == 0u". - b: 'crbug.com/1005284', - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,validation,texture,destroy:twice:*', - ], - }, - { - // Very flaky, especially (but not exclusively!) with backend validation. - b: 'crbug.com/1087130', - t: [win], - e: [RetryOnFailure], - // This was originally just 'webgpu:api,validation,createView:*', but the - // webgpu:api,validation,createView:format:* tests conflicted with an - // unassociated query for stencil8/depth16unorm failures. So, we need to - // explicitly list multiple queries instead. - q: [ - 'webgpu:api,validation,createView:dimension:*', - 'webgpu:api,validation,createView:aspect:*', - 'webgpu:api,validation,createView:array_layers:*', - 'webgpu:api,validation,createView:mip_levels:*', - 'webgpu:api,validation,createView:cube_faces_square:*', - 'webgpu:api,validation,createView:texture_state:*', - ], - }, - { - b: 'crbug.com/1197369', - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_image,crossOrigin:*', - ], - }, - { - b: 'crbug.com/1197369', - t: null, - e: [Skip], - q: [ - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="flipY";*', - ], - }, - { - b: 'crbug.com/1213657', - t: [linux], - e: [Failure], - q: [ - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:*', - ], - }, - { - b: 'crbug.com/1215024', - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,createComputePipeline:enrty_point_name_must_match:stageEntryPoint="main%5Cu0000";*', - 'webgpu:api,validation,createComputePipeline:enrty_point_name_must_match:stageEntryPoint="main%5Cu0000a";*', - ], - }, - { - // Crashes or fails with "Backing is being accessed by both GL and Vulkan". - b: 'crbug.com/1234041', - t: [linux], - e: [Skip], - // This was originally - // 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:*', - // but that partially conflicts with a query from crbug.com/1197369 that - // specifies CopyExternalImageToTexture:source_image,crossOrigin, so - // additional splits have to be made. - q: [ - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_canvas,contexts:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_canvas,state:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_offscreenCanvas,contexts:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_offscreenCanvas,state:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_imageBitmap,state:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,state:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,device_mismatch:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,dimension:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,usage:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,sample_count:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,mipLevel:*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,format:*', - ], - }, - { - // Shared image synchronization. - b: 'crbug.com/1236130', - t: [linux], - e: [Failure], - q: [ - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:drawTo2DCanvas:*', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:offscreenCanvas,snapshot:*', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,snapshot:*', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,uploadToWebGL:*', - ], - }, - { - // StoreOpClear handling is overclearing resources that should be preserved. - b: 'crbug.com/1237175', - t: [win, intel], - e: [Failure], - q: [ - // Can be restricted to - // uninitializeMethod="StoreOpClear";canaryOnCreation=true; once sub-cases - // are pulled out. - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";format="rg32float";*', - 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";format="rgba32float";*', - ], - }, - { - // Null-deref on Intel, failure on NVIDIA. - b: 'crbug.com/1237592', - t: [linux], - e: [Failure], - q: [ - 'webgpu:web_platform,external_texture,video:importExternalTexture,*', - ], - }, - { - // Test times out. Issue with hardware decoding? - b: 'crbug.com/1238241', - t: [win, nvidia], - e: [Skip], - q: [ - 'webgpu:web_platform,external_texture,video:importExternalTexture,sample:*', - ], - }, - { - // SharedImageBackingFactoryIOSurface takes rgba8unorm as bgra8unorm. - // https://source.chromium.org/chromium/chromium/src/+/main:gpu/command_buffer/service/shared_image_backing_factory_iosurface.mm;l=217?q=SharedImageBackingFactoryIOSurface::CreateSharedImage&ss=chromium%2Fchromium%2Fsrc - b: 'crbug.com/1241369', - t: [mac], - e: [Skip], - q: [ - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,snapshot:format="rgba8unorm";snapshotType="toDataURL"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,snapshot:format="rgba8unorm";snapshotType="toBlob"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,snapshot:format="rgba8unorm";snapshotType="imageBitmap"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,uploadToWebGL:format="rgba8unorm";webgl="webgl";upload="texImage2D"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,uploadToWebGL:format="rgba8unorm";webgl="webgl";upload="texSubImage2D"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,uploadToWebGL:format="rgba8unorm";webgl="webgl2";upload="texImage2D"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,uploadToWebGL:format="rgba8unorm";webgl="webgl2";upload="texSubImage2D"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:offscreenCanvas,snapshot:format="rgba8unorm";snapshotType="convertToBlob"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:offscreenCanvas,snapshot:format="rgba8unorm";snapshotType="transferToImageBitmap"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:offscreenCanvas,snapshot:format="rgba8unorm";snapshotType="imageBitmap"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:drawTo2DCanvas:format="rgba8unorm";webgpuCanvasType="onscreen";canvas2DType="onscreen"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:drawTo2DCanvas:format="rgba8unorm";webgpuCanvasType="onscreen";canvas2DType="offscreen"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:drawTo2DCanvas:format="rgba8unorm";webgpuCanvasType="offscreen";canvas2DType="onscreen"', - 'webgpu:web_platform,canvas,readbackFromWebGPUCanvas:drawTo2DCanvas:format="rgba8unorm";webgpuCanvasType="offscreen";canvas2DType="offscreen"', - ], - }, - { - // TODO: Remove and add an expected crash count? - // Intentionally hits a CHECK. - b: 'crbug.com/1243842', - t: null, - e: [Failure], - q: [ - 'webgpu:api,operation,buffers,map_ArrayBuffer:postMessage:transfer=true;*', - ], - }, - { - // CopyExternalImageToTexture test failures with CPU uploading path on - // Windows. - b: 'crbug.com/1269118', - t: [win, intel_hd630], - e: [Failure], - q: [ - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="offscreen";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="offscreen";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="onscreen";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="onscreen";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="offscreen";contextName="webgl";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="offscreen";contextName="webgl";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="offscreen";contextName="webgl2";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="offscreen";contextName="webgl2";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="onscreen";contextName="webgl";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="onscreen";contextName="webgl";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="onscreen";contextName="webgl2";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="onscreen";contextName="webgl2";dstColorFormat="rgba32float";*', - ], - }, - { - // CopyExternalImageToTexture test failures with CPU uploading path on - // Windows. - b: 'crbug.com/1269118', - t: [win, intel_uhd630], - e: [Failure], - q: [ - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="offscreen";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="offscreen";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="onscreen";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="onscreen";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="offscreen";contextName="webgl";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="offscreen";contextName="webgl";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="offscreen";contextName="webgl2";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="offscreen";contextName="webgl2";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="onscreen";contextName="webgl";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="onscreen";contextName="webgl";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="onscreen";contextName="webgl2";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="onscreen";contextName="webgl2";dstColorFormat="rgba32float";*', - ], - }, - { - // WebGPU allows copy from webgpu context in CopyExternalImageToTexture(). - // Disable related cts temporarily. This fails on Linux, Mac, and Win, but - // Linux is already covered by a Skip expectation associated with - // crbug.com/1234041. - b: 'crbug.com/1282838', - t: [mac], - e: [Failure], - q: [ - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_canvas,contexts:*', - ], - }, - { - // WebGPU allows copy from webgpu context in CopyExternalImageToTexture(). - // Disable related cts temporarily. This fails on Linux, Mac, and Win, but - // Linux is already covered by a Skip expectation associated with - // crbug.com/1234041. - b: 'crbug.com/1282838', - t: [win], - e: [Failure], - q: [ - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_canvas,contexts:*', - ], - }, - { - b: 'crbug.com/1299319', - t: [mac, amd], - e: [Failure], - q: [ - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";orientation="flipY";srcDoFlipYDuringCopy=false;dstColorFormat="rgb10a2unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";orientation="flipY";srcDoFlipYDuringCopy=true;dstColorFormat="rgb10a2unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";orientation="none";srcDoFlipYDuringCopy=false;dstColorFormat="rgb10a2unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";orientation="none";srcDoFlipYDuringCopy=true;dstColorFormat="rgb10a2unorm";*', - // Conflicts with Skip expectations from crbug.com/1197369, - // 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="flipY";srcDoFlipYDuringCopy=false;dstColorFormat="rgb10a2unorm";*', - // 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="flipY";srcDoFlipYDuringCopy=true;dstColorFormat="rgb10a2unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";srcDoFlipYDuringCopy=false;dstColorFormat="rgb10a2unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";srcDoFlipYDuringCopy=true;dstColorFormat="rgb10a2unorm";*', - ], - }, - { - b: 'crbug.com/1301808', - t: [linux, intel], - e: [Failure], - q: [ - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="offscreen";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:*', - ], - }, - // - // Unaffiliated bugs - // - { - // Failures because stencil8 and depth16unorm aren't implemented. - // All of these should be restricted to stencil8/depth16unorm once they are - // no longer sub-cases. - b: null, - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,createTexture:mipLevelCount,format:*', - // These are handled by the more general suppression for - // crbug.com/dawn/1244 above. - // 'webgpu:api,validation,createTexture:sampleCount,various_sampleCount_with_all_formats:format="depth16unorm";*', - // 'webgpu:api,validation,createTexture:sampleCount,various_sampleCount_with_all_formats:format="stencil8";*', - 'webgpu:api,validation,createTexture:texture_size,default_value_and_smallest_size,uncompressed_format:*', - // Conflicts with a broader query from crbug.com/dawn/685. - // 'webgpu:api,validation,createTexture:texture_size,2d_texture,uncompressed_format:format="stencil8";*', - // 'webgpu:api,validation,createTexture:texture_size,2d_texture,uncompressed_format:format="depth16unorm";*', - 'webgpu:api,validation,createTexture:texture_usage:*', - 'webgpu:api,validation,createTexture:dimension_type_and_format_compatibility:*', - 'webgpu:api,validation,encoding,cmds,buffer_texture_copies:depth_stencil_format,copy_buffer_size:format="depth16unorm";*', - 'webgpu:api,validation,encoding,cmds,buffer_texture_copies:depth_stencil_format,copy_buffer_size:format="stencil8";*', - // Conflicts with a broader query from crbug.com/dawn/666. - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="CopyToTexture";format="stencil8";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:readMethod="DepthTest";format="depth16unorm";*', - // 'webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:readMethod="StencilTest";format="stencil8";*', - 'webgpu:api,validation,createTexture:sampleCount,valid_sampleCount_with_other_parameter_varies:*', - 'webgpu:api,operation,rendering,depth:depth_compare_func:format="depth16unorm";*', - 'webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_aspect:format="depth16unorm";*', - 'webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_aspect:format="stencil8";*', - 'webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_aspect:format="depth24unorm-stencil8";*', - 'webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_aspect:format="depth32float-stencil8";*', - // TODO: Figure out why the broader query doesn't match anything. - // 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_upload_to_stencil_aspect:stencilFormat="stencil8";*', - // 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_upload_to_stencil_aspect:stencilFormat="stencil8";*', - // 'webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_copy_with_stencil_aspect:stencilFormat="stencil8";*', - 'webgpu:api,validation,createView:format:*', - ], - }, - { - // Originally part of the group above, but split out to resolve a conflict - // with a query from crbug.com/1087130. - b: null, - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,validation,createView:aspect:format="depth16unorm";*', - 'webgpu:api,validation,createView:aspect:format="stencil8";*', - ], - }, - { - // Originally part of the group above, but split out to resolve a conflict - // with queries from crbug.com/1087130 and crbug.com/1234041. - b: null, - t: [mac], - e: [Failure], - q: [ - 'webgpu:api,validation,createView:aspect:format="depth16unorm";*', - 'webgpu:api,validation,createView:aspect:format="stencil8";*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,format:format="depth16unorm";*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,format:format="stencil8";*', - ], - }, - { - // Originally part of the group above, but split out to resolve a conflict - // with a query from crbug.com/1234041. - b: null, - t: [win], - e: [Failure], - q: [ - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,format:format="depth16unorm";*', - 'webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,format:format="stencil8";*', - ], - }, - { - b: null, - t: [mac], - e: [Slow], - q: [ - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba32sint";dstFormat="rgba32sint";*', - 'webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:srcFormat="rgba32uint";dstFormat="rgba32uint";*', - ], - }, - // These Slow expectations should apply to just 'mac', but conflicts with - // AMD-specific expectations from crbug.com/1299319. - { - b: null, - t: [mac, amd], - e: [Slow], - q: [ - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:*', - // Should be webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:*, - // but conflicts with the Skip expectations associated with - // crbug.com/1197369. - // 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";*', - // 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="bgra8unorm-srgb";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="bgra8unorm-srgb";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="bgra8unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="bgra8unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="r16float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="r16float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="r32float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="r32float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="r8unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="r8unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="rg16float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="rg16float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="rg32float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="rg8unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="rg8unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="rgba16float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="rgba16float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="rgba32float";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="rgba8unorm-srgb";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="rgba8unorm-srgb";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";dstColorFormat="rgba8unorm";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";dstColorFormat="rgba8unorm";*', - ] - }, - { - b: null, - t: [mac, intel], - e: [Slow], - q: [ - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:*', - // Should be webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:*, - // but conflicts with the Skip expectations associated with - // crbug.com/1197369. - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";*', - ] - }, - { - b: null, - t: [mac, nvidia], - e: [Slow], - q: [ - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:*', - // Should be webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:*, - // but conflicts with the Skip expectations associated with - // crbug.com/1197369. - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";*', - 'webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="premultiply";orientation="none";*', - ] - }, - { - b: null, - t: [mac, amd], - e: [Slow], - q: [ - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="offscreen";dstColorFormat="rgba16float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="onscreen";dstColorFormat="rgba16float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="offscreen";dstColorFormat="rgba16float";*', - 'webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:canvasType="onscreen";dstColorFormat="rgba16float";*', - ], - }, - { - // This and the below Intel/NVIDIA queries can be combined into a single - // "mac" entry once the AMD-specific issues associated with - // crbug.com/dawn/1116 are resolved. - b: null, - t: [mac, amd], - e: [Slow], - q: [ - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=1;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=2;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=3;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=4;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=5;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=6;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=7;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=8;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=9;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=10;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=11;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=12;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=13;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=14;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=15;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";batch__=16;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=1;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=2;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=3;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=4;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=5;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=6;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=7;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=8;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=9;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=10;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=11;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=12;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=13;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=14;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=15;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="private";batch__=16;*', - 'webgpu:shader,execution,zero_init:compute,zero_init:storageClass="workgroup";*', - ], - }, - { - b: null, - t: [mac, intel], - e: [Slow], - q: [ - 'webgpu:shader,execution,zero_init:compute,zero_init:*', - ], - }, - { - b: null, - t: [mac, nvidia], - e: [Slow], - q: [ - 'webgpu:shader,execution,zero_init:compute,zero_init:*', - ], - }, - { - // Spec was changed so BGLs should eagerly apply per-pipeline limits. Tests - // need fixing, then Dawn needs to pass them. - // https://github.com/gpuweb/cts/issues/230 - b: null, - t: null, - e: [Failure], - q: [ - 'webgpu:api,validation,createBindGroupLayout:max_resources_per_stage,in_bind_group_layout:*', - ], - }, - { - // Deprecated values temporarily cause the wrong count. - b: null, - t: null, - e: [Failure], - q: [ - 'webgpu:idl,constants,flags:TextureUsage,count:*', - ], - }, - // Started not matching any cases. - /*{ - // Should only apply to 'format="stencil8"', but that is currently a - // subcase within the test. Originally a single query that applied - // everywhere, but partially conflicted with a Linux query for - // crbug.com/dawn/1125 that specified - // depth_test_input_clamped:clampDepth=false;* - b: null, - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,rendering,depth_clip_clamp:depth_test_input_clamped:clampDepth=true;*', - ], - },*/ - { - // Should only apply to 'format="stencil8"', but that is currently a - // subcase within the test. Originally a single query that applied - // everywhere, but partially conflicted with a Linux query for - // crbug.com/dawn/1125 that specified - // depth_test_input_clamped:clampDepth=false;* - b: null, - t: [mac], - e: [Failure], - q: [ - 'webgpu:api,operation,rendering,depth_clip_clamp:depth_test_input_clamped:*', - ], - }, - { - // Should only apply to 'format="stencil8"', but that is currently a - // subcase within the test. Originally a single query that applied - // everywhere, but partially conflicted with a Linux query for - // crbug.com/dawn/1125 that specified - // depth_test_input_clamped:clampDepth=false;* - b: null, - t: [win], - e: [Failure], - q: [ - 'webgpu:api,operation,rendering,depth_clip_clamp:depth_test_input_clamped:*', - ], - }, - { - // Our automated build does not support mp4 currently (fails on Linux, Mac, - // and Win Intel). Linux failure is already handled by a broader query from - // crbug.com/1237592, so specify Win and Mac. - b: null, - t: [mac], - e: [Failure], - q: [ - 'webgpu:web_platform,external_texture,video:importExternalTexture,sample:videoSource="red-green.mp4"', - ], - }, - { - // Our automated build does not support mp4 currently (fails on Linux, Mac, - // and Win Intel). Linux failure is already handled by a broader query from - // crbug.com/1237592, so specify Win and Mac. - b: null, - t: [win, intel], - e: [Failure], - q: [ - 'webgpu:web_platform,external_texture,video:importExternalTexture,sample:videoSource="red-green.mp4"', - ], - }, - { - b: null, - t: [linux], - e: [Failure], - q: [ - 'webgpu:shader,execution,robust_access:linear_memory:storageClass="function";access="read";containerType="vector";*', - ], - }, - // TODO: Determine if this can be removed. - /*{ - // Failures because stencil8 and depth16unorm aren't implemented. - // Should only apply to 'stencilFormat="stencil8"', but that is currently a - // subcase within the test. - b: null, - t: [linux], - e: [Failure], - q: [ - 'webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_with_stencil_aspect:*', - ], - },*/ +const expectations = [ + // Example: + // { + // b: 'crbug.com/dawn/1304812342', + // t: [Mac], + // q: 'webgpu:api,operation,command_buffer,copyTextureToTexture:*', + // e: [Failure] + // }, + // { + // b: 'crbug.com/dawn/9839583', + // t: [Win], + // q: 'webgpu:api,validation,resource_usages,texture,in_pass_encoder:unused_bindings_in_pipeline:*', + // e: [Failure] + // } ]; -var expectations = []; -// This is currently removed so that the blanket skip works properly. -/* -for (const group of expectation_groups) { - for (const query of group.q) { - expectations.push({ - b: group.b, - t: group.t, - e: group.e, - q: query, - w: group.w || false, - }); - } -}*/ - module.exports = { expectations };
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgpu_cts_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgpu_cts_expectations.txt deleted file mode 100644 index 07d81d1b..0000000 --- a/content/test/gpu/gpu_tests/test_expectations/webgpu_cts_expectations.txt +++ /dev/null
@@ -1,69 +0,0 @@ -# THIS FILE IS AUTOGENERATED. DO NOT MANUALLY EDIT. -# SEE //content/test/gpu/process_generated_webgpu_expectations.py -# BEGIN TAG HEADER (autogenerated, see validate_tag_consistency.py) -# OS -# tags: [ android android-lollipop android-marshmallow android-nougat -# android-pie android-r android-s -# chromeos -# fuchsia -# linux ubuntu -# mac bigsur catalina lion highsierra mac-10.12 mojave monterey -# mountainlion sierra -# win win7 win8 win10 ] -# Devices -# tags: [ android-nexus-5 android-nexus-5x android-pixel-2 android-pixel-4 -# android-pixel-6 android-shield-android-tv -# chromeos-board-amd64-generic chromeos-board-kevin chromeos-board-eve -# fuchsia-board-astro fuchsia-board-sherlock fuchsia-board-qemu-x64 ] -# Platform -# tags: [ desktop -# mobile ] -# Browser -# tags: [ android-chromium android-webview-instrumentation -# debug debug-x64 -# release release-x64 -# fuchsia-chrome web-engine-shell ] -# GPU -# tags: [ amd amd-0x6613 amd-0x679e amd-0x6821 amd-0x7340 -# apple apple-apple-m1 apple-angle-metal-renderer:-apple-m1 -# arm -# google google-0xffff -# intel intel-0xa2e intel-0xd26 intel-0xa011 intel-0x3e92 intel-0x3e9b -# intel-0x5912 -# nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 -# qualcomm ] -# Decoder -# tags: [ passthrough no-passthrough ] -# ANGLE Backend -# tags: [ angle-disabled -# angle-d3d9 angle-d3d11 -# angle-metal -# angle-opengl angle-opengles -# angle-swiftshader -# angle-vulkan ] -# Skia Renderer -# tags: [ skia-renderer-dawn -# skia-renderer-disabled -# skia-renderer-gl -# skia-renderer-vulkan ] -# SwiftShader -# tags: [ swiftshader-gl no-swiftshader-gl ] -# Driver -# tags: [ mesa_lt_19.1 ] -# ASan -# tags: [ asan no-asan ] -# Display Server -# tags: [ display-server-wayland display-server-x ] -# OOP-Canvas -# tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] -# END TAG HEADER - -# This will be slowly removed over time as more tests are moved from the web -# test harness to the Telemetry harness. -* [ Skip ] - -# BEGIN AUTOGENERATED EXPECTATIONS -
diff --git a/content/test/gpu/gpu_tests/test_expectations_unittest.py b/content/test/gpu/gpu_tests/test_expectations_unittest.py index f8e3209..55dfc43 100644 --- a/content/test/gpu/gpu_tests/test_expectations_unittest.py +++ b/content/test/gpu/gpu_tests/test_expectations_unittest.py
@@ -62,9 +62,7 @@ VALID_BUG_REGEXES = [ re.compile(r'crbug\.com\/\d+'), re.compile(r'crbug\.com\/angleproject\/\d+'), - re.compile(r'crbug\.com\/dawn\/\d+'), re.compile(r'crbug\.com\/swiftshader\/\d+'), - re.compile(r'crbug\.com\/tint\/\d+'), re.compile(r'skbug\.com\/\d+'), ]
diff --git a/content/test/gpu/gpu_tests/webgpu_cts_integration_test.py b/content/test/gpu/gpu_tests/webgpu_cts_integration_test.py deleted file mode 100644 index 60033bab..0000000 --- a/content/test/gpu/gpu_tests/webgpu_cts_integration_test.py +++ /dev/null
@@ -1,316 +0,0 @@ -# Copyright 2022 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 asyncio -import fnmatch -import json -import logging -import os -import subprocess -import sys -import threading - -import websockets # pylint:disable=import-error - -from gpu_tests import gpu_integration_test - -import gpu_path_util - -WEB_TESTS_DIR = os.path.join(gpu_path_util.CHROMIUM_SRC_DIR, 'third_party', - 'blink', 'web_tests') -LIST_SCRIPT = os.path.join(gpu_path_util.CHROMIUM_SRC_DIR, 'third_party', - 'webgpu-cts', 'scripts', 'list.py') -TYPESCRIPT_DIR = os.path.join(gpu_path_util.GPU_DIR, '.webgpu_typescript') - -TEST_RUNS_BETWEEN_CLEANUP = 1000 -WEBSOCKET_PORT_TIMEOUT_SECONDS = 10 -WEBSOCKET_SETUP_TIMEOUT_SECONDS = 5 -DEFAULT_TEST_TIMEOUT = 5 -SLOW_MULTIPLIER = 5 - -# TODO: Switch this to reading from a file in the Dawn repo so that Dawn -# contributors can update this without a full Chromium checkout. -# Tests that should be run in a worker in addition to normally. -WORKER_TEST_GLOBS = [ - 'webgpu:api,operation,buffers,map:mapAsync,write:*', - 'webgpu:api,operation,buffers,map:mapAsync,read:*', - 'webgpu:api,operation,buffers,map:mapAsync,read,typedArrayAccess:*', - 'webgpu:api,operation,buffers,map:mappedAtCreation:*', - 'webgpu:api,operation,buffers,map:remapped_for_write:*', - 'webgpu:api,operation,buffers,map_detach:while_mapped:*', - 'webgpu:api,operation,command_buffer,basic:*', - 'webgpu:api,operation,command_buffer,copyBufferToBuffer:*', - 'webgpu:api,operation,compute,basic:memcpy:*', - 'webgpu:api,operation,compute,basic:large_dispatch:*', - 'webgpu:api,operation,rendering,basic:clear:*', - 'webgpu:api,operation,rendering,basic:fullscreen_quad:*', - 'webgpu:api,operation,rendering,basic:large_draw:*', - 'webgpu:api,operation,render_pass,storeOp:*', - 'webgpu:api,operation,render_pass,storeop2:*', - 'webgpu:api,operation,onSubmittedWorkDone:*', - 'webgpu:api,validation,buffer,destroy:*', - 'webgpu:api,validation,buffer,mapping:*', -] - -HTML_FILENAME = os.path.join('gen', 'content', 'test', 'cts_chrome.https.html') - - -async def StartWebsocketServer(): - async def HandleWebsocketConnection(websocket): - # We only allow one active connection - if there are multiple, something is - # wrong. - assert WebGpuCtsIntegrationTest.connection_stopper is None - assert WebGpuCtsIntegrationTest.websocket is None - WebGpuCtsIntegrationTest.connection_stopper = asyncio.Future() - WebGpuCtsIntegrationTest.websocket = websocket - WebGpuCtsIntegrationTest.connection_received_event.set() - await WebGpuCtsIntegrationTest.connection_stopper - - async with websockets.serve(HandleWebsocketConnection, '127.0.0.1', - 0) as server: - WebGpuCtsIntegrationTest.event_loop = asyncio.get_running_loop() - WebGpuCtsIntegrationTest.server_port = server.sockets[0].getsockname()[1] - WebGpuCtsIntegrationTest.port_set_event.set() - WebGpuCtsIntegrationTest.server_stopper = asyncio.Future() - await WebGpuCtsIntegrationTest.server_stopper - - -class ServerThread(threading.Thread): - def run(self): - try: - asyncio.run(StartWebsocketServer()) - except Exception as e: # pylint:disable=broad-except - sys.stdout.write('Server thread had exception: %s\n' % e) - - -class WebGpuCtsIntegrationTest(gpu_integration_test.GpuIntegrationTest): - # Whether the test page has already been loaded. Caching this state here is - # faster than checking the URL every time, and given how fast these tests are, - # additional overhead like that can add up quickly. - _page_loaded = False - - _test_timeout = DEFAULT_TEST_TIMEOUT - _is_backend_validation = False - - _build_dir = None - - _test_list = None - - total_tests_run = 0 - - server_stopper = None - connection_stopper = None - server_port = None - websocket = None - port_set_event = None - connection_received_event = None - event_loop = None - _server_thread = None - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self._query = None - self._run_in_worker = False - - # Only perform the pre/post test cleanup every X tests instead of every test - # to reduce overhead. - def ShouldPerformMinidumpCleanupOnSetUp(self): - return self.total_tests_run % TEST_RUNS_BETWEEN_CLEANUP == 0 - - def ShouldPerformMinidumpCleanupOnTearDown(self): - return self.ShouldPerformMinidumpCleanupOnSetUp() - - @classmethod - def Name(cls): - return 'webgpu_cts' - - @classmethod - def AddCommandlineArgs(cls, parser): - super(WebGpuCtsIntegrationTest, cls).AddCommandlineArgs(parser) - parser.add_option('--override-timeout', - type=float, - help='Override the test timeout in seconds') - parser.add_option('--is-backend-validation', - action='store_true', - default=False, - help=('Signals that the tests are being run with backend ' - 'validation enabled')) - - @classmethod - def StartBrowser(cls): - cls._page_loaded = False - super(WebGpuCtsIntegrationTest, cls).StartBrowser() - - @classmethod - def SetUpWebsocketServer(cls): - cls.port_set_event = threading.Event() - cls.connection_received_event = threading.Event() - cls._server_thread = ServerThread() - # Mark as a daemon so that the harness does not hang when shutting down if - # the thread fails to shut down properly. - cls._server_thread.daemon = True - cls._server_thread.start() - got_port = WebGpuCtsIntegrationTest.port_set_event.wait( - WEBSOCKET_PORT_TIMEOUT_SECONDS) - if not got_port: - raise RuntimeError('Server did not provide a port.') - - @classmethod - def SetUpProcess(cls): - super(WebGpuCtsIntegrationTest, cls).SetUpProcess() - cls.SetUpWebsocketServer() - browser_args = [ - '--enable-unsafe-webgpu', - '--disable-dawn-features=disallow_unsafe_apis', - ] - if cls._is_backend_validation: - if sys.platform == 'win32': - browser_args.append('--enable-dawn-backend-validation=partial') - else: - browser_args.append('--enable-dawn-backend-validation') - cls.CustomizeBrowserArgs(browser_args) - cls.StartBrowser() - # pylint:disable=protected-access - cls._build_dir = cls.browser._browser_backend.build_dir - # pylint:enable=protected-access - cls.SetStaticServerDirs([ - cls._build_dir, - ]) - - @classmethod - def TearDownWebsocketServer(cls): - if cls.connection_stopper: - cls.connection_stopper.cancel() - if cls.server_stopper: - cls.server_stopper.cancel() - cls.server_stopper = None - cls.connection_stopper = None - cls.server_port = None - cls.websocket = None - - cls._server_thread.join(5) - if cls._server_thread.is_alive(): - logging.error( - 'WebSocket server did not shut down properly - this might be ' - 'indicative of an issue in the test harness') - - @classmethod - def TearDownProcess(cls): - cls.TearDownWebsocketServer() - super(WebGpuCtsIntegrationTest, cls).TearDownProcess() - - @classmethod - def GenerateGpuTests(cls, options): - if options.override_timeout: - cls._test_timeout = options.override_timeout - cls._is_backend_validation = options.is_backend_validation - if cls._test_list is None: - p = subprocess.run( - [sys.executable, LIST_SCRIPT, '--js-out-dir', TYPESCRIPT_DIR], - stdout=subprocess.PIPE, - check=True) - cls._test_list = p.stdout.decode('utf-8').splitlines() - for line in cls._test_list: # pylint:disable=not-an-iterable - if not line: - continue - test_inputs = (line, False) - for wg in WORKER_TEST_GLOBS: - if fnmatch.fnmatch(line, wg): - yield (TestNameFromInputs(*test_inputs), HTML_FILENAME, test_inputs) - test_inputs = (line, True) - yield (TestNameFromInputs(*test_inputs), HTML_FILENAME, test_inputs) - break - else: - yield (TestNameFromInputs(*test_inputs), HTML_FILENAME, test_inputs) - - def RunActualGpuTest(self, test_path, *args): - try: - self._query, self._run_in_worker = args - self._NavigateIfNecessary(test_path) - asyncio.run_coroutine_threadsafe( - WebGpuCtsIntegrationTest.websocket.send( - json.dumps({ - 'q': self._query, - 'w': self._run_in_worker - })), WebGpuCtsIntegrationTest.event_loop) - future = asyncio.run_coroutine_threadsafe( - asyncio.wait_for(WebGpuCtsIntegrationTest.websocket.recv(), - self._GetTestTimeout()), - WebGpuCtsIntegrationTest.event_loop) - response = future.result() - response = json.loads(response) - status = response['s'] - logs = response['l'] - if isinstance(logs, list): - log_str = '\n'.join(logs) - else: - log_str = logs - if status == 'skip': - self.skipTest('WebGPU CTS JavaScript reported test skip with logs ' + - log_str) - elif status == 'fail': - self.fail(log_str) - finally: - WebGpuCtsIntegrationTest.total_tests_run += 1 - - @classmethod - def CleanUpExistingWebsocket(cls): - if cls.connection_stopper: - cls.connection_stopper.cancel() - cls.connection_stopper = None - cls.websocket = None - cls.connection_received_event.clear() - - def _NavigateIfNecessary(self, path): - if WebGpuCtsIntegrationTest._page_loaded: - return - WebGpuCtsIntegrationTest.CleanUpExistingWebsocket() - url = self.UrlOfStaticFilePath(path) - self.tab.Navigate(url) - self.tab.action_runner.WaitForJavaScriptCondition( - 'window.setupWebsocket != undefined') - self.tab.action_runner.ExecuteJavaScript( - 'window.setupWebsocket("%s")' % WebGpuCtsIntegrationTest.server_port) - WebGpuCtsIntegrationTest.connection_received_event.wait( - WEBSOCKET_SETUP_TIMEOUT_SECONDS) - if not WebGpuCtsIntegrationTest.websocket: - raise RuntimeError('Websocket connection was not established.') - WebGpuCtsIntegrationTest._page_loaded = True - - def _IsSlowTest(self): - # We access the expectations directly instead of using - # self.GetExpectationsForTest since we need the raw results, but that method - # only returns the parsed results and whether the test should be retried. - expectation = self.child.expectations.expectations_for( - TestNameFromInputs(self._query, self._run_in_worker)) - return 'Slow' in expectation.raw_results - - def _GetTestTimeout(self): - timeout = (self._test_timeout * - SLOW_MULTIPLIER if self._IsSlowTest() else self._test_timeout) - return timeout - - @classmethod - def GetPlatformTags(cls, browser): - tags = super(WebGpuCtsIntegrationTest, cls).GetPlatformTags(browser) - if cls._is_backend_validation: - tags.append('dawn-backend-validation') - else: - tags.append('dawn-no-backend-validation') - return tags - - @classmethod - def ExpectationsFiles(cls): - return [ - os.path.join(gpu_path_util.GPU_EXPECTATIONS_DIR, - 'webgpu_cts_expectations.txt'), - ] - - -def TestNameFromInputs(query, worker): - return 'worker_%s' % query if worker else query - - -def load_tests(_loader, _tests, _pattern): - return gpu_integration_test.LoadAllTestsInModule(sys.modules[__name__])
diff --git a/content/test/gpu/process_generated_webgpu_expectations.py b/content/test/gpu/process_generated_webgpu_expectations.py deleted file mode 100755 index 65740bf8..0000000 --- a/content/test/gpu/process_generated_webgpu_expectations.py +++ /dev/null
@@ -1,112 +0,0 @@ -#!/usr/bin/env python3 -# Copyright 2022 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. -"""Script for validating/generating WebGPU expectations. - -The WebGPU CTS tests are combinatorially generated. In order to cut back on -manual work, test expectations are written using queries and expanded to full -test names. Test queries are stored in -//content/test/gpu/gpu_tests/test_expectations/webgpu_expectation_queries.js. -""" - -import argparse -import os -import subprocess -import sys - -import gpu_path_util - -BEGIN_TAG = '# BEGIN AUTOGENERATED EXPECTATIONS\n' - -EXPECTATION_FILE = os.path.join(gpu_path_util.GPU_EXPECTATIONS_DIR, - 'webgpu_cts_expectations.txt') -QUERIES_FILE = os.path.join(gpu_path_util.GPU_EXPECTATIONS_DIR, - 'webgpu_cts_expectation_queries.js') -GENERATOR_SCRIPT = os.path.join(gpu_path_util.CHROMIUM_SRC_DIR, 'third_party', - 'webgpu-cts', 'scripts', - 'generate_telemetry_expectations.py') -TYPESCRIPT_DIR = os.path.join(gpu_path_util.GPU_DIR, '.webgpu_typescript') - - -def GenerateExpectationsFromJavaScript(): - p = subprocess.run([ - sys.executable, GENERATOR_SCRIPT, QUERIES_FILE, '--js-out-dir', - TYPESCRIPT_DIR - ], - stdout=subprocess.PIPE, - check=True) - return p.stdout.decode('utf-8') - - -def Generate(): - with open(EXPECTATION_FILE) as infile: - contents = infile.read() - - output_contents = '' - for line in contents.splitlines(True): - output_contents += line - if BEGIN_TAG in line: - break - - output_contents += GenerateExpectationsFromJavaScript() - with open(EXPECTATION_FILE, 'w') as outfile: - outfile.write(output_contents) - return 0 - - -def Validate(): - expected_contents = GenerateExpectationsFromJavaScript() - with open(EXPECTATION_FILE) as infile: - actual_contents = infile.read() - start_index = actual_contents.find(BEGIN_TAG) - if start_index < 0: - raise RuntimeError('WebGPU CTS expectation file is malformed.') - start_index = start_index + len(BEGIN_TAG) - actual_contents = actual_contents[start_index:] - if actual_contents == expected_contents: - return 0 - - actual_set = set(list(actual_contents.splitlines())) - expected_set = set(list(expected_contents.splitlines())) - in_actual = [] - in_expected = [] - for line in actual_contents.splitlines(): - if line not in expected_set: - in_actual.append(line) - for line in expected_contents.splitlines(): - if line not in actual_set: - in_expected.append(line) - - print( - 'Actual and expected WebGPU expectation content is out of sync. Please ' - 'make any necessary changes to //content/test/gpu/gpu_tests/' - 'test_expectations/webgpu_expectation_queries.js and regenerate using ' - '`//content/test/gpu/process_generated_webgpu_expectations.py generate`.') - if in_actual: - print('Lines in actual file that are missing from generated content:') - for line in in_actual: - print(line) - print('') - if in_expected: - print('Lines in generated content that are missing from actual file:') - for line in in_expected: - print(line) - return 1 - - -def main(): - parser = argparse.ArgumentParser( - description=('Validate that WebGPU generated expectations are in sync ' - 'with the generator JavaScript or generate new ones.')) - parser.add_argument('function', - choices=['generate', 'validate'], - help='What the script should do.') - args = parser.parse_args() - if args.function == 'generate': - return Generate() - return Validate() - - -if __name__ == '__main__': - sys.exit(main())
diff --git a/content/test/gpu/validate_tag_consistency.py b/content/test/gpu/validate_tag_consistency.py index ebf09d51..191101d4 100755 --- a/content/test/gpu/validate_tag_consistency.py +++ b/content/test/gpu/validate_tag_consistency.py
@@ -67,9 +67,7 @@ # tags: [ display-server-wayland display-server-x ] # OOP-Canvas # tags: [ oop-c no-oop-c ] -# WebGPU Backend Validation -# tags: [ dawn-backend-validation dawn-no-backend-validation ] -# results: [ Failure RetryOnFailure Skip Slow ] +# results: [ Failure RetryOnFailure Skip ] """ TAG_HEADER_BEGIN =\
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 index 29a9db31..f632b17b 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -55b7a9a71bf8f187157df0b7a272b7dda9a96b42 \ No newline at end of file +ddcfc6657cb8001b4130fb8f5270ed793bb751ae \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 index bab1626..0a2bb58f 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -0ccf910c1408739601b9b8ebcf88708c8e2845ab \ No newline at end of file +4241e68630cc4255520c7148f5be7f7ddb9ef159 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 index c7e1881..cd23f1b 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -bd20dbb691ca32cc9a8665b243176ddd6e5e8f5f \ No newline at end of file +8207b8f7cffb849872e6e3470b57004b143ef440 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 index 817ded6..4de9d65 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -d9e010b4cf243b3b67ab80a01cdcab77892eb28f \ No newline at end of file +5a5021ded03a64b49aa9eda2acc5de47f53d03d2 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 index eb4e700..61952ef 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -781211dfe9384dfc9e4ecf77884d08bf1912f9ef \ No newline at end of file +1ae34c674fac388c124c5e821726e522abab82b5 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 index 55fbc0e..aeb8802 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -8894e6c3640ec4b8f543ed7160e5d44cafbcb821 \ No newline at end of file +52a6e751cbfc4f38bdd5a0edebe852d98cc4ec28 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 index b1a8aca..1bc3cdd 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -c953e8608fa37ab5cb5e6aaf2cd17aa8333f5899 \ No newline at end of file +d1dc2993ee340024dd690461306c6c3cf2c5044d \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 index 4d208c7a..743e6221 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -d3c82e6ef46f489b5263f9a948bc986498d7faa7 \ No newline at end of file +a697df9bf651c0c26b0c25d573a8ad7e8a5db65d \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 index 4716bddd..f45ebac 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -5e3eb4265d5ba4b5faf58086f3081289f4fb42f5 \ No newline at end of file +32c6e9017cd9b1b0d2b371d9ed7c04de5da156d8 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 index 49eacf3a..9bbe5d4 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -51203a819d4677a5669e9818c1b7658ea6ab8e7e \ No newline at end of file +e5508a5bc1d3243f7149983606cbedb407777b60 \ No newline at end of file
diff --git a/media/cast/sender/external_video_encoder.cc b/media/cast/sender/external_video_encoder.cc index 46d94c7..a04f1003 100644 --- a/media/cast/sender/external_video_encoder.cc +++ b/media/cast/sender/external_video_encoder.cc
@@ -22,7 +22,6 @@ #include "media/base/bind_to_current_loop.h" #include "media/base/bitrate.h" #include "media/base/media_switches.h" -#include "media/base/media_util.h" #include "media/base/video_frame.h" #include "media/base/video_types.h" #include "media/base/video_util.h" @@ -141,8 +140,7 @@ base::saturated_cast<uint32_t>(start_bit_rate)); const media::VideoEncodeAccelerator::Config config( media::PIXEL_FORMAT_I420, frame_size, codec_profile, bitrate); - encoder_active_ = video_encode_accelerator_->Initialize( - config, this, std::make_unique<media::NullMediaLog>()); + encoder_active_ = video_encode_accelerator_->Initialize(config, this); next_frame_id_ = first_frame_id; codec_profile_ = codec_profile;
diff --git a/media/gpu/android/android_video_encode_accelerator.cc b/media/gpu/android/android_video_encode_accelerator.cc index f566c2b7..c50d27b 100644 --- a/media/gpu/android/android_video_encode_accelerator.cc +++ b/media/gpu/android/android_video_encode_accelerator.cc
@@ -20,6 +20,7 @@ #include "media/base/bitstream_buffer.h" #include "media/base/limits.h" #include "media/base/media_log.h" +#include "media/base/media_util.h" #include "media/base/unaligned_shared_memory.h" #include "media/video/picture.h" #include "third_party/libyuv/include/libyuv/convert_from.h" @@ -150,6 +151,10 @@ client_ptr_factory_ = std::make_unique<base::WeakPtrFactory<Client>>(client); + // NullMediaLog silently and safely does nothing. + if (!media_log) + media_log = std::make_unique<media::NullMediaLog>(); + if (config.input_format != PIXEL_FORMAT_I420) { MEDIA_LOG(ERROR, media_log.get()) << "Unexpected combo: " << config.input_format << ", "
diff --git a/media/gpu/gpu_video_encode_accelerator_factory.cc b/media/gpu/gpu_video_encode_accelerator_factory.cc index 4318d5d..094645d5 100644 --- a/media/gpu/gpu_video_encode_accelerator_factory.cc +++ b/media/gpu/gpu_video_encode_accelerator_factory.cc
@@ -13,6 +13,7 @@ #include "gpu/config/gpu_preferences.h" #include "media/base/media_log.h" #include "media/base/media_switches.h" +#include "media/base/media_util.h" #include "media/gpu/buildflags.h" #include "media/gpu/gpu_video_accelerator_util.h" #include "media/gpu/macros.h" @@ -150,6 +151,10 @@ const gpu::GpuPreferences& gpu_preferences, const gpu::GpuDriverBugWorkarounds& gpu_workarounds, std::unique_ptr<MediaLog> media_log) { + // NullMediaLog silently and safely does nothing. + if (!media_log) + media_log = std::make_unique<media::NullMediaLog>(); + for (const auto& create_vea : GetVEAFactoryFunctions(gpu_preferences, gpu_workarounds)) { std::unique_ptr<VideoEncodeAccelerator> vea = create_vea.Run();
diff --git a/media/gpu/mac/vt_video_encode_accelerator_mac.cc b/media/gpu/mac/vt_video_encode_accelerator_mac.cc index 805b75fc..277fa208 100644 --- a/media/gpu/mac/vt_video_encode_accelerator_mac.cc +++ b/media/gpu/mac/vt_video_encode_accelerator_mac.cc
@@ -16,6 +16,7 @@ #include "media/base/bitrate.h" #include "media/base/mac/video_frame_mac.h" #include "media/base/media_log.h" +#include "media/base/media_util.h" // This is a min version of macOS where we want to support SVC encoding via // EnableLowLatencyRateControl flag. The flag is actually supported since 11.3, @@ -163,6 +164,10 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(client_sequence_checker_); DCHECK(client); + // NullMediaLog silently and safely does nothing. + if (!media_log) + media_log = std::make_unique<media::NullMediaLog>(); + // Clients are expected to call Flush() before reinitializing the encoder. DCHECK_EQ(pending_encodes_, 0);
diff --git a/media/gpu/test/video_encoder/video_encoder_client.cc b/media/gpu/test/video_encoder/video_encoder_client.cc index 74badcea..6d9bb34 100644 --- a/media/gpu/test/video_encoder/video_encoder_client.cc +++ b/media/gpu/test/video_encoder/video_encoder_client.cc
@@ -17,7 +17,6 @@ #include "gpu/ipc/service/gpu_memory_buffer_factory.h" #include "media/base/bind_to_current_loop.h" #include "media/base/bitrate.h" -#include "media/base/media_log.h" #include "media/gpu/gpu_video_encode_accelerator_factory.h" #include "media/gpu/macros.h" #include "media/gpu/test/bitstream_helpers.h"
diff --git a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc index f36abe9..0edf564 100644 --- a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc +++ b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
@@ -31,6 +31,7 @@ #include "media/base/bitstream_buffer.h" #include "media/base/color_plane_layout.h" #include "media/base/media_log.h" +#include "media/base/media_util.h" #include "media/base/scopedfd_helper.h" #include "media/base/unaligned_shared_memory.h" #include "media/base/video_frame_layout.h" @@ -205,6 +206,10 @@ TRACE_EVENT0("media,gpu", "V4L2VEA::Initialize"); VLOGF(2) << ": " << config.AsHumanReadableString(); + // NullMediaLog silently and safely does nothing. + if (!media_log) + media_log = std::make_unique<media::NullMediaLog>(); + // V4L2VEA doesn't support temporal layers but we let it pass here to support // simulcast. if (config.HasSpatialLayer()) {
diff --git a/media/gpu/vaapi/vaapi_video_encode_accelerator.cc b/media/gpu/vaapi/vaapi_video_encode_accelerator.cc index 579f514e..39b026a 100644 --- a/media/gpu/vaapi/vaapi_video_encode_accelerator.cc +++ b/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
@@ -35,6 +35,7 @@ #include "media/base/format_utils.h" #include "media/base/media_log.h" #include "media/base/media_switches.h" +#include "media/base/media_util.h" #include "media/base/unaligned_shared_memory.h" #include "media/base/video_bitrate_allocation.h" #include "media/gpu/chromeos/platform_video_frame_utils.h" @@ -181,11 +182,16 @@ bool VaapiVideoEncodeAccelerator::Initialize( const Config& config, Client* client, + std::unique_ptr<MediaLog> media_log) { DCHECK_CALLED_ON_VALID_SEQUENCE(child_sequence_checker_); DCHECK_EQ(state_, kUninitialized); VLOGF(2) << "Initializing VAVEA, " << config.AsHumanReadableString(); + // NullMediaLog silently and safely does nothing. + if (!media_log) + media_log = std::make_unique<media::NullMediaLog>(); + if (AttemptedInitialization()) { MEDIA_LOG(ERROR, media_log.get()) << "Initialize() cannot be called more than once.";
diff --git a/media/gpu/vaapi/vaapi_video_encode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_encode_accelerator_unittest.cc index b4b78925..389c129 100644 --- a/media/gpu/vaapi/vaapi_video_encode_accelerator_unittest.cc +++ b/media/gpu/vaapi/vaapi_video_encode_accelerator_unittest.cc
@@ -12,7 +12,6 @@ #include "base/run_loop.h" #include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" -#include "media/base/media_util.h" #include "media/gpu/gpu_video_encode_accelerator_helpers.h" #include "media/gpu/vaapi/vaapi_utils.h" #include "media/gpu/vaapi/vaapi_wrapper.h" @@ -300,8 +299,7 @@ vaapi_encoder->supported_profiles_for_testing_.push_back(profile); if (config.input_visible_size.IsEmpty()) return false; - return encoder_->Initialize(config, &client_, - std::make_unique<media::NullMediaLog>()); + return encoder_->Initialize(config, &client_); } void InitializeSequenceForVP9(const VideoEncodeAccelerator::Config& config)
diff --git a/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc b/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc index 1278a9ea..7d330be 100644 --- a/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc +++ b/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc
@@ -31,6 +31,7 @@ #include "gpu/ipc/common/dxgi_helpers.h" #include "media/base/media_log.h" #include "media/base/media_switches.h" +#include "media/base/media_util.h" #include "media/base/win/mf_helpers.h" #include "media/base/win/mf_initializer.h" #include "media/gpu/gpu_video_encode_accelerator_helpers.h" @@ -331,6 +332,10 @@ DVLOG(3) << __func__ << ": " << config.AsHumanReadableString(); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + // NullMediaLog silently and safely does nothing. + if (!media_log) + media_log = std::make_unique<media::NullMediaLog>(); + if (PIXEL_FORMAT_I420 != config.input_format && PIXEL_FORMAT_NV12 != config.input_format) { MEDIA_LOG(ERROR, media_log.get())
diff --git a/media/mojo/clients/mojo_video_encode_accelerator.cc b/media/mojo/clients/mojo_video_encode_accelerator.cc index f2412a44..504657d 100644 --- a/media/mojo/clients/mojo_video_encode_accelerator.cc +++ b/media/mojo/clients/mojo_video_encode_accelerator.cc
@@ -12,6 +12,7 @@ #include "build/build_config.h" #include "gpu/ipc/client/gpu_channel_host.h" #include "media/base/media_log.h" +#include "media/base/media_util.h" #include "media/base/video_frame.h" #include "media/gpu/gpu_video_accelerator_util.h" #include "media/mojo/clients/mojo_media_log_service.h" @@ -138,6 +139,10 @@ base::BindOnce(&MojoVideoEncodeAccelerator::MojoDisconnectionHandler, base::Unretained(this))); + // NullMediaLog silently and safely does nothing. + if (!media_log) + media_log = std::make_unique<media::NullMediaLog>(); + // Use `mojo::MakeSelfOwnedReceiver` for MediaLog so logs may go through even // after `MojoVideoEncodeAccelerator` is destructed. mojo::PendingReceiver<mojom::MediaLog> media_log_pending_receiver;
diff --git a/media/mojo/clients/mojo_video_encode_accelerator_unittest.cc b/media/mojo/clients/mojo_video_encode_accelerator_unittest.cc index f0bd55dc..db0677f 100644 --- a/media/mojo/clients/mojo_video_encode_accelerator_unittest.cc +++ b/media/mojo/clients/mojo_video_encode_accelerator_unittest.cc
@@ -10,7 +10,6 @@ #include "base/run_loop.h" #include "base/test/task_environment.h" #include "gpu/config/gpu_info.h" -#include "media/base/media_util.h" #include "media/mojo/clients/mojo_video_encode_accelerator.h" #include "media/mojo/mojom/video_encode_accelerator.mojom.h" #include "media/video/video_encode_accelerator.h" @@ -206,8 +205,7 @@ PIXEL_FORMAT_I420, kInputVisibleSize, kOutputProfile, kInitialBitrate, absl::nullopt, absl::nullopt, absl::nullopt, false, absl::nullopt, kContentType); - EXPECT_TRUE(mojo_vea()->Initialize( - config, mock_vea_client, std::make_unique<media::NullMediaLog>())); + EXPECT_TRUE(mojo_vea()->Initialize(config, mock_vea_client)); base::RunLoop().RunUntilIdle(); } @@ -335,8 +333,7 @@ const VideoEncodeAccelerator::Config config( PIXEL_FORMAT_I420, kInputVisibleSize, VIDEO_CODEC_PROFILE_UNKNOWN, kInitialBitrate); - EXPECT_FALSE(mojo_vea()->Initialize(config, mock_vea_client.get(), - std::make_unique<media::NullMediaLog>())); + EXPECT_FALSE(mojo_vea()->Initialize(config, mock_vea_client.get())); base::RunLoop().RunUntilIdle(); } @@ -349,8 +346,7 @@ const VideoEncodeAccelerator::Config config( PIXEL_FORMAT_I420, kInputVisibleSize, VIDEO_CODEC_PROFILE_UNKNOWN, kInitialBitrate); - EXPECT_TRUE(mojo_vea()->Initialize(config, mock_vea_client.get(), - std::make_unique<media::NullMediaLog>())); + EXPECT_TRUE(mojo_vea()->Initialize(config, mock_vea_client.get())); mojo_vea_receiver_->Close(); EXPECT_CALL( *mock_vea_client,
diff --git a/media/mojo/test/mojo_video_encode_accelerator_integration_test.cc b/media/mojo/test/mojo_video_encode_accelerator_integration_test.cc index b928439a..6cc4f2b 100644 --- a/media/mojo/test/mojo_video_encode_accelerator_integration_test.cc +++ b/media/mojo/test/mojo_video_encode_accelerator_integration_test.cc
@@ -14,7 +14,6 @@ #include "gpu/config/gpu_driver_bug_workarounds.h" #include "gpu/config/gpu_preferences.h" #include "media/base/limits.h" -#include "media/base/media_util.h" #include "media/mojo/clients/mojo_video_encode_accelerator.h" #include "media/mojo/mojom/video_encode_accelerator.mojom.h" #include "media/mojo/services/mojo_video_encode_accelerator_service.h" @@ -118,8 +117,7 @@ const VideoEncodeAccelerator::Config config( PIXEL_FORMAT_I420, kInputVisibleSize, kValidOutputProfile, kInitialBitrate); - EXPECT_TRUE(mojo_vea()->Initialize( - config, mock_vea_client, std::make_unique<media::NullMediaLog>())); + EXPECT_TRUE(mojo_vea()->Initialize(config, mock_vea_client)); base::RunLoop().RunUntilIdle(); } @@ -152,8 +150,7 @@ const VideoEncodeAccelerator::Config config( PIXEL_FORMAT_I420, kInputVisibleSize, kValidOutputProfile, kInitialBitrate); - EXPECT_FALSE(mojo_vea()->Initialize(config, invalid_client, - std::make_unique<media::NullMediaLog>())); + EXPECT_FALSE(mojo_vea()->Initialize(config, invalid_client)); base::RunLoop().RunUntilIdle(); } @@ -168,8 +165,7 @@ const VideoEncodeAccelerator::Config config( PIXEL_FORMAT_I420, kInvalidInputVisibleSize, kValidOutputProfile, kInitialBitrate); - EXPECT_FALSE(mojo_vea()->Initialize(config, mock_vea_client.get(), - std::make_unique<media::NullMediaLog>())); + EXPECT_FALSE(mojo_vea()->Initialize(config, mock_vea_client.get())); base::RunLoop().RunUntilIdle(); } // This test verifies that Initialize() fails when called with an invalid codec @@ -184,8 +180,7 @@ const VideoEncodeAccelerator::Config config( PIXEL_FORMAT_I420, kInputVisibleSize, kInvalidOutputProfile, kInitialBitrate); - EXPECT_FALSE(mojo_vea()->Initialize(config, mock_vea_client.get(), - std::make_unique<media::NullMediaLog>())); + EXPECT_FALSE(mojo_vea()->Initialize(config, mock_vea_client.get())); base::RunLoop().RunUntilIdle(); }
diff --git a/media/video/fake_video_encode_accelerator.cc b/media/video/fake_video_encode_accelerator.cc index 5c9bf9d..1c3c9dc 100644 --- a/media/video/fake_video_encode_accelerator.cc +++ b/media/video/fake_video_encode_accelerator.cc
@@ -9,7 +9,6 @@ #include "base/location.h" #include "base/logging.h" #include "base/task/sequenced_task_runner.h" -#include "media/base/media_log.h" namespace media {
diff --git a/media/video/mock_video_encode_accelerator.cc b/media/video/mock_video_encode_accelerator.cc index 909b5d4e..8470833 100644 --- a/media/video/mock_video_encode_accelerator.cc +++ b/media/video/mock_video_encode_accelerator.cc
@@ -4,8 +4,6 @@ #include "media/video/mock_video_encode_accelerator.h" -#include "media/base/media_log.h" - namespace media { using ::testing::Invoke;
diff --git a/media/video/video_encode_accelerator.h b/media/video/video_encode_accelerator.h index 90bb3e7..e98bbe63 100644 --- a/media/video/video_encode_accelerator.h +++ b/media/video/video_encode_accelerator.h
@@ -18,6 +18,7 @@ #include "media/base/bitrate.h" #include "media/base/bitstream_buffer.h" #include "media/base/media_export.h" +#include "media/base/media_log.h" #include "media/base/svc_scalability_mode.h" #include "media/base/video_bitrate_allocation.h" #include "media/base/video_codecs.h" @@ -369,7 +370,7 @@ // TODO(sheu): handle resolution changes. http://crbug.com/249944 virtual bool Initialize(const Config& config, Client* client, - std::unique_ptr<MediaLog> media_log) = 0; + std::unique_ptr<MediaLog> media_log = nullptr) = 0; // Encodes the given frame. // The storage type of |frame| must be the |storage_type| if it is specified
diff --git a/media/video/video_encode_accelerator_adapter.cc b/media/video/video_encode_accelerator_adapter.cc index 4444e9a..f9af700 100644 --- a/media/video/video_encode_accelerator_adapter.cc +++ b/media/video/video_encode_accelerator_adapter.cc
@@ -122,7 +122,7 @@ : output_pool_(base::MakeRefCounted<base::UnsafeSharedMemoryPool>()), input_pool_(base::MakeRefCounted<base::UnsafeSharedMemoryPool>()), gpu_factories_(gpu_factories), - media_log_(std::move(media_log)), + media_log_(media_log->Clone()), accelerator_task_runner_(gpu_factories_->GetTaskRunner()), callback_task_runner_(std::move(callback_task_runner)) { DETACH_FROM_SEQUENCE(accelerator_sequence_checker_);
diff --git a/remoting/codec/webrtc_video_encoder_gpu.cc b/remoting/codec/webrtc_video_encoder_gpu.cc index 3e4b35a..8973a95 100644 --- a/remoting/codec/webrtc_video_encoder_gpu.cc +++ b/remoting/codec/webrtc_video_encoder_gpu.cc
@@ -24,7 +24,6 @@ #include "build/build_config.h" #include "gpu/config/gpu_driver_bug_workarounds.h" #include "gpu/config/gpu_preferences.h" -#include "media/base/media_log.h" #include "media/base/video_frame.h" #include "media/gpu/gpu_video_encode_accelerator_factory.h" #include "media/video/video_encode_accelerator.h"
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json index 4f58d1e..758d74c 100644 --- a/testing/buildbot/chromium.android.fyi.json +++ b/testing/buildbot/chromium.android.fyi.json
@@ -9654,7 +9654,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.51" + "revision": "version:100.0.4896.52" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -9738,7 +9738,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.4" + "revision": "version:101.0.4951.5" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -10158,7 +10158,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.51" + "revision": "version:100.0.4896.52" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -10242,7 +10242,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.4" + "revision": "version:101.0.4951.5" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json index a3730d8..ab09094e 100644 --- a/testing/buildbot/chromium.android.json +++ b/testing/buildbot/chromium.android.json
@@ -44881,7 +44881,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.51" + "revision": "version:100.0.4896.52" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -44965,7 +44965,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.4" + "revision": "version:101.0.4951.5" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -45385,7 +45385,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.51" + "revision": "version:100.0.4896.52" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -45469,7 +45469,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.4" + "revision": "version:101.0.4951.5" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -45893,7 +45893,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.51" + "revision": "version:100.0.4896.52" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -45977,7 +45977,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.4" + "revision": "version:101.0.4951.5" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46397,7 +46397,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.51" + "revision": "version:100.0.4896.52" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46481,7 +46481,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.4" + "revision": "version:101.0.4951.5" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46972,7 +46972,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.51" + "revision": "version:100.0.4896.52" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47056,7 +47056,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.4" + "revision": "version:101.0.4951.5" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47476,7 +47476,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.51" + "revision": "version:100.0.4896.52" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47560,7 +47560,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.4" + "revision": "version:101.0.4951.5" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48051,7 +48051,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.51" + "revision": "version:100.0.4896.52" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48135,7 +48135,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.4" + "revision": "version:101.0.4951.5" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48555,7 +48555,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.51" + "revision": "version:100.0.4896.52" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48639,7 +48639,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.4" + "revision": "version:101.0.4951.5" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.dawn.json b/testing/buildbot/chromium.dawn.json index e65ba38f..2656e006 100644 --- a/testing/buildbot/chromium.dawn.json +++ b/testing/buildbot/chromium.dawn.json
@@ -266,80 +266,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-19.0.2", - "os": "Ubuntu-19.04", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-19.0.2", - "os": "Ubuntu-19.04", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -606,80 +532,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-440.100", - "os": "Ubuntu-18.04.5|Ubuntu-18.04.6", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-440.100", - "os": "Ubuntu-18.04.5|Ubuntu-18.04.6", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -946,80 +798,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-19.0.2", - "os": "Ubuntu-19.04", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-19.0.2", - "os": "Ubuntu-19.04", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -1286,80 +1064,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-440.100", - "os": "Ubuntu-18.04.5|Ubuntu-18.04.6", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-440.100", - "os": "Ubuntu-18.04.5|Ubuntu-18.04.6", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -1647,86 +1351,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "display_attached": "1", - "gpu": "1002:6821", - "hidpi": "1", - "os": "Mac-12.1", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "display_attached": "1", - "gpu": "1002:6821", - "hidpi": "1", - "os": "Mac-12.1", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -1992,82 +1616,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "display_attached": "1", - "gpu": "8086:3e9b", - "os": "Mac-11.5.2" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "display_attached": "1", - "gpu": "8086:3e9b", - "os": "Mac-11.5.2" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -2362,88 +1910,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "display_attached": "1", - "gpu": "1002:6821", - "hidpi": "1", - "os": "Mac-12.1", - "pool": "chromium.tests.gpu" - } - ], - "expiration": 21600, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "display_attached": "1", - "gpu": "1002:6821", - "hidpi": "1", - "os": "Mac-12.1", - "pool": "chromium.tests.gpu" - } - ], - "expiration": 21600, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -2765,86 +2231,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "display_attached": "1", - "gpu": "1002:6821", - "hidpi": "1", - "os": "Mac-12.1", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "display_attached": "1", - "gpu": "1002:6821", - "hidpi": "1", - "os": "Mac-12.1", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -3110,82 +2496,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "display_attached": "1", - "gpu": "8086:3e9b", - "os": "Mac-11.5.2" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "cpu": "x86-64", - "display_attached": "1", - "gpu": "8086:3e9b", - "os": "Mac-11.5.2" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -3416,47 +2726,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - { - "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", - "os": "Windows-10", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -3717,80 +2986,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", - "os": "Windows-10", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", - "os": "Windows-10", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -4049,80 +3244,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -4381,80 +3502,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", - "os": "Windows-10", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", - "os": "Windows-10", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -4713,80 +3760,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -5045,80 +4018,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", - "os": "Windows-10", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", - "os": "Windows-10", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -5375,80 +4274,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -5705,80 +4530,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", - "os": "Windows-10", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", - "os": "Windows-10", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -6035,80 +4786,6 @@ "shards": 4 }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgpu_cts", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", - "--is-backend-validation", - "--override-timeout=30" - ], - "experiment_percentage": 100, - "isolate_name": "telemetry_gpu_integration_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgpu_cts_with_validation_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - } - ], - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index e4b0415..efb2778 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -2721,72 +2721,6 @@ }, }, - 'gpu_dawn_telemetry_cts_tests': { - 'webgpu_cts': { - 'args': [ - '--extra-browser-args=--force_high_performance_gpu', - ], - 'linux_args': [ - '--extra-browser-args=--enable-features=UseSkiaRenderer,Vulkan', - ], - 'mixins': [ - 'has_native_resultdb_integration', - ], - 'swarming': { - 'shards': 4, - }, - # TODO(crbug.com/1297379): Remove this once we actually start running - # tests instead of skipping all of them. - 'experiment_percentage': 100, - }, - }, - - 'gpu_dawn_telemetry_cts_tests_with_partial_validation': { - 'webgpu_cts_with_validation': { - 'args': [ - '--extra-browser-args=--force_high_performance_gpu', - '--is-backend-validation', - '--override-timeout=30', - ], - 'linux_args': [ - '--extra-browser-args=--enable-features=UseSkiaRenderer,Vulkan', - ], - 'mixins': [ - 'has_native_resultdb_integration', - ], - 'swarming': { - 'shards': 4, - }, - 'telemetry_test_name': 'webgpu_cts', - # TODO(crbug.com/1297379): Remove this once we actually start running - # tests instead of skipping all of them. - 'experiment_percentage': 100, - }, - }, - - 'gpu_dawn_telemetry_cts_tests_with_validation': { - 'webgpu_cts_with_validation': { - 'args': [ - '--extra-browser-args=--force_high_performance_gpu', - '--is-backend-validation', - '--override-timeout=30', - ], - 'linux_args': [ - '--extra-browser-args=--enable-features=UseSkiaRenderer,Vulkan', - ], - 'mixins': [ - 'has_native_resultdb_integration', - ], - 'swarming': { - 'shards': 4, - }, - 'telemetry_test_name': 'webgpu_cts', - # TODO(crbug.com/1297379): Remove this once we actually start running - # tests instead of skipping all of them. - 'experiment_percentage': 100, - }, - }, - 'gpu_default_and_optional_win_specific_gtests': { 'xr_browser_tests': { # The Windows machines this is run on should always meet all the @@ -6268,16 +6202,6 @@ 'gpu_webgpu_integration_partial_backend_validation_isolated_scripts', ], - 'gpu_dawn_telemetry_cts_regular_and_partial_validation': [ - 'gpu_dawn_telemetry_cts_tests', - 'gpu_dawn_telemetry_cts_tests_with_partial_validation', - ], - - 'gpu_dawn_telemetry_cts_regular_and_validation': [ - 'gpu_dawn_telemetry_cts_tests', - 'gpu_dawn_telemetry_cts_tests_with_validation', - ], - 'gpu_desktop_mac_gtests': [ 'gpu_angle_unit_gtests', 'gpu_common_gtests_passthrough',
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index 65fb8b4..b4fe4e6 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -459,7 +459,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M101', - 'revision': 'version:101.0.4951.4', + 'revision': 'version:101.0.4951.5', } ], }, @@ -483,7 +483,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M100', - 'revision': 'version:100.0.4896.51', + 'revision': 'version:100.0.4896.52', } ], }, @@ -603,7 +603,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M101', - 'revision': 'version:101.0.4951.4', + 'revision': 'version:101.0.4951.5', } ], }, @@ -627,7 +627,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M100', - 'revision': 'version:100.0.4896.51', + 'revision': 'version:100.0.4896.52', } ], }, @@ -747,7 +747,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M101', - 'revision': 'version:101.0.4951.4', + 'revision': 'version:101.0.4951.5', } ], }, @@ -771,7 +771,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M100', - 'revision': 'version:100.0.4896.51', + 'revision': 'version:100.0.4896.52', } ], },
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl index af12c4af..93526d0 100644 --- a/testing/buildbot/waterfalls.pyl +++ b/testing/buildbot/waterfalls.pyl
@@ -2212,7 +2212,6 @@ 'linux_intel_hd_630_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts', }, @@ -2224,7 +2223,6 @@ 'linux_nvidia_gtx_1660_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts', }, @@ -2236,7 +2234,6 @@ 'linux_intel_hd_630_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts', }, @@ -2248,7 +2245,6 @@ 'linux_nvidia_gtx_1660_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts', }, @@ -2262,7 +2258,6 @@ 'mac_retina_amd_gpu_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts', }, @@ -2274,7 +2269,6 @@ 'mac_mini_intel_gpu_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_validating', 'isolated_scripts': 'gpu_dawn_isolated_scripts', }, @@ -2287,7 +2281,6 @@ 'mac_retina_amd_gpu_experimental', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts', }, @@ -2313,7 +2306,6 @@ 'mac_retina_amd_gpu_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts', }, @@ -2325,7 +2317,6 @@ 'mac_mini_intel_gpu_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_validating', 'isolated_scripts': 'gpu_dawn_isolated_scripts', }, @@ -2338,7 +2329,6 @@ 'win10_intel_hd_630_stable_dimension_set', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_tests', 'gtest_tests': 'gpu_dawn_integration_asan_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_asan_isolated_scripts', }, @@ -2352,7 +2342,6 @@ 'win10_intel_hd_630_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_partial_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough_win_intel', 'isolated_scripts': 'gpu_dawn_isolated_scripts_win', }, @@ -2364,7 +2353,6 @@ 'win10_nvidia_gtx_1660_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_partial_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts_win', }, @@ -2376,7 +2364,6 @@ 'win10_intel_hd_630_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_partial_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough_win_intel', 'isolated_scripts': 'gpu_dawn_isolated_scripts_win', }, @@ -2388,7 +2375,6 @@ 'win10_nvidia_gtx_1660_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_partial_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts_win', }, @@ -2402,7 +2388,6 @@ 'win10_intel_hd_630_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_partial_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough_win_intel', 'isolated_scripts': 'gpu_dawn_isolated_scripts_win', }, @@ -2414,7 +2399,6 @@ 'win10_nvidia_gtx_1660_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_partial_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts_win', }, @@ -2426,7 +2410,6 @@ 'win10_intel_hd_630_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_partial_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough_win_intel', 'isolated_scripts': 'gpu_dawn_isolated_scripts_win', }, @@ -2438,7 +2421,6 @@ 'win10_nvidia_gtx_1660_stable', ], 'test_suites': { - 'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_partial_validation', 'gtest_tests': 'gpu_dawn_integration_gtests_passthrough', 'isolated_scripts': 'gpu_dawn_isolated_scripts_win', },
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 55aa0ce..7d101d38 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -4824,21 +4824,6 @@ ] } ], - "OnDeviceGrammarCheck": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "OnDeviceGrammarCheck" - ] - } - ] - } - ], "OneTimeGeolocationPermission": [ { "platforms": [
diff --git a/third_party/blink/public/mojom/digital_goods/digital_goods.mojom b/third_party/blink/public/mojom/digital_goods/digital_goods.mojom index 759659ab..a66e95b 100644 --- a/third_party/blink/public/mojom/digital_goods/digital_goods.mojom +++ b/third_party/blink/public/mojom/digital_goods/digital_goods.mojom
@@ -14,6 +14,7 @@ import "components/payments/mojom/payment_request_data.mojom"; import "mojo/public/mojom/base/time.mojom"; +import "url/mojom/url.mojom"; // https://github.com/WICG/digital-goods/blob/main/explainer.md @@ -23,19 +24,22 @@ GetDetails(array<string> item_ids) => (BillingResponseCode code, array<ItemDetails> item_details_list); - // Informs the associated backend that the purchase identified by - // |purchase_token| was successfully acknowledged. If |make_available_again| - // is true, indicates that the purchase is repeatable (e.g. a consumable - // item). If it is false, indicates that the purchase is one-off (e.g. a - // permanent upgrade). - Acknowledge(string purchase_token, bool make_available_again) - => (BillingResponseCode code); - // Queries the associated backend for information on all items that are - // currently owned by the user. + // currently owned by the user. May include unconfirmed purchases. ListPurchases() => (BillingResponseCode code, - array<PurchaseDetails> purchase_details_list); + array<PurchaseReference> purchase_reference_list); + + // Queries the associated backend for information on the latest purchase for + // each item type ever purchased by the user. May include expired or consumed + // purchases. + ListPurchaseHistory() + => (BillingResponseCode code, + array<PurchaseReference> purchase_reference_list); + + // Informs the associated backend that the purchase identified by + // |purchase_token| was used up. + Consume(string purchase_token) => (BillingResponseCode code); }; // Allow the renderer to request a |DigitalGoods| instance. DigitalGoods @@ -60,6 +64,13 @@ kClientAppError, }; +[Extensible, Stable] +enum ItemType { + kUnknown, + kProduct, + kSubscription, +}; + [Stable] struct ItemDetails { string item_id; @@ -72,6 +83,10 @@ string? free_trial_period; PaymentCurrencyAmount? introductory_price; string? introductory_price_period; + // Set to 0 for no introductory cycles. + [MinVersion=1] uint32 introductory_price_cycles; + [MinVersion=1] ItemType type; + [MinVersion=1] array<url.mojom.Url>? icon_urls; }; [Extensible] @@ -83,6 +98,13 @@ }; [Stable] +struct PurchaseReference { + string item_id; + string purchase_token; +}; + +// Deprecated, but still used by components/arc/mojom/digital_goods.mojom +[Stable] struct PurchaseDetails { string item_id; string purchase_token;
diff --git a/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h b/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h index e87f2dc..5bf2bba6 100644 --- a/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h +++ b/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
@@ -13,6 +13,7 @@ #include "base/compiler_specific.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" +#include "base/threading/thread_checker.h" #include "base/token.h" #include "build/build_config.h" #include "media/base/video_frame.h"
diff --git a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc index 873c708..d44bc61 100644 --- a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc +++ b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
@@ -1472,7 +1472,8 @@ // TODO(ansollan): Add support for track lists with auto and integer // repeaters. - const NGGridTrackList& ng_track_list = computed_grid_track_list.TrackList(); + const NGGridTrackList& ng_track_list = + computed_grid_track_list.track_sizes.NGTrackList(); wtf_size_t track_index = 0; auto AppendValues = [&](CSSValueList* list, const GridTrackSize& track_size, GridTrackListSerializationType named_line_type) {
diff --git a/third_party/blink/renderer/core/html/forms/html_input_element.h b/third_party/blink/renderer/core/html/forms/html_input_element.h index 67b8a63..d69d8f5 100644 --- a/third_party/blink/renderer/core/html/forms/html_input_element.h +++ b/third_party/blink/renderer/core/html/forms/html_input_element.h
@@ -33,7 +33,6 @@ #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/dom/create_element_flags.h" #include "third_party/blink/renderer/core/dom/events/simulated_click_options.h" -#include "third_party/blink/renderer/core/html/forms/file_chooser.h" #include "third_party/blink/renderer/core/html/forms/step_range.h" #include "third_party/blink/renderer/core/html/forms/text_control_element.h"
diff --git a/third_party/blink/renderer/core/layout/ng/grid/layout_ng_grid.cc b/third_party/blink/renderer/core/layout/ng/grid/layout_ng_grid.cc index 3bc5835..fe2bdd4b1 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/layout_ng_grid.cc +++ b/third_party/blink/renderer/core/layout/ng/grid/layout_ng_grid.cc
@@ -42,12 +42,14 @@ bool ExplicitGridDidResize(const ComputedStyle& new_style, const ComputedStyle& old_style) { - const auto& old_ng_columns_track_list = - old_style.GridTemplateColumns().TrackList(); - const auto& new_ng_columns_track_list = - new_style.GridTemplateColumns().TrackList(); - const auto& old_ng_rows_track_list = old_style.GridTemplateRows().TrackList(); - const auto& new_ng_rows_track_list = new_style.GridTemplateRows().TrackList(); + const NGGridTrackList& old_ng_columns_track_list = + old_style.GridTemplateColumns().track_sizes.NGTrackList(); + const NGGridTrackList& new_ng_columns_track_list = + new_style.GridTemplateColumns().track_sizes.NGTrackList(); + const NGGridTrackList& old_ng_rows_track_list = + old_style.GridTemplateRows().track_sizes.NGTrackList(); + const NGGridTrackList& new_ng_rows_track_list = + new_style.GridTemplateRows().track_sizes.NGTrackList(); return old_ng_columns_track_list.TrackCountWithoutAutoRepeat() != new_ng_columns_track_list.TrackCountWithoutAutoRepeat() || @@ -83,15 +85,15 @@ if (!old_style) return; - const auto& new_style = StyleRef(); - const auto& new_grid_columns_track_list = - new_style.GridTemplateColumns().TrackList(); - const auto& new_grid_rows_track_list = - new_style.GridTemplateRows().TrackList(); + const ComputedStyle& new_style = StyleRef(); + const GridTrackList& new_grid_columns_track_sizes = + new_style.GridTemplateColumns().track_sizes; + const GridTrackList& new_grid_rows_track_sizes = + new_style.GridTemplateRows().track_sizes; - if (new_grid_columns_track_list != - old_style->GridTemplateColumns().TrackList() || - new_grid_rows_track_list != old_style->GridTemplateRows().TrackList() || + if (new_grid_columns_track_sizes != + old_style->GridTemplateColumns().track_sizes || + new_grid_rows_track_sizes != old_style->GridTemplateRows().track_sizes || new_style.GridAutoColumns() != old_style->GridAutoColumns() || new_style.GridAutoRows() != old_style->GridAutoRows() || new_style.GetGridAutoFlow() != old_style->GetGridAutoFlow()) { @@ -101,8 +103,8 @@ if (ExplicitGridDidResize(new_style, *old_style) || NamedGridLinesDefinitionDidChange(new_style, *old_style) || (diff.NeedsLayout() && - (new_grid_columns_track_list.AutoRepeatTrackCount() || - new_grid_rows_track_list.AutoRepeatTrackCount()))) { + (new_grid_columns_track_sizes.NGTrackList().AutoRepeatTrackCount() || + new_grid_rows_track_sizes.NGTrackList().AutoRepeatTrackCount()))) { SetGridPlacementDirty(true); } } @@ -143,10 +145,15 @@ return 0; const bool is_for_columns = track_direction == kForColumns; - const wtf_size_t auto_repeat_size = - is_for_columns - ? StyleRef().GridTemplateColumns().TrackList().AutoRepeatTrackCount() - : StyleRef().GridTemplateRows().TrackList().AutoRepeatTrackCount(); + const wtf_size_t auto_repeat_size = is_for_columns + ? StyleRef() + .GridTemplateColumns() + .track_sizes.NGTrackList() + .AutoRepeatTrackCount() + : StyleRef() + .GridTemplateRows() + .track_sizes.NGTrackList() + .AutoRepeatTrackCount(); return auto_repeat_size * (is_for_columns ? cached_placement_data_->column_auto_repetitions
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_data.h b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_data.h index 61f5ef3..583ab87 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_data.h +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_data.h
@@ -60,10 +60,8 @@ } void CopyFrom(const NGGridLayoutData& other) { - if (other.columns) - columns = std::make_unique<NGGridLayoutTrackCollection>(*other.Columns()); - if (other.rows) - rows = std::make_unique<NGGridLayoutTrackCollection>(*other.Rows()); + columns = std::make_unique<NGGridLayoutTrackCollection>(*other.Columns()); + rows = std::make_unique<NGGridLayoutTrackCollection>(*other.Rows()); } NGGridLayoutTrackCollection* Columns() const {
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_item.h b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_item.h index 2f4bc4e..1ba31d6a 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_item.h +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_item.h
@@ -94,15 +94,6 @@ return resolved_position.SpanSize(track_direction); } - bool HasSubgriddedAxis(const GridTrackSizingDirection track_direction) const { - if (node.IsGrid()) { - return (track_direction == kForColumns) - ? node.Style().GridTemplateColumns().IsSubgriddedAxis() - : node.Style().GridTemplateRows().IsSubgriddedAxis(); - } - return false; - } - bool IsGridContainingBlock() const { return node.IsContainingBlockNGGrid(); } bool IsOutOfFlow() const { return node.IsOutOfFlowPositioned(); } @@ -163,8 +154,8 @@ NGAutoBehavior inline_auto_behavior; NGAutoBehavior block_auto_behavior; - BaselineType column_baseline_type; BaselineType row_baseline_type; + BaselineType column_baseline_type; TrackSpanProperties column_span_properties; TrackSpanProperties row_span_properties;
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 66b7711..4559c0f2 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
@@ -153,7 +153,7 @@ Vector<GridItemData*, 16> grid_items_spanning_multiple_ranges; for (auto& grid_item : grid_items->item_data) { - const auto& range_indices = grid_item.RangeIndices(track_direction); + GridItemIndices range_indices = grid_item.RangeIndices(track_direction); // If a grid item spans only one range, then we can just cache the track // span properties directly. On the contrary, if a grid item spans multiple @@ -1193,8 +1193,8 @@ const GridTrackSizingDirection track_direction) const { const NGGridTrackList& track_list = (track_direction == kForColumns) - ? Style().GridTemplateColumns().TrackList() - : Style().GridTemplateRows().TrackList(); + ? Style().GridTemplateColumns().track_sizes.NGTrackList() + : Style().GridTemplateRows().track_sizes.NGTrackList(); if (!track_list.HasAutoRepeater()) return 0; @@ -1413,7 +1413,7 @@ continue; LogicalRect unused_grid_area; - const auto space = CreateConstraintSpaceForLayout(grid_item, layout_data, + const auto space = CreateConstraintSpaceForLayout(layout_data, grid_item, &unused_grid_area); // We cannot apply some of the baseline alignment rules for synthesized @@ -2737,21 +2737,17 @@ const NGConstraintSpace NGGridLayoutAlgorithm::CreateConstraintSpace( const GridItemData& grid_item, - const NGGridLayoutData& layout_data, const LogicalSize& containing_grid_area_size, NGCacheSlot cache_slot, absl::optional<LayoutUnit> opt_fixed_block_size, absl::optional<LayoutUnit> opt_fragment_relative_block_offset, bool opt_min_block_size_should_encompass_intrinsic_size) const { - const auto& container_constraint_space = ConstraintSpace(); - NGConstraintSpaceBuilder builder( - container_constraint_space, grid_item.node.Style().GetWritingDirection(), + ConstraintSpace(), grid_item.node.Style().GetWritingDirection(), /* is_new_fc */ true, /* adjust_inline_size_if_needed */ false); builder.SetCacheSlot(cache_slot); builder.SetIsPaintedAtomically(true); - if (opt_fixed_block_size) { builder.SetAvailableSize( {containing_grid_area_size.inline_size, *opt_fixed_block_size}); @@ -2759,55 +2755,27 @@ } else { builder.SetAvailableSize(containing_grid_area_size); } - builder.SetPercentageResolutionSize(containing_grid_area_size); builder.SetInlineAutoBehavior(grid_item.inline_auto_behavior); builder.SetBlockAutoBehavior(grid_item.block_auto_behavior); - const bool is_grid_item_parallel = - IsParallelWritingMode(container_constraint_space.GetWritingMode(), - grid_item.node.Style().GetWritingMode()); - - if (grid_item.HasSubgriddedAxis(kForColumns)) { - const auto& range_indices = is_grid_item_parallel - ? grid_item.column_range_indices - : grid_item.row_range_indices; - const auto* track_collection = - is_grid_item_parallel ? layout_data.Columns() : layout_data.Rows(); - - builder.SetSubgriddedColumns(std::make_unique<NGGridLayoutTrackCollection>( - track_collection->CreateSubgridCollection(range_indices.begin, - range_indices.end))); - } - - if (grid_item.HasSubgriddedAxis(kForRows)) { - const auto& range_indices = is_grid_item_parallel - ? grid_item.row_range_indices - : grid_item.column_range_indices; - const auto* track_collection = - is_grid_item_parallel ? layout_data.Rows() : layout_data.Columns(); - - builder.SetSubgriddedRows(std::make_unique<NGGridLayoutTrackCollection>( - track_collection->CreateSubgridCollection(range_indices.begin, - range_indices.end))); - } - - if (container_constraint_space.HasBlockFragmentation() && + if (ConstraintSpace().HasBlockFragmentation() && opt_fragment_relative_block_offset) { if (opt_min_block_size_should_encompass_intrinsic_size) builder.SetMinBlockSizeShouldEncompassIntrinsicSize(); - SetupSpaceBuilderForFragmentation( - container_constraint_space, grid_item.node, - *opt_fragment_relative_block_offset, &builder, /* is_new_fc */ true, + ConstraintSpace(), grid_item.node, *opt_fragment_relative_block_offset, + &builder, + /* is_new_fc */ true, container_builder_.RequiresContentBeforeBreaking()); } + return builder.ToConstraintSpace(); } const NGConstraintSpace NGGridLayoutAlgorithm::CreateConstraintSpaceForLayout( - const GridItemData& grid_item, const NGGridLayoutData& layout_data, + const GridItemData& grid_item, LogicalRect* containing_grid_area, absl::optional<LayoutUnit> opt_fragment_relative_block_offset, bool opt_min_block_size_should_encompass_intrinsic_size) const { @@ -2820,7 +2788,7 @@ &containing_grid_area->size.block_size); return CreateConstraintSpace( - grid_item, layout_data, containing_grid_area->size, NGCacheSlot::kLayout, + grid_item, containing_grid_area->size, NGCacheSlot::kLayout, /* opt_fixed_block_size */ absl::nullopt, opt_fragment_relative_block_offset, opt_min_block_size_should_encompass_intrinsic_size); @@ -2843,9 +2811,8 @@ &unused_offset.inline_offset, &containing_grid_area_size.inline_size); } - return CreateConstraintSpace(grid_item, layout_data, - containing_grid_area_size, NGCacheSlot::kMeasure, - opt_fixed_block_size); + return CreateConstraintSpace(grid_item, containing_grid_area_size, + NGCacheSlot::kMeasure, opt_fixed_block_size); } namespace { @@ -2932,7 +2899,7 @@ for (const auto& grid_item : grid_items.item_data) { LogicalRect containing_grid_area; - const auto space = CreateConstraintSpaceForLayout(grid_item, layout_data, + const auto space = CreateConstraintSpaceForLayout(layout_data, grid_item, &containing_grid_area); const auto& item_style = grid_item.node.Style(); @@ -3159,7 +3126,7 @@ .has_descendant_that_depends_on_percentage_block_size); LogicalRect grid_area; const auto space = CreateConstraintSpaceForLayout( - grid_item, *layout_data, &grid_area, fragment_relative_block_offset, + *layout_data, grid_item, &grid_area, fragment_relative_block_offset, min_block_size_should_encompass_intrinsic_size); // Make the grid area relative to this fragment.
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h index f618f907..f31babfa 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h
@@ -147,7 +147,6 @@ const NGConstraintSpace CreateConstraintSpace( const GridItemData& grid_item, - const NGGridLayoutData& layout_data, const LogicalSize& containing_grid_area_size, NGCacheSlot cache_slot, absl::optional<LayoutUnit> opt_fixed_block_size, @@ -156,8 +155,8 @@ bool opt_min_block_size_should_encompass_intrinsic_size = false) const; const NGConstraintSpace CreateConstraintSpaceForLayout( - const GridItemData& grid_item, const NGGridLayoutData& layout_data, + const GridItemData& grid_item, LogicalRect* containing_grid_area, absl::optional<LayoutUnit> opt_fragment_relative_block_offset = absl::nullopt,
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_placement.cc b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_placement.cc index 70a69564..0f0960d8a 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_placement.cc +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_placement.cc
@@ -46,12 +46,14 @@ : kForColumns), minor_direction_(grid_style.IsGridAutoFlowDirectionRow() ? kForColumns : kForRows), - column_auto_repeat_track_count_( - grid_style.GridTemplateColumns().TrackList().AutoRepeatTrackCount() * - placement_data.column_auto_repetitions), - row_auto_repeat_track_count_( - grid_style.GridTemplateRows().TrackList().AutoRepeatTrackCount() * - placement_data.row_auto_repetitions), + column_auto_repeat_track_count_(grid_style.GridTemplateColumns() + .track_sizes.NGTrackList() + .AutoRepeatTrackCount() * + placement_data.column_auto_repetitions), + row_auto_repeat_track_count_(grid_style.GridTemplateRows() + .track_sizes.NGTrackList() + .AutoRepeatTrackCount() * + placement_data.row_auto_repetitions), column_auto_repetitions_(placement_data.column_auto_repetitions), row_auto_repetitions_(placement_data.row_auto_repetitions), is_parent_grid_container_(placement_data.is_parent_grid_container),
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_track_collection.cc b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_track_collection.cc index d43e033..d56606c 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_track_collection.cc +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_track_collection.cc
@@ -70,9 +70,10 @@ ? placement_data.column_start_offset : placement_data.row_start_offset), track_indices_need_sort_(false), - explicit_tracks_((track_direction == kForColumns) - ? grid_style.GridTemplateColumns().TrackList() - : grid_style.GridTemplateRows().TrackList()), + explicit_tracks_( + (track_direction == kForColumns) + ? grid_style.GridTemplateColumns().track_sizes.NGTrackList() + : grid_style.GridTemplateRows().track_sizes.NGTrackList()), implicit_tracks_((track_direction == kForColumns) ? grid_style.GridAutoColumns().NGTrackList() : grid_style.GridAutoRows().NGTrackList()) { @@ -454,14 +455,6 @@ return properties.HasProperty(TrackSpanProperties::kIsCollapsed); } -bool NGGridLayoutTrackCollection::operator==( - const NGGridLayoutTrackCollection& other) const { - return gutter_size_ == other.gutter_size_ && ranges_ == other.ranges_ && - major_baselines_ == other.minor_baselines_ && - major_baselines_ == other.minor_baselines_ && - sets_geometry_ == other.sets_geometry_; -} - wtf_size_t NGGridLayoutTrackCollection::RangeStartLine( wtf_size_t range_index) const { DCHECK_LT(range_index, ranges_.size()); @@ -570,63 +563,6 @@ return (set_span_size - gutter_size_).ClampNegativeToZero(); } -NGGridLayoutTrackCollection -NGGridLayoutTrackCollection::CreateSubgridCollection( - wtf_size_t begin_range_index, - wtf_size_t end_range_index) const { - DCHECK_LE(begin_range_index, end_range_index); - DCHECK_LT(end_range_index, ranges_.size()); - - NGGridLayoutTrackCollection subgrid_collection(Direction()); - subgrid_collection.ranges_.ReserveInitialCapacity(end_range_index - - begin_range_index); - - const wtf_size_t start_line_offset = ranges_[begin_range_index].start_line; - const wtf_size_t begin_set_index = ranges_[begin_range_index].begin_set_index; - - for (wtf_size_t i = begin_range_index; i < end_range_index; ++i) { - Range translated_range = ranges_[i]; - translated_range.start_line -= start_line_offset; - translated_range.begin_set_index -= begin_set_index; - subgrid_collection.ranges_.emplace_back(std::move(translated_range)); - } - - const wtf_size_t end_set_index = ranges_[end_range_index].begin_set_index + - ranges_[end_range_index].set_count; - - DCHECK_LT(begin_set_index, end_set_index); - DCHECK_LT(end_set_index, sets_geometry_.size()); - - const wtf_size_t set_span_size = end_set_index - begin_set_index; - const auto first_set_offset = sets_geometry_[begin_set_index].offset; - - subgrid_collection.sets_geometry_.ReserveInitialCapacity(set_span_size + 1); - subgrid_collection.sets_geometry_.emplace_back(/* offset */ LayoutUnit(), - /* track_count */ 0); - - for (wtf_size_t i = begin_set_index + 1; i <= end_set_index; ++i) { - subgrid_collection.sets_geometry_.emplace_back( - sets_geometry_[i].offset - first_set_offset, - sets_geometry_[i].track_count); - } - - if (!major_baselines_.IsEmpty()) { - DCHECK_LE(end_set_index, major_baselines_.size()); - DCHECK_LE(end_set_index, minor_baselines_.size()); - - subgrid_collection.major_baselines_.ReserveInitialCapacity(set_span_size); - subgrid_collection.minor_baselines_.ReserveInitialCapacity(set_span_size); - - for (wtf_size_t i = begin_set_index; i < end_set_index; ++i) { - subgrid_collection.major_baselines_.emplace_back(major_baselines_[i]); - subgrid_collection.minor_baselines_.emplace_back(minor_baselines_[i]); - } - } - - subgrid_collection.gutter_size_ = gutter_size_; - return subgrid_collection; -} - NGGridSizingTrackCollection::NGGridSizingTrackCollection( const NGGridBlockTrackCollection& block_track_collection, bool is_available_size_indefinite)
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_track_collection.h b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_track_collection.h index dc4495a1..3fabc3a2 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_track_collection.h +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_track_collection.h
@@ -174,8 +174,6 @@ virtual ~NGGridLayoutTrackCollection() = default; - bool operator==(const NGGridLayoutTrackCollection& other) const; - // NGGridTrackCollectionBase overrides. wtf_size_t RangeCount() const override { return ranges_.size(); } wtf_size_t RangeStartLine(wtf_size_t range_index) const override; @@ -212,12 +210,6 @@ LayoutUnit ComputeSetSpanSize(wtf_size_t begin_set_index, wtf_size_t end_set_index) const; - // Creates a track collection containing every |Range| with index in the range - // [begin, end], including their respective |SetGeometry| and baselines. - NGGridLayoutTrackCollection CreateSubgridCollection( - wtf_size_t begin_range_index, - wtf_size_t end_range_index) const; - LayoutUnit GutterSize() const { return gutter_size_; } const Vector<Range>& Ranges() const { return ranges_; }
diff --git a/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h b/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h index c5e20ce..a423fb30 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h +++ b/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h
@@ -13,7 +13,6 @@ #include "third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h" #include "third_party/blink/renderer/core/layout/ng/geometry/ng_bfc_offset.h" #include "third_party/blink/renderer/core/layout/ng/geometry/ng_margin_strut.h" -#include "third_party/blink/renderer/core/layout/ng/grid/ng_grid_data.h" #include "third_party/blink/renderer/core/layout/ng/ng_break_appeal.h" #include "third_party/blink/renderer/core/layout/ng/ng_floats_utils.h" #include "third_party/blink/renderer/core/layout/ng/table/ng_table_constraint_space_data.h" @@ -806,8 +805,7 @@ kTableRowData, // A table-row (display: table-row). kTableSectionData, // A table-section (display: table-section). kCustomData, // A custom layout (display: layout(foo)). - kStretchData, // The target inline/block stretch sizes for MathML. - kSubgridData // A nested grid with subgridded columns/rows. + kStretchData // The target inline/block stretch sizes for MathML. }; explicit RareData(const NGBfcOffset bfc_offset) @@ -871,9 +869,6 @@ case kStretchData: new (&stretch_data_) StretchData(other.stretch_data_); break; - case kSubgridData: - new (&subgrid_data_) SubgridData(other.subgrid_data_); - break; default: NOTREACHED(); } @@ -900,9 +895,6 @@ case kStretchData: stretch_data_.~StretchData(); break; - case kSubgridData: - subgrid_data_.~SubgridData(); - break; default: NOTREACHED(); } @@ -939,8 +931,6 @@ return custom_data_.MaySkipLayout(other.custom_data_); case kStretchData: return stretch_data_.MaySkipLayout(other.stretch_data_); - case kSubgridData: - return subgrid_data_.MaySkipLayout(other.subgrid_data_); } NOTREACHED(); return false; @@ -972,8 +962,6 @@ return custom_data_.IsInitialForMaySkipLayout(); case kStretchData: return stretch_data_.IsInitialForMaySkipLayout(); - case kSubgridData: - return subgrid_data_.IsInitialForMaySkipLayout(); } NOTREACHED(); return false; @@ -1161,27 +1149,6 @@ target_stretch_block_sizes; } - const NGGridLayoutTrackCollection* SubgriddedColumns() { - return data_union_type == kSubgridData - ? subgrid_data_.layout_data.columns.get() - : nullptr; - } - - void SetSubgriddedColumns( - std::unique_ptr<NGGridLayoutTrackCollection> columns) { - EnsureSubgridData()->layout_data.columns = std::move(columns); - } - - const NGGridLayoutTrackCollection* SubgriddedRows() { - return data_union_type == kSubgridData - ? subgrid_data_.layout_data.rows.get() - : nullptr; - } - - void SetSubgriddedRows(std::unique_ptr<NGGridLayoutTrackCollection> rows) { - EnsureSubgridData()->layout_data.rows = std::move(rows); - } - LogicalSize percentage_resolution_size; LayoutUnit replaced_percentage_resolution_block_size; LayoutUnit block_start_annotation_space; @@ -1305,28 +1272,6 @@ absl::optional<MathTargetStretchBlockSizes> target_stretch_block_sizes; }; - struct SubgridData { - bool MaySkipLayout(const SubgridData& other) const { - const bool other_has_same_column_geometry = - (layout_data.columns && other.layout_data.columns) - ? *layout_data.Columns() == *other.layout_data.Columns() - : !layout_data.columns && !other.layout_data.columns; - - const bool other_has_same_row_geometry = - (layout_data.rows && other.layout_data.rows) - ? *layout_data.Rows() == *other.layout_data.Rows() - : !layout_data.rows && !other.layout_data.rows; - - return other_has_same_column_geometry && other_has_same_row_geometry; - } - - bool IsInitialForMaySkipLayout() const { - return !layout_data.columns && !layout_data.rows; - } - - NGGridLayoutData layout_data; - }; - BlockData* EnsureBlockData() { DCHECK(data_union_type == kNone || data_union_type == kBlockData); if (data_union_type != kBlockData) { @@ -1381,15 +1326,6 @@ return &stretch_data_; } - SubgridData* EnsureSubgridData() { - DCHECK(data_union_type == kNone || data_union_type == kSubgridData); - if (data_union_type != kSubgridData) { - data_union_type = kSubgridData; - new (&subgrid_data_) SubgridData(); - } - return &subgrid_data_; - } - union { BlockData block_data_; TableCellData table_cell_data_; @@ -1397,7 +1333,6 @@ TableSectionData table_section_data_; CustomData custom_data_; StretchData stretch_data_; - SubgridData subgrid_data_; }; };
diff --git a/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h b/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h index 95dab74..0896552 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h +++ b/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h
@@ -452,23 +452,6 @@ target_stretch_block_sizes); } - void SetSubgriddedColumns( - std::unique_ptr<NGGridLayoutTrackCollection> columns) { -#if DCHECK_IS_ON() - DCHECK(!is_subgridded_columns_set_); - is_subgridded_columns_set_ = true; -#endif - space_.EnsureRareData()->SetSubgriddedColumns(std::move(columns)); - } - - void SetSubgriddedRows(std::unique_ptr<NGGridLayoutTrackCollection> rows) { -#if DCHECK_IS_ON() - DCHECK(!is_subgridded_rows_set_); - is_subgridded_rows_set_ = true; -#endif - space_.EnsureRareData()->SetSubgriddedRows(std::move(rows)); - } - // Creates a new constraint space. const NGConstraintSpace ToConstraintSpace() { #if DCHECK_IS_ON() @@ -522,8 +505,6 @@ bool is_table_row_data_set_ = false; bool is_table_section_data_set_ = false; bool is_line_clamp_context_set_ = false; - bool is_subgridded_columns_set_ = false; - bool is_subgridded_rows_set_ = false; bool to_constraint_space_called_ = false; #endif
diff --git a/third_party/blink/renderer/core/loader/document_load_timing.h b/third_party/blink/renderer/core/loader/document_load_timing.h index dc384589..fd1d899 100644 --- a/third_party/blink/renderer/core/loader/document_load_timing.h +++ b/third_party/blink/renderer/core/loader/document_load_timing.h
@@ -26,6 +26,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_DOCUMENT_LOAD_TIMING_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_DOCUMENT_LOAD_TIMING_H_ +#include "base/time/time.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
diff --git a/third_party/blink/renderer/core/page/chrome_client.h b/third_party/blink/renderer/core/page/chrome_client.h index 4224d25..8209165 100644 --- a/third_party/blink/renderer/core/page/chrome_client.h +++ b/third_party/blink/renderer/core/page/chrome_client.h
@@ -37,7 +37,6 @@ #include "third_party/blink/public/common/permissions_policy/permissions_policy_features.h" #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink-forward.h" #include "third_party/blink/public/mojom/input/focus_type.mojom-blink-forward.h" -#include "third_party/blink/public/platform/blame_context.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/html/battery_savings.h" #include "third_party/blink/renderer/core/html/forms/external_date_time_chooser.h"
diff --git a/third_party/blink/renderer/core/style/computed_grid_track_list.h b/third_party/blink/renderer/core/style/computed_grid_track_list.h index 5dfa71d0..cdc67757 100644 --- a/third_party/blink/renderer/core/style/computed_grid_track_list.h +++ b/third_party/blink/renderer/core/style/computed_grid_track_list.h
@@ -28,8 +28,8 @@ ordered_named_grid_lines == other.ordered_named_grid_lines && auto_repeat_ordered_named_grid_lines == other.auto_repeat_ordered_named_grid_lines && - auto_repeat_insertion_point == other.auto_repeat_insertion_point && auto_repeat_type == other.auto_repeat_type && + auto_repeat_insertion_point == other.auto_repeat_insertion_point && axis_type == other.axis_type; } @@ -37,23 +37,16 @@ return !(*this == other); } - bool IsSubgriddedAxis() const { - return axis_type == GridAxisType::kSubgriddedAxis; - } - - const NGGridTrackList& TrackList() const { return track_sizes.NGTrackList(); } - GridTrackList track_sizes; Vector<GridTrackSize, 1> auto_repeat_track_sizes; - NamedGridLinesMap named_grid_lines; NamedGridLinesMap auto_repeat_named_grid_lines; OrderedNamedGridLines ordered_named_grid_lines; OrderedNamedGridLines auto_repeat_ordered_named_grid_lines; - wtf_size_t auto_repeat_insertion_point{0}; - AutoRepeatType auto_repeat_type{AutoRepeatType::kNoAutoRepeat}; - GridAxisType axis_type{GridAxisType::kStandaloneAxis}; + GridAxisType axis_type = GridAxisType::kStandaloneAxis; + AutoRepeatType auto_repeat_type = AutoRepeatType::kNoAutoRepeat; + wtf_size_t auto_repeat_insertion_point = 0; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/style/grid_positions_resolver.cc b/third_party/blink/renderer/core/style/grid_positions_resolver.cc index 368b7b0..f8a43976 100644 --- a/third_party/blink/renderer/core/style/grid_positions_resolver.cc +++ b/third_party/blink/renderer/core/style/grid_positions_resolver.cc
@@ -74,7 +74,8 @@ insertion_point_ = computed_grid_track_list.auto_repeat_insertion_point; auto_repeat_track_list_length_ = - is_ng_grid ? computed_grid_track_list.TrackList().AutoRepeatTrackCount() + is_ng_grid ? computed_grid_track_list.track_sizes.NGTrackList() + .AutoRepeatTrackCount() : computed_grid_track_list.auto_repeat_track_sizes.size(); }
diff --git a/third_party/blink/renderer/core/style/grid_track_list.h b/third_party/blink/renderer/core/style/grid_track_list.h index 42ce0420..8526ef0 100644 --- a/third_party/blink/renderer/core/style/grid_track_list.h +++ b/third_party/blink/renderer/core/style/grid_track_list.h
@@ -78,7 +78,6 @@ void operator=(const NGGridTrackList& o); bool operator==(const NGGridTrackList& o) const; - bool operator!=(const NGGridTrackList& o) const { return !(*this == o); } private: // Returns the amount of tracks available before overflow.
diff --git a/third_party/blink/renderer/modules/mediarecorder/vea_encoder.cc b/third_party/blink/renderer/modules/mediarecorder/vea_encoder.cc index be581b8..b474eda 100644 --- a/third_party/blink/renderer/modules/mediarecorder/vea_encoder.cc +++ b/third_party/blink/renderer/modules/mediarecorder/vea_encoder.cc
@@ -13,7 +13,6 @@ #include "base/task/sequenced_task_runner.h" #include "media/base/bind_to_current_loop.h" #include "media/base/bitrate.h" -#include "media/base/media_util.h" #include "media/base/video_frame.h" #include "media/video/gpu_video_accelerator_factories.h" #include "third_party/blink/public/platform/platform.h" @@ -327,11 +326,8 @@ base::saturated_cast<uint32_t>(bits_per_second_)), absl::nullopt, absl::nullopt, level_, false, storage_type, media::VideoEncodeAccelerator::Config::ContentType::kCamera); - if (!video_encoder_ || - !video_encoder_->Initialize(config, this, - std::make_unique<media::NullMediaLog>())) { + if (!video_encoder_ || !video_encoder_->Initialize(config, this)) NotifyError(media::VideoEncodeAccelerator::kPlatformFailureError); - } } void VEAEncoder::DestroyOnEncodingTaskRunner(
diff --git a/third_party/blink/renderer/modules/payments/goods/digital_goods_service.cc b/third_party/blink/renderer/modules/payments/goods/digital_goods_service.cc index b848d99..ac3ee8a2 100644 --- a/third_party/blink/renderer/modules/payments/goods/digital_goods_service.cc +++ b/third_party/blink/renderer/modules/payments/goods/digital_goods_service.cc
@@ -45,14 +45,15 @@ void OnListPurchasesResponse( ScriptPromiseResolver* resolver, BillingResponseCode code, - Vector<payments::mojom::blink::PurchaseDetailsPtr> purchase_details_list) { + Vector<payments::mojom::blink::PurchaseReferencePtr> + purchase_reference_list) { if (code != BillingResponseCode::kOk) { resolver->Reject(MakeGarbageCollected<DOMException>( DOMExceptionCode::kOperationError, mojo::ConvertTo<String>(code))); return; } HeapVector<Member<PurchaseDetails>> blink_purchase_details_list; - for (const auto& details : purchase_details_list) { + for (const auto& details : purchase_reference_list) { blink::PurchaseDetails* blink_details = details.To<blink::PurchaseDetails*>(); if (blink_details) { @@ -120,14 +121,8 @@ return promise; } - // Implement `consume` functionality using existing `acknowledge` mojo call - // with `make_available_again` always true. This is defined to use up an item - // in the same way as `consume`. - // TODO(crbug.com/1250604): Replace with `consume` mojo call when available. - bool make_available_again = true; - mojo_service_->Acknowledge( - purchase_token, make_available_again, - WTF::Bind(&OnConsumeResponse, WrapPersistent(resolver))); + mojo_service_->Consume( + purchase_token, WTF::Bind(&OnConsumeResponse, WrapPersistent(resolver))); return promise; }
diff --git a/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters.cc b/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters.cc index e3d7e5b3..f0ba547 100644 --- a/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters.cc +++ b/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters.cc
@@ -12,7 +12,7 @@ using payments::mojom::blink::BillingResponseCode; using payments::mojom::blink::CreateDigitalGoodsResponseCode; using payments::mojom::blink::ItemDetailsPtr; -using payments::mojom::blink::PurchaseDetailsPtr; +using payments::mojom::blink::PurchaseReferencePtr; WTF::String TypeConverter<WTF::String, CreateDigitalGoodsResponseCode>::Convert( const CreateDigitalGoodsResponseCode& input) { @@ -78,8 +78,8 @@ } blink::PurchaseDetails* -TypeConverter<blink::PurchaseDetails*, PurchaseDetailsPtr>::Convert( - const PurchaseDetailsPtr& input) { +TypeConverter<blink::PurchaseDetails*, PurchaseReferencePtr>::Convert( + const PurchaseReferencePtr& input) { if (!input) return nullptr; blink::PurchaseDetails* output = blink::PurchaseDetails::Create();
diff --git a/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters.h b/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters.h index 1a9dd4d..d393592 100644 --- a/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters.h +++ b/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters.h
@@ -37,14 +37,14 @@ const payments::mojom::blink::BillingResponseCode& input); }; -// Converts a mojo PurchaseDetails into a WebIDL PurchaseDetails. +// Converts a mojo PurchaseReference into a WebIDL PurchaseDetails. // Returns a null IDL struct when a null mojo struct is given as input. template <> struct MODULES_EXPORT TypeConverter<blink::PurchaseDetails*, - payments::mojom::blink::PurchaseDetailsPtr> { + payments::mojom::blink::PurchaseReferencePtr> { static blink::PurchaseDetails* Convert( - const payments::mojom::blink::PurchaseDetailsPtr& input); + const payments::mojom::blink::PurchaseReferencePtr& input); }; } // namespace mojo
diff --git a/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters_unittest.cc b/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters_unittest.cc index bba6b98..4bf9c220 100644 --- a/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters_unittest.cc +++ b/third_party/blink/renderer/modules/payments/goods/digital_goods_type_converters_unittest.cc
@@ -108,23 +108,24 @@ EXPECT_EQ(idl_item_details, nullptr); } -TEST(DigitalGoodsTypeConvertersTest, MojoPurchaseDetailsToIdl) { - auto mojo_purchase_details = payments::mojom::blink::PurchaseDetails::New(); +TEST(DigitalGoodsTypeConvertersTest, MojoPurchaseReferenceToIdl) { + auto mojo_purchase_reference = + payments::mojom::blink::PurchaseReference::New(); const String item_id = "shiny-sword-id"; const String purchase_token = "purchase-token-for-shiny-sword"; - mojo_purchase_details->item_id = item_id; - mojo_purchase_details->purchase_token = purchase_token; + mojo_purchase_reference->item_id = item_id; + mojo_purchase_reference->purchase_token = purchase_token; - auto* idl_purchase_details = mojo_purchase_details.To<PurchaseDetails*>(); + auto* idl_purchase_details = mojo_purchase_reference.To<PurchaseDetails*>(); EXPECT_EQ(idl_purchase_details->itemId(), item_id); EXPECT_EQ(idl_purchase_details->purchaseToken(), purchase_token); } -TEST(DigitalGoodsTypeConvertersTest, NullMojoPurchaseDetailsToIdl) { - payments::mojom::blink::PurchaseDetailsPtr mojo_purchase_details; +TEST(DigitalGoodsTypeConvertersTest, NullMojoPurchaseReferenceToIdl) { + payments::mojom::blink::PurchaseReferencePtr mojo_purchase_reference; - auto* idl_purchase_details = mojo_purchase_details.To<PurchaseDetails*>(); + auto* idl_purchase_details = mojo_purchase_reference.To<PurchaseDetails*>(); EXPECT_EQ(idl_purchase_details, nullptr); }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h index a37fb9e5..49c0951 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h
@@ -7,6 +7,7 @@ #include <memory> +#include "base/threading/thread_checker.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtp_encoding_parameters.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtp_send_parameters.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/audio_decoder.cc b/third_party/blink/renderer/modules/webcodecs/audio_decoder.cc index 7def338..716c1d6 100644 --- a/third_party/blink/renderer/modules/webcodecs/audio_decoder.cc +++ b/third_party/blink/renderer/modules/webcodecs/audio_decoder.cc
@@ -37,7 +37,7 @@ bool IsValidConfig(const AudioDecoderConfig& config, media::AudioType& out_audio_type, - String& out_console_message) { + String& js_error_message) { // Match codec strings from the codec registry: // https://www.w3.org/TR/webcodecs-codec-registry/#audio-codec-registry if (config.codec() == "ulaw") { @@ -55,7 +55,7 @@ description_required = true; if (description_required && !config.hasDescription()) { - out_console_message = "Description is required."; + js_error_message = "Description is required."; return false; } @@ -65,12 +65,12 @@ "", config.codec().Utf8(), &is_codec_ambiguous, &codec); if (!parse_succeeded) { - out_console_message = "Failed to parse codec string."; + js_error_message = "Failed to parse codec string."; return false; } if (is_codec_ambiguous) { - out_console_message = "Codec string is ambiguous."; + js_error_message = "Codec string is ambiguous."; return false; } @@ -186,10 +186,10 @@ const AudioDecoderConfig* config, ExceptionState& exception_state) { media::AudioType audio_type; - String console_message; + String js_error_message; - if (!IsValidConfig(*config, audio_type, console_message)) { - exception_state.ThrowTypeError(console_message); + if (!IsValidConfig(*config, audio_type, js_error_message)) { + exception_state.ThrowTypeError(js_error_message); return ScriptPromise(); } @@ -206,10 +206,10 @@ CodecConfigEval AudioDecoder::MakeMediaAudioDecoderConfig( const ConfigType& config, MediaConfigType& out_media_config, - String& out_console_message) { + String& js_error_message) { media::AudioType audio_type; - if (!IsValidConfig(config, audio_type, out_console_message)) + if (!IsValidConfig(config, audio_type, js_error_message)) return CodecConfigEval::kInvalid; std::vector<uint8_t> extra_data; @@ -248,11 +248,11 @@ CodecConfigEval AudioDecoder::MakeMediaConfig(const ConfigType& config, MediaConfigType* out_media_config, - String* out_console_message) { + String* js_error_message) { DCHECK(out_media_config); - DCHECK(out_console_message); + DCHECK(js_error_message); return MakeMediaAudioDecoderConfig(config, *out_media_config, - *out_console_message); + *js_error_message); } media::DecoderStatus::Or<scoped_refptr<media::DecoderBuffer>>
diff --git a/third_party/blink/renderer/modules/webcodecs/audio_decoder.h b/third_party/blink/renderer/modules/webcodecs/audio_decoder.h index 61b4cc8b..35db85e 100644 --- a/third_party/blink/renderer/modules/webcodecs/audio_decoder.h +++ b/third_party/blink/renderer/modules/webcodecs/audio_decoder.h
@@ -86,7 +86,7 @@ static CodecConfigEval MakeMediaAudioDecoderConfig( const ConfigType& config, MediaConfigType& out_media_config, - String& out_console_message); + String& js_error_message); AudioDecoder(ScriptState*, const AudioDecoderInit*, ExceptionState&); ~AudioDecoder() override = default; @@ -94,7 +94,7 @@ protected: CodecConfigEval MakeMediaConfig(const ConfigType& config, MediaConfigType* out_media_config, - String* out_console_message) override; + String* js_error_message) override; media::DecoderStatus::Or<scoped_refptr<media::DecoderBuffer>> MakeDecoderBuffer(const InputType& chunk, bool verify_key_frame) override; };
diff --git a/third_party/blink/renderer/modules/webcodecs/decoder_template.cc b/third_party/blink/renderer/modules/webcodecs/decoder_template.cc index b89a600..5372951 100644 --- a/third_party/blink/renderer/modules/webcodecs/decoder_template.cc +++ b/third_party/blink/renderer/modules/webcodecs/decoder_template.cc
@@ -135,17 +135,17 @@ return; auto media_config = std::make_unique<MediaConfigType>(); - String console_message; + String js_error_message; CodecConfigEval eval = - MakeMediaConfig(*config, media_config.get(), &console_message); + MakeMediaConfig(*config, media_config.get(), &js_error_message); switch (eval) { case CodecConfigEval::kInvalid: - exception_state.ThrowTypeError(console_message); + exception_state.ThrowTypeError(js_error_message); return; case CodecConfigEval::kUnsupported: exception_state.ThrowDOMException(DOMExceptionCode::kNotSupportedError, - console_message); + js_error_message); return; case CodecConfigEval::kSupported: // Good, lets proceed.
diff --git a/third_party/blink/renderer/modules/webcodecs/decoder_template.h b/third_party/blink/renderer/modules/webcodecs/decoder_template.h index 993bf1a..6482147 100644 --- a/third_party/blink/renderer/modules/webcodecs/decoder_template.h +++ b/third_party/blink/renderer/modules/webcodecs/decoder_template.h
@@ -80,7 +80,7 @@ // Convert a configuration to a DecoderConfig. virtual CodecConfigEval MakeMediaConfig(const ConfigType& config, MediaConfigType* out_media_config, - String* out_console_message) = 0; + String* js_error_message) = 0; // Gets the AccelerationPreference from a config. // If derived classes do not override this, this will default to kAllow.
diff --git a/third_party/blink/renderer/modules/webcodecs/video_decoder.cc b/third_party/blink/renderer/modules/webcodecs/video_decoder.cc index 85a6f5d..94df749 100644 --- a/third_party/blink/renderer/modules/webcodecs/video_decoder.cc +++ b/third_party/blink/renderer/modules/webcodecs/video_decoder.cc
@@ -86,7 +86,7 @@ bool ParseCodecString(const String& codec_string, media::VideoType& out_video_type, - String& out_console_message) { + String& js_error_message) { bool is_codec_ambiguous = true; media::VideoCodec codec = media::VideoCodec::kUnknown; media::VideoCodecProfile profile = media::VIDEO_CODEC_PROFILE_UNKNOWN; @@ -97,12 +97,12 @@ &codec, &profile, &level, &color_space); if (!parse_succeeded) { - out_console_message = "Failed to parse codec string."; + js_error_message = "Failed to parse codec string."; return false; } if (is_codec_ambiguous) { - out_console_message = "Codec string is ambiguous."; + js_error_message = "Codec string is ambiguous."; return false; } @@ -110,24 +110,23 @@ return true; } -// TODO(crbug.com/1179970): rename out_console_message. // TODO(crbug.com/1181443): Make this a pure virtual in DecoderTemplate, and // refactor its uses. // TODO(crbug.com/1198324): Merge shared logic with VideoFramePlaneInit. bool IsValidConfig(const VideoDecoderConfig& config, media::VideoType& out_video_type, - String& out_console_message) { - if (!ParseCodecString(config.codec(), out_video_type, out_console_message)) + String& js_error_message) { + if (!ParseCodecString(config.codec(), out_video_type, js_error_message)) return false; if (config.hasCodedWidth() || config.hasCodedHeight()) { if (!config.hasCodedWidth()) { - out_console_message = + js_error_message = "Invalid config, codedHeight specified without codedWidth."; return false; } if (!config.hasCodedHeight()) { - out_console_message = + js_error_message = "Invalid config, codedWidth specified without codedHeight."; return false; } @@ -138,21 +137,21 @@ coded_height == 0 || coded_height > media::limits::kMaxDimension) { // TODO(crbug.com/1212865): Exceeding implementation limits should not // throw in isConfigSupported() (the config is valid, just unsupported). - out_console_message = String::Format("Invalid coded size (%u, %u).", - coded_width, coded_height); + js_error_message = String::Format("Invalid coded size (%u, %u).", + coded_width, coded_height); return false; } } if (config.hasDisplayAspectWidth() || config.hasDisplayAspectHeight()) { if (!config.hasDisplayAspectWidth()) { - out_console_message = + js_error_message = "Invalid config, displayAspectHeight specified without " "displayAspectWidth."; return false; } if (!config.hasDisplayAspectHeight()) { - out_console_message = + js_error_message = "Invalid config, displayAspectWidth specified without " "displayAspectHeight."; return false; @@ -161,7 +160,7 @@ uint32_t display_aspect_width = config.displayAspectWidth(); uint32_t display_aspect_height = config.displayAspectHeight(); if (display_aspect_width == 0 || display_aspect_height == 0) { - out_console_message = + js_error_message = String::Format("Invalid display aspect (%u, %u).", display_aspect_width, display_aspect_height); return false; @@ -331,10 +330,10 @@ return IsAcceleratedConfigSupported(script_state, config, exception_state); media::VideoType video_type; - String console_message; + String js_error_message; - if (!IsValidConfig(*config, video_type, console_message)) { - exception_state.ThrowTypeError(console_message); + if (!IsValidConfig(*config, video_type, js_error_message)) { + exception_state.ThrowTypeError(js_error_message); return ScriptPromise(); } @@ -357,7 +356,7 @@ ScriptState* script_state, const VideoDecoderConfig* config, ExceptionState& exception_state) { - String console_message; + String js_error_message; auto media_config = std::make_unique<MediaConfigType>(); CodecConfigEval config_eval; @@ -365,14 +364,14 @@ std::unique_ptr<media::H264ToAnnexBBitstreamConverter> h264_converter; std::unique_ptr<media::mp4::AVCDecoderConfigurationRecord> h264_avcc; config_eval = MakeMediaVideoDecoderConfig( - *config, *media_config, h264_converter, h264_avcc, console_message); + *config, *media_config, h264_converter, h264_avcc, js_error_message); #else config_eval = - MakeMediaVideoDecoderConfig(*config, *media_config, console_message); + MakeMediaVideoDecoderConfig(*config, *media_config, js_error_message); #endif // BUILDFLAG(USE_PROPRIETARY_CODECS) if (config_eval != CodecConfigEval::kSupported) { - exception_state.ThrowTypeError(console_message); + exception_state.ThrowTypeError(js_error_message); return ScriptPromise(); } @@ -407,7 +406,6 @@ } // static -// TODO(crbug.com/1179970): rename out_console_message. CodecConfigEval VideoDecoder::MakeMediaVideoDecoderConfig( const ConfigType& config, MediaConfigType& out_media_config, @@ -415,10 +413,10 @@ std::unique_ptr<media::H264ToAnnexBBitstreamConverter>& out_h264_converter, std::unique_ptr<media::mp4::AVCDecoderConfigurationRecord>& out_h264_avcc, #endif // BUILDFLAG(USE_PROPRIETARY_CODECS) - String& out_console_message) { + String& js_error_message) { media::VideoType video_type; - if (!IsValidConfig(config, video_type, out_console_message)) + if (!IsValidConfig(config, video_type, js_error_message)) return CodecConfigEval::kInvalid; std::vector<uint8_t> extra_data; @@ -441,7 +439,7 @@ if (!out_h264_converter->ParseConfiguration( extra_data.data(), static_cast<uint32_t>(extra_data.size()), out_h264_avcc.get())) { - out_console_message = "Failed to parse avcC."; + js_error_message = "Failed to parse avcC."; return CodecConfigEval::kInvalid; } } else { @@ -450,7 +448,7 @@ } #else if (video_type.codec == media::VideoCodec::kH264) { - out_console_message = "H.264 decoding is not supported."; + js_error_message = "H.264 decoding is not supported."; return CodecConfigEval::kUnsupported; } #endif // BUILDFLAG(USE_PROPRIETARY_CODECS) @@ -504,15 +502,15 @@ CodecConfigEval VideoDecoder::MakeMediaConfig(const ConfigType& config, MediaConfigType* out_media_config, - String* out_console_message) { + String* js_error_message) { DCHECK(out_media_config); - DCHECK(out_console_message); + DCHECK(js_error_message); auto result = MakeMediaVideoDecoderConfig(config, *out_media_config, #if BUILDFLAG(USE_PROPRIETARY_CODECS) h264_converter_ /* out */, h264_avcc_ /* out */, #endif // BUILDFLAG(USE_PROPRIETARY_CODECS) - *out_console_message); + *js_error_message); if (result == CodecConfigEval::kSupported) current_codec_ = out_media_config->codec(); return result;
diff --git a/third_party/blink/renderer/modules/webcodecs/video_decoder.h b/third_party/blink/renderer/modules/webcodecs/video_decoder.h index ad0e1ee..b63cb9e 100644 --- a/third_party/blink/renderer/modules/webcodecs/video_decoder.h +++ b/third_party/blink/renderer/modules/webcodecs/video_decoder.h
@@ -104,7 +104,7 @@ out_h264_converter, std::unique_ptr<media::mp4::AVCDecoderConfigurationRecord>& out_h264_avcc, #endif // BUILDFLAG(USE_PROPRIETARY_CODECS) - String& out_console_message); + String& js_error_message); VideoDecoder(ScriptState*, const VideoDecoderInit*, ExceptionState&); ~VideoDecoder() override = default; @@ -112,7 +112,7 @@ protected: CodecConfigEval MakeMediaConfig(const ConfigType& config, MediaConfigType* out_media_config, - String* out_console_message) override; + String* js_error_message) override; media::DecoderStatus::Or<scoped_refptr<media::DecoderBuffer>> MakeDecoderBuffer(const InputType& input, bool verify_key_frame) override;
diff --git a/third_party/blink/renderer/platform/p2p/ipc_network_manager.h b/third_party/blink/renderer/platform/p2p/ipc_network_manager.h index 6ca2c46..43f242e4 100644 --- a/third_party/blink/renderer/platform/p2p/ipc_network_manager.h +++ b/third_party/blink/renderer/platform/p2p/ipc_network_manager.h
@@ -8,6 +8,7 @@ #include <memory> #include "base/memory/weak_ptr.h" +#include "base/threading/thread_checker.h" #include "third_party/blink/renderer/platform/heap/persistent.h" #include "third_party/blink/renderer/platform/p2p/network_list_manager.h" #include "third_party/blink/renderer/platform/p2p/network_list_observer.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc index 2725f226..d6efa3a 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc
@@ -28,7 +28,6 @@ #include "media/base/bitrate.h" #include "media/base/bitstream_buffer.h" #include "media/base/media_switches.h" -#include "media/base/media_util.h" #include "media/base/video_bitrate_allocation.h" #include "media/base/video_frame.h" #include "media/base/video_util.h" @@ -725,8 +724,7 @@ ? media::VideoEncodeAccelerator::Config::ContentType::kDisplay : media::VideoEncodeAccelerator::Config::ContentType::kCamera, spatial_layers, inter_layer_pred); - if (!video_encoder_->Initialize(config, this, - std::make_unique<media::NullMediaLog>())) { + if (!video_encoder_->Initialize(config, this)) { LogAndNotifyError(FROM_HERE, "Error initializing video_encoder", media::VideoEncodeAccelerator::kInvalidArgumentError); return;
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc index 94f2759..6d89faf6 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc
@@ -12,7 +12,6 @@ #include "base/threading/thread.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" -#include "media/base/media_log.h" #include "media/base/media_switches.h" #include "media/video/mock_gpu_video_accelerator_factories.h" #include "media/video/mock_video_encode_accelerator.h"
diff --git a/third_party/blink/renderer/platform/wtf/functional.h b/third_party/blink/renderer/platform/wtf/functional.h index 34db10c..27baef6 100644 --- a/third_party/blink/renderer/platform/wtf/functional.h +++ b/third_party/blink/renderer/platform/wtf/functional.h
@@ -33,7 +33,6 @@ #include "base/dcheck_is_on.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" -#include "base/threading/thread_checker.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h" #include "third_party/blink/renderer/platform/wtf/type_traits.h"
diff --git a/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_runner_unittest.py b/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_runner_unittest.py index c360e2c..2c65c59 100644 --- a/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_runner_unittest.py +++ b/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_runner_unittest.py
@@ -90,7 +90,6 @@ # TODO(crbug.com/926841): Debug running this test on Swarming on Windows. # Ensure that all child processes are always cleaned up. @unittest.skipIf(sys.platform == 'win32', 'may not clean up child processes') -@unittest.skipIf(six.PY3, "This is stuck in python3. See crbug.com/926841") class WebTestRunnerTests(unittest.TestCase): def setUp(self): self._actual_output = DriverOutput( @@ -175,6 +174,7 @@ self.assertEqual(0, run_results.expected) self.assertEqual(1, run_results.unexpected) + @unittest.skipIf(six.PY3, "This is stuck in python3. See crbug.com/926841") def test_skipped_tests_are_sinked(self): runner = self._runner() runner._options.derived_batch_size = 1
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 9b93d31a..543ccb68 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -3458,6 +3458,11 @@ crbug.com/626703 [ Win ] virtual/partitioned-cookies/http/tests/inspector-protocol/network/disabled-cache-navigation.js [ Failure ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 [ Mac10.12 ] external/wpt/scroll-to-text-fragment/scroll-to-text-fragment.html [ Skip Timeout ] +crbug.com/626703 [ Mac10.12 ] external/wpt/service-workers/service-worker/same-site-cookies.https.html [ Skip Timeout ] +crbug.com/626703 [ Mac10.12 ] external/wpt/signed-exchange/subresource/sxg-subresource-header-integrity-mismatch.tentative.html [ Timeout ] +crbug.com/626703 [ Mac10.12 ] virtual/scalefactor200/external/wpt/css/filter-effects/backdrop-filter-clip-rect.html [ Timeout ] +crbug.com/626703 [ Mac10.12 ] virtual/shared-storage-fenced-frame-shadow-dom/wpt_internal/shared_storage/run-url-selection-operation.https.html [ Timeout ] crbug.com/626703 [ Mac11 ] external/wpt/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html [ Skip Timeout ] crbug.com/626703 [ Mac10.12 ] virtual/prerender/external/wpt/speculation-rules/prerender/opt-out.html [ Skip Timeout ] crbug.com/626703 external/wpt/css/css-grid/subgrid/subgrid-stretch.html [ Failure ]
diff --git a/third_party/blink/web_tests/android/WebviewWPTExpectations b/third_party/blink/web_tests/android/WebviewWPTExpectations index bc2e614..1ee949e5 100644 --- a/third_party/blink/web_tests/android/WebviewWPTExpectations +++ b/third_party/blink/web_tests/android/WebviewWPTExpectations
@@ -3087,12 +3087,12 @@ crbug.com/1050754 external/wpt/import-maps/csp/hash.tentative.html [ Failure ] crbug.com/1050754 external/wpt/import-maps/csp/nonce.tentative.html [ Failure ] crbug.com/1050754 external/wpt/import-maps/csp/unsafe-inline.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/inert/inert-inlines.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/inert/inert-label-focus.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/inert/inert-node-is-uneditable.tentative.html [ Failure Pass ] -crbug.com/1050754 external/wpt/inert/inert-node-is-unfocusable.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/inert/inert-node-is-unselectable.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/inert/inert-on-slots.tentative.html [ Failure ] +crbug.com/1050754 external/wpt/inert/inert-inlines.html [ Failure ] +crbug.com/1050754 external/wpt/inert/inert-label-focus.html [ Failure ] +crbug.com/1050754 external/wpt/inert/inert-node-is-uneditable.html [ Failure Pass ] +crbug.com/1050754 external/wpt/inert/inert-node-is-unfocusable.html [ Failure ] +crbug.com/1050754 external/wpt/inert/inert-node-is-unselectable.html [ Failure ] +crbug.com/1050754 external/wpt/inert/inert-on-slots.html [ Failure ] crbug.com/1050754 external/wpt/inert/inert-retargeting.tentative.html [ Failure ] crbug.com/1050754 external/wpt/infrastructure/assumptions/allowed-to-play.html [ Failure ] crbug.com/1050754 external/wpt/infrastructure/expected-fail/failing-test.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/external/Version b/third_party/blink/web_tests/external/Version index b8e34f1..68bec99 100644 --- a/third_party/blink/web_tests/external/Version +++ b/third_party/blink/web_tests/external/Version
@@ -1 +1 @@ -Version: cba216de2a71653c0b08c0e91577fb4e2426fa0e +Version: b6fd9afc6cdfdbcc306503d7b689006fd461923b
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 a7c3737..bb9a8297 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
@@ -372130,6 +372130,13 @@ {} ] ], + "logicalprops-with-deferred-writing-mode.html": [ + "a213d375bdf95d669b14f19f50d414cb6ca7439a", + [ + null, + {} + ] + ], "logicalprops-with-variables.html": [ "fc52495bc00f682677b297cf4715cf7cf586f150", [ @@ -460876,7 +460883,7 @@ } ] ], - "dialog-inert.tentative.html": [ + "dialog-inert.html": [ "864420b9d25e67745a497309252a6df8000a8b2f", [ null, @@ -470750,21 +470757,21 @@ ] }, "inert": { - "dynamic-inert-on-focused-element.tentative.html": [ + "dynamic-inert-on-focused-element.html": [ "0ddf5a995afad3e19f31b9f76ab67e704737355f", [ null, {} ] ], - "inert-and-contenteditable.tentative.html": [ + "inert-and-contenteditable.html": [ "01091d1736e87b294c3ddf118227d93f129808fe", [ null, {} ] ], - "inert-canvas-fallback-content.tentative.html": [ + "inert-canvas-fallback-content.html": [ "f22549b50377f17b3e03cb6c26c996122b7c8e2b", [ null, @@ -470778,14 +470785,14 @@ {} ] ], - "inert-does-not-match-disabled-selector.tentative.html": [ + "inert-does-not-match-disabled-selector.html": [ "74b8ac3f7dd5c3447bf47fd732fade9220497c93", [ null, {} ] ], - "inert-iframe-hittest.tentative.html": [ + "inert-iframe-hittest.html": [ "bcc542d35edff1bf93fdb7bcc6185fceb0d130d6", [ null, @@ -470794,7 +470801,7 @@ } ] ], - "inert-iframe-tabbing.tentative.html": [ + "inert-iframe-tabbing.html": [ "a0146b74cc2abdb9590c322ec1a98d54c1adbf62", [ null, @@ -470803,14 +470810,14 @@ } ] ], - "inert-in-shadow-dom.tentative.html": [ + "inert-in-shadow-dom.html": [ "ec825dbfdc985458cc7393d58b2efc2ce0796364", [ null, {} ] ], - "inert-inlines.tentative.html": [ + "inert-inlines.html": [ "b056c6495d2c54733bee6ab796332ba89f01b379", [ null, @@ -470819,7 +470826,7 @@ } ] ], - "inert-label-focus.tentative.html": [ + "inert-label-focus.html": [ "8bbe1eca15c7d8f2f9fd5ea48c33cd0a5d5098e0", [ null, @@ -470828,7 +470835,7 @@ } ] ], - "inert-node-is-uneditable.tentative.html": [ + "inert-node-is-uneditable.html": [ "23182b937cde52e8d55a88dbc8b440219d07f34f", [ null, @@ -470837,35 +470844,35 @@ } ] ], - "inert-node-is-unfocusable.tentative.html": [ + "inert-node-is-unfocusable.html": [ "8b5de37fdcadedb9d98ec44c9c3c20aea52a0400", [ null, {} ] ], - "inert-node-is-unselectable.tentative.html": [ + "inert-node-is-unselectable.html": [ "b99af0d4cd142dcb051af51f42d1759142a00c5e", [ null, {} ] ], - "inert-on-non-html.tentative.html": [ + "inert-on-non-html.html": [ "4d4fdd7059e013e55748615844ceee63c2d5c102", [ null, {} ] ], - "inert-on-slots.tentative.html": [ + "inert-on-slots.html": [ "dd0d7ec6d46d1ef34417dcf099ce5156bb149bea", [ null, {} ] ], - "inert-svg-hittest.tentative.html": [ + "inert-svg-hittest.html": [ "f743ed25f45f1243acf30a6fd430e707a928ebe6", [ null, @@ -470874,14 +470881,14 @@ } ] ], - "inert-with-modal-dialog-001.tentative.html": [ + "inert-with-modal-dialog-001.html": [ "a31fa150147f5c86de5969225e978936bc80daca", [ null, {} ] ], - "inert-with-modal-dialog-002.tentative.html": [ + "inert-with-modal-dialog-002.html": [ "499ac80d09e2c0a5080493e33cc2bd87a4c217f5", [ null, @@ -489058,6 +489065,13 @@ {} ] ], + "preload-dynamic-csp.html": [ + "7a696cb7ed8c42e7b3c749d5cebdd17c0f571e76", + [ + null, + {} + ] + ], "preload-font-crossorigin.html": [ "492dc393cc847d09847162ea282cd478d3b8811a", [ @@ -513770,6 +513784,13 @@ } ] ], + "global.html": [ + "08665d318eac889dfba85abd0efeb0a3168913df", + [ + null, + {} + ] + ], "patched-global.any.js": [ "a64a054a97f1f5f133ec961a02f75207b2cb4eee", [
diff --git a/third_party/blink/web_tests/external/wpt/css/css-logical/logicalprops-with-deferred-writing-mode.html b/third_party/blink/web_tests/external/wpt/css/css-logical/logicalprops-with-deferred-writing-mode.html new file mode 100644 index 0000000..a213d375 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-logical/logicalprops-with-deferred-writing-mode.html
@@ -0,0 +1,175 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Logical properties with deferred <code>writing-mode</code></title> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" /> +<link rel="help" href="https://drafts.csswg.org/css-logical-1/#box"> +<link rel="help" href="https://drafts.csswg.org/css-variables-1/"> +<link rel="help" href="https://drafts.csswg.org/css-values-4/#common-keywords"> +<meta name="assert" content="Checks that logical properties are resolved correctly when the writing mode isn't known until computed-value time."> +<style> +#parent { + writing-mode: vertical-lr; +} + +@layer { + .revert-layer { + writing-mode: vertical-rl; + } +} +@layer { + .revert-layer { + writing-mode: horizontal-tb; + writing-mode: revert-layer; + } +} +</style> +<div id="parent"> + <div id="target"></div> +</div> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +const target = document.getElementById("target"); +const computedStyle = getComputedStyle(target); + +function check(expected) { + for (let [prop, value] of Object.entries(expected)) { + assert_equals(computedStyle.getPropertyValue(prop), value, prop); + } +} + +test(function() { + target.style.cssText = ` + --wm: vertical-rl; + writing-mode: var(--wm); + margin-block-start: 1px; + margin-block-end: 2px; + margin-inline-start: 3px; + margin-inline-end: 4px; + `; + check({ + // Logicals + "margin-block-start": "1px", + "margin-block-end": "2px", + "margin-inline-start": "3px", + "margin-inline-end": "4px", + // Physicals + "margin-right": "1px", + "margin-left": "2px", + "margin-top": "3px", + "margin-bottom": "4px", + }); +}, "Writing mode with variable"); + +test(function() { + target.style.cssText = ` + --wm1: vertical-rl; + --wm2: var(--wm1); + writing-mode: var(--wm2); + margin-block-start: 1px; + margin-block-end: 2px; + margin-inline-start: 3px; + margin-inline-end: 4px; + `; + check({ + // Logicals + "margin-block-start": "1px", + "margin-block-end": "2px", + "margin-inline-start": "3px", + "margin-inline-end": "4px", + // Physicals + "margin-right": "1px", + "margin-left": "2px", + "margin-top": "3px", + "margin-bottom": "4px", + }); +}, "Writing mode with nested variables"); + +test(function() { + target.style.cssText = ` + writing-mode: inherit; + margin-block-start: 1px; + margin-block-end: 2px; + margin-inline-start: 3px; + margin-inline-end: 4px; + `; + check({ + // Logicals + "margin-block-start": "1px", + "margin-block-end": "2px", + "margin-inline-start": "3px", + "margin-inline-end": "4px", + // Physicals + "margin-left": "1px", + "margin-right": "2px", + "margin-top": "3px", + "margin-bottom": "4px", + }); +}, "Writing mode with 'inherit'"); + +test(function() { + target.style.cssText = ` + writing-mode: initial; + margin-block-start: 1px; + margin-block-end: 2px; + margin-inline-start: 3px; + margin-inline-end: 4px; + `; + check({ + // Logicals + "margin-block-start": "1px", + "margin-block-end": "2px", + "margin-inline-start": "3px", + "margin-inline-end": "4px", + // Physicals + "margin-top": "1px", + "margin-bottom": "2px", + "margin-left": "3px", + "margin-right": "4px", + }); +}, "Writing mode with 'initial'"); + +test(function() { + target.style.cssText = ` + writing-mode: revert; + margin-block-start: 1px; + margin-block-end: 2px; + margin-inline-start: 3px; + margin-inline-end: 4px; + `; + check({ + // Logicals + "margin-block-start": "1px", + "margin-block-end": "2px", + "margin-inline-start": "3px", + "margin-inline-end": "4px", + // Physicals + "margin-left": "1px", + "margin-right": "2px", + "margin-top": "3px", + "margin-bottom": "4px", + }); +}, "Writing mode with 'revert'"); + +test(function() { + target.className = "revert-layer"; + target.style.cssText = ` + margin-block-start: 1px; + margin-block-end: 2px; + margin-inline-start: 3px; + margin-inline-end: 4px; + `; + check({ + // Logicals + "margin-block-start": "1px", + "margin-block-end": "2px", + "margin-inline-start": "3px", + "margin-inline-end": "4px", + // Physicals + "margin-right": "1px", + "margin-left": "2px", + "margin-top": "3px", + "margin-bottom": "4px", + }); +}, "Writing mode with 'revert-layer'"); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/dialog-inert.tentative.html b/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/dialog-inert.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/dialog-inert.tentative.html rename to third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/dialog-inert.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/dynamic-inert-on-focused-element.tentative.html b/third_party/blink/web_tests/external/wpt/inert/dynamic-inert-on-focused-element.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/dynamic-inert-on-focused-element.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/dynamic-inert-on-focused-element.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-and-contenteditable.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-and-contenteditable.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-and-contenteditable.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-and-contenteditable.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-canvas-fallback-content.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-canvas-fallback-content.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-canvas-fallback-content.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-canvas-fallback-content.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-does-not-match-disabled-selector.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-does-not-match-disabled-selector.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-does-not-match-disabled-selector.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-does-not-match-disabled-selector.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-iframe-hittest.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-iframe-hittest.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-iframe-hittest.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-iframe-hittest.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-iframe-tabbing.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-iframe-tabbing.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-iframe-tabbing.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-iframe-tabbing.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-in-shadow-dom.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-in-shadow-dom.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-in-shadow-dom.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-in-shadow-dom.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-inlines.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-inlines.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-inlines.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-inlines.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-label-focus.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-label-focus.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-label-focus.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-label-focus.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-node-is-uneditable.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-node-is-uneditable.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-node-is-uneditable.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-node-is-uneditable.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-node-is-unfocusable.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-node-is-unfocusable.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-node-is-unfocusable.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-node-is-unfocusable.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-node-is-unselectable.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-node-is-unselectable.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-node-is-unselectable.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-node-is-unselectable.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-on-non-html.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-on-non-html.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-on-non-html.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-on-non-html.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-on-slots.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-on-slots.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-on-slots.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-on-slots.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-svg-hittest.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-svg-hittest.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-svg-hittest.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-svg-hittest.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-with-modal-dialog-001.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-with-modal-dialog-001.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-with-modal-dialog-001.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-with-modal-dialog-001.html
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-with-modal-dialog-002.tentative.html b/third_party/blink/web_tests/external/wpt/inert/inert-with-modal-dialog-002.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/inert/inert-with-modal-dialog-002.tentative.html rename to third_party/blink/web_tests/external/wpt/inert/inert-with-modal-dialog-002.html
diff --git a/third_party/blink/web_tests/external/wpt/preload/preload-dynamic-csp.html b/third_party/blink/web_tests/external/wpt/preload/preload-dynamic-csp.html new file mode 100644 index 0000000..7a696cb7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/preload/preload-dynamic-csp.html
@@ -0,0 +1,27 @@ +<!DOCTYPE html> +<title>Makes sure that preload requests respect CSP directives that are added after the preload</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/preload/resources/preload_helper.js"></script> +<link id="preload" rel=preload href="resources/square.png" as=image> +<body> +<script> + setup({single_test: true}); + + const preload = document.querySelector("#preload"); + preload.addEventListener("load", async () => { + const meta = document.createElement("meta"); + meta.httpEquiv = "Content-Security-Policy"; + meta.content = "img-src 'none'"; + document.head.appendChild(meta); + const img = document.createElement("img"); + img.src = preload.href; + document.body.appendChild(img); + const load = new Promise(resolve => img.addEventListener("load", () => resolve('load'))); + const error = new Promise(resolve => img.addEventListener("error", () => resolve('error'))); + const result = await Promise.any([load, error]); + assert_equals(result, "error"); + done(); + }); +</script> +
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/global.html b/third_party/blink/web_tests/external/wpt/streams/readable-streams/global.html new file mode 100644 index 0000000..08665d31 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/global.html
@@ -0,0 +1,162 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Ensure Stream objects are created in expected globals. </title> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<body></body> +<script> +// These tests are loosely derived from Gecko's readable-stream-globals.js, +// which is a test case designed around the JS Streams implementation. +// +// Unlike in JS Streams, where function calls switch realms and change +// the resulting global of the resulting objects, in WebIDL streams, +// the global of an object is (currently underspecified, but) intended +// to be the "Relevant Global" of the 'this' object. +// +// See: +// https://html.spec.whatwg.org/multipage/webappapis.html#relevant +// https://github.com/whatwg/streams/issues/1213 +"use strict" + +const iframe = document.createElement("iframe") +document.body.append(iframe) + +const otherGlobal = iframe.contentWindow; +const OtherReadableStream = otherGlobal.ReadableStream +const OtherReadableStreamDefaultReader = otherGlobal.ReadableStreamDefaultReader; +const OtherReadableStreamDefaultController = otherGlobal.ReadableStreamDefaultController; + +promise_test(async () => { + + // Controllers + let controller; + let otherController; + + // Get Stream Prototypes and controllers. + let streamController; + let stream = new ReadableStream({start(c) { streamController = c; }}); + + const callReaderThisGlobal = OtherReadableStream.prototype.getReader.call(stream); + const newReaderOtherGlobal = new OtherReadableStreamDefaultReader(new ReadableStream()); + + // Relevant Global Checking. + assert_equals(callReaderThisGlobal instanceof ReadableStreamDefaultReader, true, "reader was created in this global (.call)"); + assert_equals(newReaderOtherGlobal instanceof ReadableStreamDefaultReader, false, "reader was created in other global (new)"); + + assert_equals(callReaderThisGlobal instanceof OtherReadableStreamDefaultReader, false, "reader isn't coming from other global (.call)" ); + assert_equals(newReaderOtherGlobal instanceof OtherReadableStreamDefaultReader, true, "reader isn't coming from other global (new)"); + + assert_equals(otherController instanceof ReadableStreamDefaultController, false, "otherController should come from other gloal") + + + const request = callReaderThisGlobal.read(); + assert_equals(request instanceof Promise, true, "Promise comes from this global"); + + streamController.close(); + const requestResult = await request; + assert_equals(requestResult instanceof Object, true, "returned object comes from this global"); +}, "Stream objects created in expected globals") + +promise_test(async () => { + const stream = new ReadableStream(); + const otherReader = new OtherReadableStreamDefaultReader(stream); + const cancelPromise = ReadableStreamDefaultReader.prototype.cancel.call(otherReader); + assert_equals(cancelPromise instanceof Promise, true, "Cancel promise comes from the same global as the stream"); + assert_equals(await cancelPromise, undefined, "Cancel promise resolves to undefined"); +}, "Cancel promise is created in same global as stream") + +// Refresh the streams and controllers. +function getFreshInstances() { + let controller; + let otherController; + let stream = new ReadableStream({ + start(c) { + controller = c; + } + }); + + new OtherReadableStream({ + start(c) { + otherController = c; + } + }); + + return {stream, controller, otherController} +} + + +promise_test(async () => { + // Test closed promise on reader from another global (connected to a this-global stream) + const {stream, controller, otherController} = getFreshInstances(); + + const otherReader = new OtherReadableStreamDefaultReader(stream); + const closedPromise = otherReader.closed; + assert_equals(closedPromise instanceof otherGlobal.Promise, true, "Closed promise in other global."); +}, "Closed Promise in correct global"); + +promise_test(async () => { + const {stream, controller, otherController} = getFreshInstances(); + + const otherReader = OtherReadableStream.prototype.getReader.call(stream); + assert_equals(otherReader instanceof ReadableStreamDefaultReader, true, "Reader comes from this global") + const request = otherReader.read(); + assert_equals(request instanceof Promise, true, "Promise still comes from stream's realm (this realm)"); + otherController.close.call(controller); + assert_equals((await request) instanceof otherGlobal.Object, true, "Object comes from other realm"); +}, "Reader objects in correct global"); + + +promise_test(async () => { + const {stream, controller, otherController} = getFreshInstances(); + assert_equals(controller.desiredSize, 1, "Desired size is expected"); + Object.defineProperty(controller, "desiredSize", + Object.getOwnPropertyDescriptor(OtherReadableStreamDefaultController.prototype, "desiredSize")); + assert_equals(controller.desiredSize, 1, "Grafting getter from other prototype still returns desired size"); +}, "Desired size can be grafted from one prototype to another"); + +promise_test(async () => { + const {stream, controller, otherController} = getFreshInstances(); + + // Make sure the controller close method returns the correct TypeError + const enqueuedError = { name: "enqueuedError" }; + controller.error(enqueuedError); + + assert_throws_js(TypeError, () => controller.close(), "Current Global controller"); + assert_throws_js(otherGlobal.TypeError, () => otherController.close.call(controller), "Other global controller"); +}, "Closing errored stream throws object in appropriate global") + +promise_test(async () => { + const {otherController} = getFreshInstances(); + // We can enqueue chunks from multiple globals + const chunk = { name: "chunk" }; + + let controller; + const stream = new ReadableStream({ start(c) { controller = c; } }, { size() {return 1} }); + otherController.enqueue.call(controller, chunk); + otherController.enqueue.call(controller, new otherGlobal.Uint8Array(10)); + controller.enqueue(new otherGlobal.Uint8Array(10)); +}, "Can enqueue chunks from multiple globals") + +promise_test(async () => { + const {stream, controller, otherController} = getFreshInstances(); + const chunk = { name: "chunk" }; + + // We get the correct type errors out of a closed stream. + controller.close(); + assert_throws_js(TypeError, () => controller.enqueue(new otherGlobal.Uint8Array(10))); + assert_throws_js(otherGlobal.TypeError, () => otherController.enqueue.call(controller, chunk)); + assert_throws_js(otherGlobal.TypeError, () => otherController.enqueue.call(controller, new otherGlobal.Uint8Array(10))); +}, "Correct errors and globals for closed streams"); + + +promise_test(async () => { + const {stream, controller, otherController} = getFreshInstances(); + // Branches out of tee are in the correct global + + const [branch1, branch2] = otherGlobal.ReadableStream.prototype.tee.call(stream); + assert_equals(branch1 instanceof ReadableStream, true, "Branch created in this global (as stream is in this global)"); + assert_equals(branch2 instanceof ReadableStream, true, "Branch created in this global (as stream is in this global)"); +}, "Tee Branches in correct global"); +</script>
diff --git a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-datachannel.html b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-datachannel.html index 85146d31..cabe794 100644 --- a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-datachannel.html +++ b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-datachannel.html
@@ -44,7 +44,7 @@ } async function connect_pcs(pc_a, pc_b) { - pc_a.onicecandiate = function(event) { + pc_a.onicecandidate = function(event) { if (event.candidate) { pc_b.addIceCandidate(event.candidate); }
diff --git a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-lifetime.html b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-lifetime.html index 9067aa1..b640a7a2 100644 --- a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-lifetime.html +++ b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-lifetime.html
@@ -26,7 +26,7 @@ } function connect_pcs(pc_a, pc_b) { - pc_a.onicecandiate = function(event) { + pc_a.onicecandidate = function(event) { if (event.candidate) { pc_b.addIceCandidate(event.candidate); }
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/fenced-frame-mparch/wpt_internal/fenced_frame/show-directory-picker.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/fenced-frame-mparch/wpt_internal/fenced_frame/show-directory-picker.https-expected.txt deleted file mode 100644 index 9207216..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/fenced-frame-mparch/wpt_internal/fenced_frame/show-directory-picker.https-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL Directory information should not be read in the fenced frame. promise_test: Unhandled rejection with value: object "Error: button is not defined" -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/wpt_internal/digital-goods/digital-goods-interface.https.html b/third_party/blink/web_tests/wpt_internal/digital-goods/digital-goods-interface.https.html index cbb37812..5aeb9ac 100644 --- a/third_party/blink/web_tests/wpt_internal/digital-goods/digital-goods-interface.https.html +++ b/third_party/blink/web_tests/wpt_internal/digital-goods/digital-goods-interface.https.html
@@ -154,8 +154,7 @@ const response = await service.consume('token1'); assert_equals(response, undefined); }, { - // Consume should currently do "acknowledge repeatable" on mojo backend. - expectedAction: 'acknowledge:token1 true', + expectedAction: 'consume:token1', title: 'Consume a purchase token.' }); @@ -176,11 +175,15 @@ assert_equals(response[0].itemId, 'id:0'); assert_equals(response[0].purchaseToken, 'purchaseToken:0'); + // Should not have DGAPI v1 fields exposed. + assert_equals(response[0].acknowledged, undefined); assert_equals(response[1].itemId, 'id:1'); assert_equals(response[1].purchaseToken, 'purchaseToken:1'); }, {title: 'ListPurchases round trip.'}); +// TODO (crbug.com/1250604): Add ListPurchaseHistory test with blink impl. + digital_goods_test(async service => { const response1 = await service.getDetails(['id1']); assert_equals(response1.length, 1);
diff --git a/third_party/blink/web_tests/wpt_internal/digital-goods/resources/mock-digital-goods-service.js b/third_party/blink/web_tests/wpt_internal/digital-goods/resources/mock-digital-goods-service.js index a89a5cd4..82ec78e 100644 --- a/third_party/blink/web_tests/wpt_internal/digital-goods/resources/mock-digital-goods-service.js +++ b/third_party/blink/web_tests/wpt_internal/digital-goods/resources/mock-digital-goods-service.js
@@ -1,4 +1,11 @@ -import {BillingResponseCode, CreateDigitalGoodsResponseCode, DigitalGoodsFactory, DigitalGoodsFactoryReceiver, DigitalGoodsReceiver, DigitalGoodsRemote, PurchaseState} from '/gen/third_party/blink/public/mojom/digital_goods/digital_goods.mojom.m.js'; +import { + BillingResponseCode, + CreateDigitalGoodsResponseCode, + DigitalGoodsFactory, + DigitalGoodsFactoryReceiver, + DigitalGoodsReceiver, + DigitalGoodsRemote, +} from '/gen/third_party/blink/public/mojom/digital_goods/digital_goods.mojom.m.js'; class MockDigitalGoods { constructor() { @@ -66,32 +73,12 @@ }; } - async acknowledge(purchaseToken, makeAvailableAgain) { - this.actionResolve_( - 'acknowledge:' + purchaseToken + ' ' + makeAvailableAgain); - - if (purchaseToken === 'fail') { - return {code: BillingResponseCode.kError}; - } - return {code: BillingResponseCode.kOk}; - } - - makePurchaseDetails_(id) { - // purchaseDetails is a payments.mojom.PurchaseDetails. - let purchaseDetails = {}; - purchaseDetails.itemId = 'id:' + id; - purchaseDetails.purchaseToken = 'purchaseToken:' + id; - purchaseDetails.acknowledged = Boolean(id % 2); - const purchaseStates = [ - PurchaseState.kUnknown, - PurchaseState.kPurchased, - PurchaseState.kPending, - ]; - purchaseDetails.purchaseState = purchaseStates[id % 3]; - // Use idNum as seconds. |microseconds| is since Unix epoch. - purchaseDetails.purchaseTime = {microseconds: BigInt(id * 1000 * 1000)}; - purchaseDetails.willAutoRenew = Boolean(id % 2); - return purchaseDetails; + makePurchaseReference_(id) { + // purchaseReference is a payments.mojom.PurchaseReference. + let purchaseReference = {}; + purchaseReference.itemId = 'id:' + id; + purchaseReference.purchaseToken = 'purchaseToken:' + id; + return purchaseReference; } async listPurchases() { @@ -99,14 +86,37 @@ let result = []; for (let i = 0; i < 10; i++) { - result.push(this.makePurchaseDetails_(i)); + result.push(this.makePurchaseReference_(i)); } return { code: BillingResponseCode.kOk, - purchaseDetailsList: result + purchaseReferenceList: result }; } + + async listPurchaseHistory() { + this.actionResolve_('listPurchaseHistory'); + + let result = []; + for (let i = 0; i < 20; i++) { + result.push(this.makePurchaseReference_(i)); + } + + return { + code: BillingResponseCode.kOk, + purchaseReferenceList: result + }; + } + + async consume(purchaseToken) { + this.actionResolve_('consume:' + purchaseToken); + + if (purchaseToken === 'fail') { + return { code: BillingResponseCode.kError }; + } + return { code: BillingResponseCode.kOk }; + } } let mockDigitalGoods = new MockDigitalGoods();
diff --git a/third_party/blink/web_tests/wpt_internal/webgpu/cts_chrome.https.html b/third_party/blink/web_tests/wpt_internal/webgpu/cts_chrome.https.html deleted file mode 100644 index b163673..0000000 --- a/third_party/blink/web_tests/wpt_internal/webgpu/cts_chrome.https.html +++ /dev/null
@@ -1,12 +0,0 @@ -<!-- Non-WPT/Chrome-specific version of cts.https.html. --> - -<!doctype html> -<title>WebGPU CTS</title> -<meta charset=utf-8> -<link rel=help href='https://gpuweb.github.io/gpuweb/'> - -<script type=module> - import { setBaseResourcePath } from '/gen/third_party/webgpu-cts/src/common/framework/resources.js'; - setBaseResourcePath('/gen/third_party/webgpu-cts/resources'); -</script> -<script type=module src=/gen/content/test/chrome_telemetry.js></script>
diff --git a/third_party/freetype/README.chromium b/third_party/freetype/README.chromium index df7b6bc..8e106df 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-11-1-123-gd2c3bbcd8 -Revision: d2c3bbcd8ec175a750d76f0bf50162ea9e3aaf85 +Version: VER-2-11-1-124-ga960be9e5 +Revision: a960be9e5e9846e1e4e8d2254e0b405fbf84346b CPEPrefix: cpe:/a:freetype:freetype:2.11.1 License: Custom license "inspired by the BSD, Artistic, and IJG (Independent JPEG Group) licenses"
diff --git a/third_party/webgpu-cts/chrome_telemetry.js b/third_party/webgpu-cts/chrome_telemetry.js deleted file mode 100644 index d3fdf3d9..0000000 --- a/third_party/webgpu-cts/chrome_telemetry.js +++ /dev/null
@@ -1,58 +0,0 @@ -// Implements the wpt-embedded test runner (see also: wpt/cts.https.html). - -import { DefaultTestFileLoader } from '../../third_party/webgpu-cts/src/common/internal/file_loader.js'; -import { prettyPrintLog } from '../../third_party/webgpu-cts/src/common/internal/logging/log_message.js'; -import { Logger } from '../../third_party/webgpu-cts/src/common/internal/logging/logger.js'; -import { parseQuery } from '../../third_party/webgpu-cts/src/common/internal/query/parseQuery.js'; -import { parseExpectationsForTestQuery, relativeQueryString } from '../../third_party/webgpu-cts/src/common/internal/query/query.js'; -import { assert } from '../../third_party/webgpu-cts/src/common/util/util.js'; - -import { optionEnabled } from '../../third_party/webgpu-cts/src/common/runtime/helper/options.js'; -import { TestWorker } from '../../third_party/webgpu-cts/src/common/runtime/helper/test_worker.js'; - -var socket; - -async function setupWebsocket(port) { - socket = new WebSocket('ws://127.0.0.1:' + port) - socket.addEventListener('message', runCtsTestViaSocket); -} - -async function runCtsTestViaSocket(event) { - let input = JSON.parse(event.data); - runCtsTest(input['q'], input['w']); -} - -async function runCtsTest(query, use_worker) { - const workerEnabled = use_worker; - const worker = workerEnabled ? new TestWorker(false) : undefined; - - const loader = new DefaultTestFileLoader(); - const filterQuery = parseQuery(query); - const testcases = await loader.loadCases(filterQuery); - - const expectations = []; - - const log = new Logger(); - - for (const testcase of testcases) { - const name = testcase.query.toString(); - // For brevity, display the case name "relative" to the ?q= path. - const shortName = relativeQueryString(filterQuery, testcase.query) || '(case)'; - - const wpt_fn = async () => { - const [rec, res] = log.record(name); - if (worker) { - await worker.run(rec, name, expectations); - } else { - await testcase.run(rec, expectations); - } - - socket.send(JSON.stringify({'s': res.status, - 'l': (res.logs ?? []).map(prettyPrintLog)})); - }; - await wpt_fn(); - } -} - -window.runCtsTest = runCtsTest; -window.setupWebsocket = setupWebsocket
diff --git a/third_party/webgpu-cts/scripts/generate_telemetry_expectations.js b/third_party/webgpu-cts/scripts/generate_telemetry_expectations.js index 07eb945..37524b44 100644 --- a/third_party/webgpu-cts/scripts/generate_telemetry_expectations.js +++ b/third_party/webgpu-cts/scripts/generate_telemetry_expectations.js
@@ -45,11 +45,7 @@ outStream.write(' ] ') } - if (entry.w) { - outStream.write(`worker_${name}`); - } else { - outStream.write(name); - } + outStream.write(name); if (entry.e) { outStream.write(' [')
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index db6b2d4..36fbadde 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -52214,7 +52214,6 @@ <int value="-1746255521" label="NewOverviewUi:enabled"/> <int value="-1743079191" label="SyncPseudoUSSPriorityPreferences:enabled"/> <int value="-1742376665" label="SyncPseudoUSSPasswords:disabled"/> - <int value="-1741061558" label="AndroidLayoutChangeTabReparenting:enabled"/> <int value="-1740519217" label="disable-software-rasterizer"/> <int value="-1740093155" label="UnifiedMediaView:disabled"/> <int value="-1738416948" label="OptimizationHints:enabled"/> @@ -52468,6 +52467,7 @@ <int value="-1564232131" label="OmniboxOnDeviceHeadProviderNonIncognito:enabled"/> <int value="-1563280385" label="Floss:enabled"/> + <int value="-1562505975" label="AppIconInIntentChip:enabled"/> <int value="-1562065709" label="ForceEnableDevicesPage:enabled"/> <int value="-1561252720" label="AutofillCreditCardUploadFeedback:disabled"/> <int value="-1560729847" label="AutofillCacheQueryResponses:enabled"/> @@ -55638,7 +55638,6 @@ <int value="623112705" label="IPH_KeyboardAccessoryPaymentVirtualCard:disabled"/> <int value="623772100" label="EnableIncognitoWindowCounter:disabled"/> - <int value="623796513" label="AndroidLayoutChangeTabReparenting:disabled"/> <int value="624317932" label="print-pdf-as-image"/> <int value="624368375" label="OmniboxEntitySuggestions:enabled"/> <int value="624783596" label="SamePartyCookiesConsideredFirstParty:enabled"/> @@ -57546,6 +57545,7 @@ <int value="1932732886" label="OpenVR:enabled"/> <int value="1933282728" label="OmniboxUICuesForSearchHistoryMatches:enabled"/> <int value="1933376478" label="IsolatePrerenders:enabled"/> + <int value="1934470615" label="AppIconInIntentChip:disabled"/> <int value="1935405622" label="AppServiceInstanceRegistry:disabled"/> <int value="1936810062" label="WebVrVsyncAlign:enabled"/> <int value="1937357350" label="MultilingualTyping:disabled"/>
diff --git a/ui/aura/window_unittest.cc b/ui/aura/window_unittest.cc index 491ce7c..e6dafbc 100644 --- a/ui/aura/window_unittest.cc +++ b/ui/aura/window_unittest.cc
@@ -3671,7 +3671,8 @@ }; // Test for use-after-free in crbug.com/1297643. -TEST_F(WindowTest, DeleteWindowWhenCancellingTouch) { +// TODO(crbug.com/1308221): Test fails on linux-ubsan-vptr. +TEST_F(WindowTest, DISABLED_DeleteWindowWhenCancellingTouch) { TestTouchWindowDelegate window_delegate; auto window = std::make_unique<Window>(&window_delegate); window->Init(ui::LAYER_NOT_DRAWN);
diff --git a/ui/chromeos/file_manager_strings.grdp b/ui/chromeos/file_manager_strings.grdp index 7eaafc09..475397b 100644 --- a/ui/chromeos/file_manager_strings.grdp +++ b/ui/chromeos/file_manager_strings.grdp
@@ -86,6 +86,15 @@ <message name="IDS_FILE_BROWSER_MEDIA_VIEW_AUDIO_ROOT_LABEL" desc="A label for the 'Audio' root of media views."> Audio </message> + <message name="IDS_FILE_BROWSER_RECENT_VIEW_FILTER_ON" desc="Message read by Chromevox/screenreader when curtain filter in Recent become active."> + <ph name="FILTER_NAME">$1<ex>Audio</ex></ph> filter is on. + </message> + <message name="IDS_FILE_BROWSER_RECENT_VIEW_FILTER_OFF" desc="Message read by Chromevox/screenreader when curtain filter in Recent become inactive."> + <ph name="FILTER_NAME">$1<ex>Vidoes</ex></ph> filter is off. + </message> + <message name="IDS_FILE_BROWSER_RECENT_VIEW_FILTER_RESET" desc="Message read by Chromevox/screenreader when the filter in Recent is reset to All."> + Filter is reset. + </message> <message name="IDS_FILE_BROWSER_PLUGIN_VM_DIRECTORY_LABEL" desc="Parallels local directory label."> Windows files </message>
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_RECENT_VIEW_FILTER_OFF.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_RECENT_VIEW_FILTER_OFF.png.sha1 new file mode 100644 index 0000000..6ad581e4 --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_RECENT_VIEW_FILTER_OFF.png.sha1
@@ -0,0 +1 @@ +1953f08d1130eb9345af20fec9c21f6a10d970f3 \ No newline at end of file
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_RECENT_VIEW_FILTER_ON.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_RECENT_VIEW_FILTER_ON.png.sha1 new file mode 100644 index 0000000..3ca738d4 --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_RECENT_VIEW_FILTER_ON.png.sha1
@@ -0,0 +1 @@ +0590cb0437e095bf63bbfe48adbf2d84c33d98a6 \ No newline at end of file
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_RECENT_VIEW_FILTER_RESET.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_RECENT_VIEW_FILTER_RESET.png.sha1 new file mode 100644 index 0000000..50ed0be --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_RECENT_VIEW_FILTER_RESET.png.sha1
@@ -0,0 +1 @@ +cb0ee4379de89a14bab7feeaf7b60317c4b54cee \ No newline at end of file
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es.xtb b/ui/chromeos/translations/ui_chromeos_strings_es.xtb index b08e83a1..5b35f849 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_es.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
@@ -31,6 +31,7 @@ <translation id="1201402288615127009">Siguiente</translation> <translation id="1209796539517632982">Servidores de nombres automáticos</translation> <translation id="1210831758834677569">Laosiano</translation> +<translation id="1223825810409523901">Extensión de Chrome</translation> <translation id="1243314992276662751">Subir</translation> <translation id="1249250836236328755">Género</translation> <translation id="1254593899333212300">Conexión directa a Internet</translation> @@ -80,6 +81,7 @@ <translation id="166439687370499867">No se permite cambiar la configuración de las redes compartidas</translation> <translation id="1665611772925418501">No se ha podido modificar el archivo.</translation> <translation id="1673103856845176271">No se ha podido acceder al archivo por razones de seguridad.</translation> +<translation id="16762847117768727">Imagen ISO</translation> <translation id="169515659049020177">Mayús</translation> <translation id="1715848075824334077">En bici</translation> <translation id="1722487484194605434">Se están comprimiendo <ph name="NUMBER_OF_ITEMS" /> elementos...</translation> @@ -811,6 +813,7 @@ <translation id="7925686952655276919">No utilizar datos móviles para la sincronización</translation> <translation id="7928710562641958568">Expulsar dispositivo</translation> <translation id="7943385054491506837">Estados Unidos (Colemak)</translation> +<translation id="7948417415021769876">Archivo 7z</translation> <translation id="7953739707111622108">No se puede leer este dispositivo porque no se reconoce su sistema de archivos.</translation> <translation id="7969525169268594403">Esloveno</translation> <translation id="7972920761225148017">Francés (Suiza)</translation> @@ -860,6 +863,7 @@ <translation id="8372369524088641025">Clave WEP incorrecta</translation> <translation id="8372852072747894550">Griego</translation> <translation id="8386903983509584791">Búsqueda completada</translation> +<translation id="8387733224523483503"><ph name="FILE_NAME" /> extraído.</translation> <translation id="8395901698320285466">Dimensiones</translation> <translation id="8408068190360279472">Red <ph name="NETWORK_TYPE" />, conectando</translation> <translation id="8425213833346101688">Cambiar</translation> @@ -954,6 +958,7 @@ <translation id="9174050671906956834">Los elementos de la papelera se eliminan definitivamente después de 30 días.</translation> <translation id="9183302530794969518">Documentos de Google</translation> <translation id="9189836632794948435">Kazajo</translation> +<translation id="9200427192836333033"><ph name="NUMBER_OF_ITEMS" /> elementos extraídos.</translation> <translation id="9213073329713032541">Se ha iniciado la instalación correctamente.</translation> <translation id="9219103736887031265">Imágenes</translation> <translation id="9219908252191632183">Lunar</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb index 719f2b37..cb90d7f5 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
@@ -31,6 +31,7 @@ <translation id="1201402288615127009">بعدی</translation> <translation id="1209796539517632982">سرورهای نام خودکار</translation> <translation id="1210831758834677569">لائوسی</translation> +<translation id="1223825810409523901">افزونه Chrome</translation> <translation id="1243314992276662751">بارگذاری</translation> <translation id="1249250836236328755">ژانر</translation> <translation id="1254593899333212300">اتصال اینترنتی مستقیم</translation> @@ -80,6 +81,7 @@ <translation id="166439687370499867">تغییر پیکربندیهای شبکه همرسانیشده مجاز نیست</translation> <translation id="1665611772925418501">امکان تغییر این فایل وجود نداشت.</translation> <translation id="1673103856845176271">دسترسی به این فایل به دلایل امنیتی ممکن نبود.</translation> +<translation id="16762847117768727">تصویر ISO</translation> <translation id="169515659049020177">تبدیل</translation> <translation id="1715848075824334077">دوچرخهسواری</translation> <translation id="1722487484194605434">در حال فشردهسازی <ph name="NUMBER_OF_ITEMS" /> مورد…</translation> @@ -811,6 +813,7 @@ <translation id="7925686952655276919">از دادههای تلفن همراه برای همگامسازی استفاده نشود</translation> <translation id="7928710562641958568">خارج کردن دستگاه</translation> <translation id="7943385054491506837">کلماک آمریکایی</translation> +<translation id="7948417415021769876">بایگانی 7z</translation> <translation id="7953739707111622108">این دستگاه باز نمیشود زیرا سیستم فایل آن شناسایی نشد.</translation> <translation id="7969525169268594403">اسلوونیایی</translation> <translation id="7972920761225148017">فرانسوی (سوئیس)</translation> @@ -860,6 +863,7 @@ <translation id="8372369524088641025">کلید WEP نادرست</translation> <translation id="8372852072747894550">یونانی</translation> <translation id="8386903983509584791">اسکن کامل شد</translation> +<translation id="8387733224523483503"><ph name="FILE_NAME" /> استخراج شد.</translation> <translation id="8395901698320285466">ابعاد</translation> <translation id="8408068190360279472">شبکه <ph name="NETWORK_TYPE" />، درحال اتصال</translation> <translation id="8425213833346101688">تغییر</translation> @@ -954,6 +958,7 @@ <translation id="9174050671906956834">موارد موجود در «حذفشدهها» بعداز ٣۰ روز برای همیشه حذف میشود.</translation> <translation id="9183302530794969518">سندنگار Google</translation> <translation id="9189836632794948435">قزاقی</translation> +<translation id="9200427192836333033"><ph name="NUMBER_OF_ITEMS" /> مورد استخراج شد.</translation> <translation id="9213073329713032541">نصب باموفقیت شروع شد.</translation> <translation id="9219103736887031265">تصاویر</translation> <translation id="9219908252191632183">منظره سطح ماه</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ur.xtb b/ui/chromeos/translations/ui_chromeos_strings_ur.xtb index b3b2e2a..62e099cb 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ur.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
@@ -31,6 +31,7 @@ <translation id="1201402288615127009">اگلا</translation> <translation id="1209796539517632982">خود کار نام سرورز</translation> <translation id="1210831758834677569">لاؤ</translation> +<translation id="1223825810409523901">Chrome ایکسٹینشن</translation> <translation id="1243314992276662751">اپ لوڈ کریں</translation> <translation id="1249250836236328755">نوع</translation> <translation id="1254593899333212300">براہ راست انٹرنیٹ کنکشن</translation> @@ -80,6 +81,7 @@ <translation id="166439687370499867">اشتراک کردہ نیٹ ورک کنفیگریشنز تبدیل کرنے کی اجازت نہیں ہے</translation> <translation id="1665611772925418501">فائل میں ترمیم نہیں کی جا سکی۔</translation> <translation id="1673103856845176271">سیکیورٹی اسباب کی بنا پر فائل تک رسائی حاصل نہیں کی جا سکی۔</translation> +<translation id="16762847117768727">ISO تصویر</translation> <translation id="169515659049020177">Shift</translation> <translation id="1715848075824334077">بائيکنگ</translation> <translation id="1722487484194605434"><ph name="NUMBER_OF_ITEMS" /> آئٹمز کو زِپ کیا جا رہا ہے...</translation> @@ -810,6 +812,7 @@ <translation id="7925686952655276919">مطابقت پذیری کیلئے موبائل ڈیٹا کا استعمال نہ کریں</translation> <translation id="7928710562641958568">آلے کو خارج کریں</translation> <translation id="7943385054491506837">US کولمیک</translation> +<translation id="7948417415021769876">7z آرکائیو</translation> <translation id="7953739707111622108">اس آلہ کو نہیں کھولا جا سکتا ہے کیونکہ اس کے فائل سسٹم کی شناخت نہیں ہوئی۔</translation> <translation id="7969525169268594403">سلوينی</translation> <translation id="7972920761225148017">فرانسیسی (سوئٹزر لینڈ)</translation> @@ -859,6 +862,7 @@ <translation id="8372369524088641025">غلط WEP کلید</translation> <translation id="8372852072747894550">يونانی</translation> <translation id="8386903983509584791">اسکین مکمل ہو گیا</translation> +<translation id="8387733224523483503"><ph name="FILE_NAME" /> کو ایکسٹریکٹ کیا گیا۔</translation> <translation id="8395901698320285466">ڈائمینشنز</translation> <translation id="8408068190360279472"><ph name="NETWORK_TYPE" /> نیٹ ورک، منسلک ہو رہا ہے</translation> <translation id="8425213833346101688">تبدیل کریں</translation> @@ -953,6 +957,7 @@ <translation id="9174050671906956834">کوڑے دان میں موجود آئٹمز کو 30 دن کے بعد ہمیشہ کے لیے حذف کر دیا جاتا ہے۔</translation> <translation id="9183302530794969518">Google Docs</translation> <translation id="9189836632794948435">قزاخ</translation> +<translation id="9200427192836333033"><ph name="NUMBER_OF_ITEMS" /> آئٹمز کو ایکسٹریکٹ کیا گیا۔</translation> <translation id="9213073329713032541">انسٹالیشن کامیابی کے ساتھ شروع ہو گئی۔</translation> <translation id="9219103736887031265">تصاویر</translation> <translation id="9219908252191632183">قمری</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uz.xtb b/ui/chromeos/translations/ui_chromeos_strings_uz.xtb index b5157c8..3a8000ed 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_uz.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
@@ -31,6 +31,7 @@ <translation id="1201402288615127009">Keyingisi</translation> <translation id="1209796539517632982">Avtomatik nom serverlari</translation> <translation id="1210831758834677569">Lao</translation> +<translation id="1223825810409523901">Chrome kengaytmasi</translation> <translation id="1243314992276662751">Yuklash</translation> <translation id="1249250836236328755">Janri</translation> <translation id="1254593899333212300">Internetga to‘g‘ridan-to‘g‘ri ulanish</translation> @@ -80,6 +81,7 @@ <translation id="166439687370499867">Umumiy tarmoq sozlamalarini o‘zgartirib bo‘lmaydi</translation> <translation id="1665611772925418501">Faylni o‘zgartirib bo‘lmadi.</translation> <translation id="1673103856845176271">Faylga ruxsat havfsizlik maqsadlarida cheklangan.</translation> +<translation id="16762847117768727">ISO tasvir</translation> <translation id="169515659049020177">Shift</translation> <translation id="1715848075824334077">Velosiped</translation> <translation id="1722487484194605434"><ph name="NUMBER_OF_ITEMS" /> ta element arxivlanmoqda...</translation> @@ -810,6 +812,7 @@ <translation id="7925686952655276919">Sinxronlash uchun mobil internetdan foydalanmang</translation> <translation id="7928710562641958568">Qurilmani chiqarib olish</translation> <translation id="7943385054491506837">AQSH Colemak</translation> +<translation id="7948417415021769876">7z arxivi</translation> <translation id="7953739707111622108">Qurilmani ochib bo‘lmadi, chunki undagi fayl tizimi aniqlanmadi.</translation> <translation id="7969525169268594403">Slovan Tili</translation> <translation id="7972920761225148017">Fransuz (Shveytsariya)</translation> @@ -859,6 +862,7 @@ <translation id="8372369524088641025">WEP kaliti yaroqsiz</translation> <translation id="8372852072747894550">Grek</translation> <translation id="8386903983509584791">Tarmoq tekshirildi</translation> +<translation id="8387733224523483503"><ph name="FILE_NAME" /> arxivdan chiqarildi.</translation> <translation id="8395901698320285466">O‘lchamlar</translation> <translation id="8408068190360279472">Tarmoq: <ph name="NETWORK_TYPE" />, ulanmoqda</translation> <translation id="8425213833346101688">O‘zgartirish</translation> @@ -953,6 +957,7 @@ <translation id="9174050671906956834">Chiqitdondagi fayllar 30 kundan keyin butunlay tozalab tashlanadi.</translation> <translation id="9183302530794969518">Google Docs</translation> <translation id="9189836632794948435">Qozoq</translation> +<translation id="9200427192836333033"><ph name="NUMBER_OF_ITEMS" /> ta fayl arxivdan chiqarildi.</translation> <translation id="9213073329713032541">O‘rnatish muvaffaqiyatli boshlandi.</translation> <translation id="9219103736887031265">Rasmlar</translation> <translation id="9219908252191632183">Oy</translation>
diff --git a/ui/file_manager/file_manager/foreground/js/BUILD.gn b/ui/file_manager/file_manager/foreground/js/BUILD.gn index 15ae7ad..4cb0afa0 100644 --- a/ui/file_manager/file_manager/foreground/js/BUILD.gn +++ b/ui/file_manager/file_manager/foreground/js/BUILD.gn
@@ -797,6 +797,7 @@ js_library("file_type_filters_controller") { deps = [ ":directory_model", + "ui:a11y_announce", "//ui/file_manager/file_manager/common/js:metrics", "//ui/file_manager/file_manager/common/js:util", "//ui/file_manager/file_manager/externs:directory_change_event", @@ -808,6 +809,7 @@ deps = [ ":directory_model", ":file_type_filters_controller", + "ui:a11y_announce", "//chrome/test/data/webui:chai_assert", "//ui/file_manager/file_manager/common/js:files_app_entry_types", "//ui/file_manager/file_manager/common/js:metrics",
diff --git a/ui/file_manager/file_manager/foreground/js/file_manager.js b/ui/file_manager/file_manager/foreground/js/file_manager.js index bb159fc..3eed32e 100644 --- a/ui/file_manager/file_manager/foreground/js/file_manager.js +++ b/ui/file_manager/file_manager/foreground/js/file_manager.js
@@ -1289,7 +1289,7 @@ if (util.isRecentsFilterEnabled()) { this.fileTypeFiltersController_ = new FileTypeFiltersController( this.ui_.fileTypeFilterContainer, this.directoryModel_, - this.recentEntry_); + this.recentEntry_, /** @type {!A11yAnnounce} */ (this.ui_)); } return directoryTreePromise;
diff --git a/ui/file_manager/file_manager/foreground/js/file_type_filters_controller.js b/ui/file_manager/file_manager/foreground/js/file_type_filters_controller.js index 709907b..e352512a 100644 --- a/ui/file_manager/file_manager/foreground/js/file_type_filters_controller.js +++ b/ui/file_manager/file_manager/foreground/js/file_type_filters_controller.js
@@ -3,11 +3,12 @@ // found in the LICENSE file. import {metrics} from '../../common/js/metrics.js'; -import {str, util} from '../../common/js/util.js'; +import {str, strf, util} from '../../common/js/util.js'; import {DirectoryChangeEvent} from '../../externs/directory_change_event.js'; import {FakeEntry} from '../../externs/files_app_entry_interfaces.js'; import {DirectoryModel} from './directory_model.js'; +import {A11yAnnounce} from './ui/a11y_announce.js'; /** * This class controls wires file-type filter UI and the filter settings in @@ -18,8 +19,32 @@ * @param {!HTMLElement} fileTypeFilterContainer * @param {!DirectoryModel} directoryModel * @param {!FakeEntry} recentEntry + * @param {!A11yAnnounce} a11y */ - constructor(fileTypeFilterContainer, directoryModel, recentEntry) { + constructor(fileTypeFilterContainer, directoryModel, recentEntry, a11y) { + /** + * @private {Map<chrome.fileManagerPrivate.RecentFileType, string>} + * @const + */ + this.filterTypeToTranslationKeyMap_ = new Map([ + [ + chrome.fileManagerPrivate.RecentFileType.ALL, + 'MEDIA_VIEW_ALL_ROOT_LABEL' + ], + [ + chrome.fileManagerPrivate.RecentFileType.AUDIO, + 'MEDIA_VIEW_AUDIO_ROOT_LABEL' + ], + [ + chrome.fileManagerPrivate.RecentFileType.IMAGE, + 'MEDIA_VIEW_IMAGES_ROOT_LABEL' + ], + [ + chrome.fileManagerPrivate.RecentFileType.VIDEO, + 'MEDIA_VIEW_VIDEOS_ROOT_LABEL' + ], + ]); + /** * @private {!HTMLElement} * @const @@ -39,19 +64,23 @@ this.recentEntry_ = recentEntry; /** + * @private {!A11yAnnounce} + * @const + */ + this.a11y_ = a11y; + + /** * @private {!HTMLElement} * @const */ - this.allFilterButton_ = this.createFilterButton_( - str('MEDIA_VIEW_ALL_ROOT_LABEL'), - chrome.fileManagerPrivate.RecentFileType.ALL); + this.allFilterButton_ = + this.createFilterButton_(chrome.fileManagerPrivate.RecentFileType.ALL); /** * @private {!HTMLElement} * @const */ this.audioFilterButton_ = this.createFilterButton_( - str('MEDIA_VIEW_AUDIO_ROOT_LABEL'), chrome.fileManagerPrivate.RecentFileType.AUDIO); /** @@ -59,7 +88,6 @@ * @const */ this.imageFilterButton_ = this.createFilterButton_( - str('MEDIA_VIEW_IMAGES_ROOT_LABEL'), chrome.fileManagerPrivate.RecentFileType.IMAGE); /** @@ -67,7 +95,6 @@ * @const */ this.videoFilterButton_ = this.createFilterButton_( - str('MEDIA_VIEW_VIDEOS_ROOT_LABEL'), chrome.fileManagerPrivate.RecentFileType.VIDEO); this.directoryModel_.addEventListener( @@ -100,16 +127,55 @@ } /** + * Speak voice message in screen recording mode depends on the existing + * filter and the new filter type. + * + * @param {!chrome.fileManagerPrivate.RecentFileType} currentFilter + * @param {!chrome.fileManagerPrivate.RecentFileType} newFilter + */ + speakA11yMessage(currentFilter, newFilter) { + /** + * When changing button active/inactive states, the common voice message is + * "AAA filter is off. BBB filter is on.", i.e. the "off" message first + * then the "on" message. However there are some exceptions: + * * If the active filter changes from "All" to others, no need to say + * the off message. + * * If the active filter changes from others to "All", the on message will + * be a filter reset message. + */ + const isFromAllToOthers = + currentFilter === chrome.fileManagerPrivate.RecentFileType.ALL; + const isFromOthersToAll = + newFilter === chrome.fileManagerPrivate.RecentFileType.ALL; + let offMessage = strf( + 'RECENT_VIEW_FILTER_OFF', + str(this.filterTypeToTranslationKeyMap_.get(currentFilter))); + let onMessage = strf( + 'RECENT_VIEW_FILTER_ON', + str(this.filterTypeToTranslationKeyMap_.get(newFilter))); + if (isFromAllToOthers) { + offMessage = ''; + } + if (isFromOthersToAll) { + onMessage = str('RECENT_VIEW_FILTER_RESET'); + } + this.a11y_.speakA11yMessage( + offMessage ? `${offMessage} ${onMessage}` : onMessage); + } + + /** * Creates filter button's UI element. - * @param {string} label Label of the filter button. - * @param {chrome.fileManagerPrivate.RecentFileType} fileType File type filter + * + * @param {!chrome.fileManagerPrivate.RecentFileType} fileType File type * for the filter button. * @private */ - createFilterButton_(label, fileType) { + createFilterButton_(fileType) { + const label = str(this.filterTypeToTranslationKeyMap_.get(fileType)); const button = util.createChild( this.container_, 'file-type-filter-button', 'cr-button'); button.textContent = label; + button.setAttribute('aria-label', label); // Store the "RecentFileType" on the button element so we know the mapping // between the DOM element and its corresponding "RecentFileType", which // will make it easier to trigger UI change based on "RecentFileType" or @@ -157,6 +223,8 @@ buttonFilter === chrome.fileManagerPrivate.RecentFileType.ALL) { return; } + const currentFilter = this.recentEntry_.recentFileType || + chrome.fileManagerPrivate.RecentFileType.ALL; // Clicking an active button will make it inactive and make "All" // button active. const newFilter = isButtonActive ? @@ -170,6 +238,7 @@ // Refresh current directory with the updated Recent setting. // We don't need to invalidate the cached metadata for this rescan. this.directoryModel_.rescan(false); + this.speakA11yMessage(currentFilter, newFilter); this.recordFileTypeFilterUMA_(newFilter); } @@ -191,6 +260,8 @@ /** @type {!chrome.fileManagerPrivate.RecentFileType} */ ( button.getAttribute('file-type-filter')); button.classList.toggle('active', currentFilter === fileTypeFilter); + button.setAttribute( + 'aria-pressed', currentFilter === fileTypeFilter ? 'true' : 'false'); }); } }
diff --git a/ui/file_manager/file_manager/foreground/js/file_type_filters_controller_unittest.m.js b/ui/file_manager/file_manager/foreground/js/file_type_filters_controller_unittest.m.js index 66b54f0..94cc1a8c 100644 --- a/ui/file_manager/file_manager/foreground/js/file_type_filters_controller_unittest.m.js +++ b/ui/file_manager/file_manager/foreground/js/file_type_filters_controller_unittest.m.js
@@ -15,6 +15,7 @@ import {DirectoryModel} from './directory_model.js'; import {FileTypeFiltersController} from './file_type_filters_controller.js'; +import {A11yAnnounce} from './ui/a11y_announce.js'; /** * @type {!HTMLElement} @@ -56,6 +57,9 @@ MEDIA_VIEW_AUDIO_ROOT_LABEL: 'Audio', MEDIA_VIEW_IMAGES_ROOT_LABEL: 'Images', MEDIA_VIEW_VIDEOS_ROOT_LABEL: 'Videos', + RECENT_VIEW_FILTER_ON: 'on', + RECENT_VIEW_FILTER_OFF: 'off', + RECENT_VIEW_FILTER_RESET: 'reset', }); /** @@ -109,6 +113,10 @@ } } + const mockA11y = /** @type {!A11yAnnounce} */ ({ + speakA11yMessage: () => {}, + }); + // Create FileTypeFiltersController instance with dependencies. container = /** @type {!HTMLInputElement} */ (document.createElement('div')); directoryModel = MockDirectoryModel.create(); @@ -116,8 +124,8 @@ 'Recent', VolumeManagerCommon.RootType.RECENT, chrome.fileManagerPrivate.SourceRestriction.ANY_SOURCE, chrome.fileManagerPrivate.RecentFileType.ALL); - fileTypeFiltersController = - new FileTypeFiltersController(container, directoryModel, recentEntry); + fileTypeFiltersController = new FileTypeFiltersController( + container, directoryModel, recentEntry, mockA11y); // Create a directory entry which is not Recents to simulate directory change. myFilesEntry =
diff --git a/ui/file_manager/integration_tests/file_manager/recents.js b/ui/file_manager/integration_tests/file_manager/recents.js index 16095cc..21e4e5a4 100644 --- a/ui/file_manager/integration_tests/file_manager/recents.js +++ b/ui/file_manager/integration_tests/file_manager/recents.js
@@ -420,3 +420,39 @@ chrome.test.assertEq('all', focusedElement.attributes['file-type-filter']); await verifyCurrentEntries(appId, RECENT_ENTRY_SET); }; + +/** + * Tests when we switch the active filter button between All and others, the + * correct a11y messages will be announced. + */ +testcase.recentsA11yMessages = async () => { + const appId = await setupAndWaitUntilReady( + RootPath.DOWNLOADS, BASIC_LOCAL_ENTRY_SET, []); + await navigateToRecent(appId, RecentFilterType.IMAGE); + // Checks "images filter on" a11y message is announced. + let a11yMessages = + await remoteCall.callRemoteTestUtil('getA11yAnnounces', appId, []); + chrome.test.assertEq( + 'Images filter is on.', a11yMessages[a11yMessages.length - 1]); + + // Clicks the "Videos" filter button to activate it. + await remoteCall.waitAndClickElement(appId, ['[file-type-filter="video"]']); + await remoteCall.waitForElement(appId, ['[file-type-filter="video"].active']); + // Checks "video filter on" a11y message is announced. + a11yMessages = + await remoteCall.callRemoteTestUtil('getA11yAnnounces', appId, []); + chrome.test.assertEq( + 'Images filter is off. Videos filter is on.', + a11yMessages[a11yMessages.length - 1]); + + // Clicks the active "Videos" filter button again. + await remoteCall.waitAndClickElement( + appId, ['[file-type-filter="video"].active']); + await remoteCall.waitForElement(appId, ['[file-type-filter="all"].active']); + // Checks "filter reset" a11y message is announced. + a11yMessages = + await remoteCall.callRemoteTestUtil('getA11yAnnounces', appId, []); + chrome.test.assertEq( + 'Videos filter is off. Filter is reset.', + a11yMessages[a11yMessages.length - 1]); +};
diff --git a/ui/webui/resources/cr_components/chromeos/multidevice_setup/start_setup_page.js b/ui/webui/resources/cr_components/chromeos/multidevice_setup/start_setup_page.js index a5fe08da..d047d61 100644 --- a/ui/webui/resources/cr_components/chromeos/multidevice_setup/start_setup_page.js +++ b/ui/webui/resources/cr_components/chromeos/multidevice_setup/start_setup_page.js
@@ -181,13 +181,13 @@ }, /** - * @param {!chromeos.deviceSync.mojom.ConnectivityStatus} connectivityStatus + * @param {!ash.deviceSync.mojom.ConnectivityStatus} connectivityStatus * @return {string} The classes to bind to the device name option. * @private */ getDeviceOptionClass_(connectivityStatus) { return connectivityStatus === - chromeos.deviceSync.mojom.ConnectivityStatus.kOffline ? + ash.deviceSync.mojom.ConnectivityStatus.kOffline ? 'offline-device-name' : ''; }, @@ -199,7 +199,7 @@ */ getDeviceNameWithConnectivityStatus_(device) { return device.connectivityStatus === - chromeos.deviceSync.mojom.ConnectivityStatus.kOffline ? + ash.deviceSync.mojom.ConnectivityStatus.kOffline ? this.i18n( 'startSetupPageOfflineDeviceOption', device.remoteDevice.deviceName) :