diff --git a/DEPS b/DEPS index d9eeba6..0f06e109 100644 --- a/DEPS +++ b/DEPS
@@ -304,7 +304,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '170d8216f07494492b5d6e5b9b75865f32a059c5', + 'skia_revision': '158d51b34caacc8d00593618e19481bb08b3a9ad', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -312,7 +312,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': '32175d8a6dc185dd850e5c9988f208085c9c0d80', + 'angle_revision': '5f1ab1d18838821366f46890ea6b2ac8bda9381d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -375,7 +375,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': 'a404e6d108a230c0c4080a71705c6e6d7c30557a', + 'catapult_revision': '038b25e395cafe0dc95b8139295eab6441315cc8', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -383,7 +383,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': '1d38337fc19da49c4d10e3a8db54f9f1bc4a4281', + 'devtools_frontend_revision': 'b418be78a1cc482bb211150eba1bfd66d3161d56', # 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. @@ -419,11 +419,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': '3a2573e93c73bd80360601d457945338adfe8752', + 'dawn_revision': '0fa5fb16bd4d54a7d8b3c26e76f9f03c55c8cfd2', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'quiche_revision': '880e3f9826ac0e779c1e3c880488e6aaa59c008f', + 'quiche_revision': '4bdfa810532a294befb8e8048318309dabd36bd8', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ios_webkit # and whatever else without interference from each other. @@ -770,7 +770,7 @@ 'src/clank': { 'url': 'https://chrome-internal.googlesource.com/clank/internal/apps.git' + '@' + - '65e3a3879fdbbc6023431ae97ef2d64fc035ac7b', + '8d6d9fe85aa127fa8a78d5a4d6718c0cc9f9f651', 'condition': 'checkout_android and checkout_src_internal', }, @@ -1194,7 +1194,7 @@ # For Linux and Chromium OS. 'src/third_party/cros_system_api': { - 'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + '9082e05b3ec4ab6437f2b812d3aaf035cc33ef60', + 'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + 'b33e6de87391826c83fb460690dd3393f53a1eb8', 'condition': 'checkout_linux', }, @@ -1204,13 +1204,13 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '252b19866a6a9f3de069363184e5fca72280e558', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '58a343c88bda7ef0b65ad9bdf208b9307446dfbe', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), 'src/third_party/devtools-frontend-internal': { - 'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + 'dfaf7dc9e9d2c5f53e0a8789263305926c5a8b09', + 'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '4a7f0a0231b8416f70b080330ee1940b5621ac1e', 'condition': 'checkout_src_internal', }, @@ -1644,7 +1644,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '367c798358282cf6fbc9fc47a71a10b26cb6040f', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '1f3b5b40211b34322fe31a43556c8e4a028d0275', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1829,7 +1829,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '0673bb68c214c0a6c56d00b30e6600dcc9f02b93', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '1fbfde95c492b1be89c5b0404131f3069c952c58', + Var('webrtc_git') + '/src.git' + '@' + '6d3524bf1c56aab8e34aad1fc83f1b3a6f70c1aa', # Wuffs' canonical repository is at github.com/google/wuffs, but we use # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file. @@ -1856,7 +1856,7 @@ 'packages': [ { 'package': 'skia/tools/goldctl/linux-amd64', - 'version': 'GYJyu-6ZtuFKlycWv9v7SFg61ONNNobNlfP0HTV6IGQC', + 'version': 'E46nXQa9dcFdViDiaWhmdecJ-XgdTDLkrfaGq45UlsUC', }, ], 'dep_type': 'cipd', @@ -1866,7 +1866,7 @@ 'packages': [ { 'package': 'skia/tools/goldctl/windows-amd64', - 'version': 'jmDxbBm43jkyCFWbnBLpWu8GADl05R5x2kV-ttxKaUgC', + 'version': 'NlbXdAFIb05vtC14fXZwj8gK67uZHdlqPVPBbNhpU1QC', }, ], 'dep_type': 'cipd', @@ -1877,7 +1877,7 @@ 'packages': [ { 'package': 'skia/tools/goldctl/mac-amd64', - 'version': 'SVMraIHmdNooMzoPH_0l0pHjwN9wgULMxNntBbrNQyMC', + 'version': 'rfHNzii-7hBOdsmGW8WeOM_JU0csp7fQgf-6p8cPyZYC', }, ], 'dep_type': 'cipd', @@ -1888,7 +1888,7 @@ 'packages': [ { 'package': 'skia/tools/goldctl/mac-arm64', - 'version': 'CklLGpnehytIF37cw7TK3rU3GqE_NzN76x9OERwfrNMC', + 'version': 'WMPFVGxAsM-r610JEQHRGWzuoZ72se528q3xXCHUeDAC', }, ], 'dep_type': 'cipd', @@ -1899,7 +1899,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@2cfef762d453d1f568cab9ad9f9c0665c613cac0', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@86339f6a54f3cf454e216f428e4ee8ffa32dbb08', 'condition': 'checkout_src_internal', },
diff --git a/PRESUBMIT.py b/PRESUBMIT.py index 5593ad5..352296c2 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py
@@ -6447,7 +6447,6 @@ 'DidFinishNavigation', 'RenderViewReady', 'RenderViewDeleted', - 'RenderViewHostChanged', 'DOMContentLoaded', 'DidFinishLoad', ]
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index ec5d53e..f3d99562 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -2195,10 +2195,15 @@ "PerUserMetricsConsent", base::FEATURE_ENABLED_BY_DEFAULT); -// Allows Files App to find and execute tasks using App Service for Arc and -// Guest OS apps. -BASE_FEATURE(kArcAndGuestOsFileTasksUseAppService, - "ArcAndGuestOsFileTasksUseAppService", +// Allows Files App to find and execute tasks using App Service for ARC apps. +BASE_FEATURE(kArcFileTasksUseAppService, + "ArcFileTasksUseAppService", + base::FEATURE_DISABLED_BY_DEFAULT); + +// Allows Files App to find and execute tasks using App Service for Guest OS +// apps. +BASE_FEATURE(kGuestOsFileTasksUseAppService, + "GuestOsFileTasksUseAppService", base::FEATURE_DISABLED_BY_DEFAULT); //////////////////////////////////////////////////////////////////////////////// @@ -3175,8 +3180,12 @@ return base::FeatureList::IsEnabled(kWmMode); } -bool ShouldArcAndGuestOsFileTasksUseAppService() { - return base::FeatureList::IsEnabled(kArcAndGuestOsFileTasksUseAppService); +bool ShouldArcFileTasksUseAppService() { + return base::FeatureList::IsEnabled(kArcFileTasksUseAppService); +} + +bool ShouldGuestOsFileTasksUseAppService() { + return base::FeatureList::IsEnabled(kGuestOsFileTasksUseAppService); } bool ShouldShowPlayStoreInDemoMode() {
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h index c850257..17c8272 100644 --- a/ash/constants/ash_features.h +++ b/ash/constants/ash_features.h
@@ -65,7 +65,9 @@ COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kArcInputOverlayBeta); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kArcInputOverlayAlphaV2); COMPONENT_EXPORT(ASH_CONSTANTS) -BASE_DECLARE_FEATURE(kArcAndGuestOsFileTasksUseAppService); +BASE_DECLARE_FEATURE(kArcFileTasksUseAppService); +COMPONENT_EXPORT(ASH_CONSTANTS) +BASE_DECLARE_FEATURE(kGuestOsFileTasksUseAppService); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kArcManagedAdbSideloadingSupport); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kAssistAutoCorrect); @@ -875,7 +877,9 @@ COMPONENT_EXPORT(ASH_CONSTANTS) bool IsWifiSyncAndroidEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsWmModeEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) -bool ShouldArcAndGuestOsFileTasksUseAppService(); +bool ShouldArcFileTasksUseAppService(); +COMPONENT_EXPORT(ASH_CONSTANTS) +bool ShouldGuestOsFileTasksUseAppService(); // TODO(michaelpg): Remove after M71 branch to re-enable Play Store by default. COMPONENT_EXPORT(ASH_CONSTANTS) bool ShouldShowPlayStoreInDemoMode(); COMPONENT_EXPORT(ASH_CONSTANTS) bool ShouldUseV1DeviceSync();
diff --git a/ash/quick_pair/common/fake_bluetooth_adapter.cc b/ash/quick_pair/common/fake_bluetooth_adapter.cc index 744683c..f7276b6d 100644 --- a/ash/quick_pair/common/fake_bluetooth_adapter.cc +++ b/ash/quick_pair/common/fake_bluetooth_adapter.cc
@@ -4,8 +4,7 @@ #include "ash/quick_pair/common/fake_bluetooth_adapter.h" -namespace ash { -namespace quick_pair { +namespace ash::quick_pair { void FakeBluetoothAdapter::NotifyPoweredChanged(bool powered) { device::BluetoothAdapter::NotifyAdapterPoweredChanged(powered); @@ -34,6 +33,24 @@ } } +void FakeBluetoothAdapter::NotifyGattDiscoveryCompleteForService( + device::BluetoothRemoteGattService* service) { + device::BluetoothAdapter::NotifyGattDiscoveryComplete(service); +} + +void FakeBluetoothAdapter::NotifyConfirmPasskey( + uint32_t passkey, + device::BluetoothDevice* device) { + pairing_delegate_->ConfirmPasskey(device, passkey); +} + +void FakeBluetoothAdapter::DevicePairedChanged(device::BluetoothDevice* device, + bool new_paired_status) { + for (auto& observer : GetObservers()) { + observer.DevicePairedChanged(this, device, new_paired_status); + } +} + bool FakeBluetoothAdapter::IsPowered() const { return is_bluetooth_powered_; } @@ -49,13 +66,46 @@ device::BluetoothDevice* FakeBluetoothAdapter::GetDevice( const std::string& address) { + // There are a few situations where we want GetDevice to return nullptr. For + // example, if we want the Pairer to "pair by address" then GetDevice should + // return nullptr when called on the mac address. + if (get_device_returns_nullptr_) { + get_device_returns_nullptr_ = false; + return nullptr; + } + for (const auto& it : mock_devices_) { if (it->GetAddress() == address) { return it.get(); } } + return nullptr; } -} // namespace quick_pair -} // namespace ash +void FakeBluetoothAdapter::AddPairingDelegate( + device::BluetoothDevice::PairingDelegate* pairing_delegate, + PairingDelegatePriority priority) { + pairing_delegate_ = pairing_delegate; +} + +void FakeBluetoothAdapter::ConnectDevice( + const std::string& address, + const absl::optional<device::BluetoothDevice::AddressType>& address_type, + base::OnceCallback<void(device::BluetoothDevice*)> callback, + base::OnceCallback<void(const std::string&)> error_callback) { + if (connect_device_failure_) { + std::move(error_callback).Run(std::string()); + return; + } + + // If |connect_device_timeout_| is set, mimic a timeout by returning before + // calling the success callback. + if (connect_device_timeout_) { + return; + } + + std::move(callback).Run(GetDevice(address)); +} + +} // namespace ash::quick_pair
diff --git a/ash/quick_pair/common/fake_bluetooth_adapter.h b/ash/quick_pair/common/fake_bluetooth_adapter.h index 3844f09..37daf4a6f 100644 --- a/ash/quick_pair/common/fake_bluetooth_adapter.h +++ b/ash/quick_pair/common/fake_bluetooth_adapter.h
@@ -26,6 +26,24 @@ void NotifyRemoved(device::BluetoothDevice* device); + void SetConnectFailure() { connect_device_failure_ = true; } + + // This will force the next 'GetDevice()' call to return a nullptr. This is + // used to test codepaths where the adapter is not able to return the device. + void SetGetDeviceNullptr() { get_device_returns_nullptr_ = true; } + + // This will alter the 'ConnectDevice()' call to return before firing its + // callback, mimicking a timeout situation. + void SetConnectDeviceTimeout() { connect_device_timeout_ = true; } + + void NotifyGattDiscoveryCompleteForService( + device::BluetoothRemoteGattService* service); + + void NotifyConfirmPasskey(uint32_t passkey, device::BluetoothDevice* device); + + void DevicePairedChanged(device::BluetoothDevice* device, + bool new_paired_status); + bool IsPowered() const override; bool IsPresent() const override; @@ -35,11 +53,25 @@ device::BluetoothDevice* GetDevice(const std::string& address) override; + void AddPairingDelegate( + device::BluetoothDevice::PairingDelegate* pairing_delegate, + PairingDelegatePriority priority) override; + + void ConnectDevice( + const std::string& address, + const absl::optional<device::BluetoothDevice::AddressType>& address_type, + base::OnceCallback<void(device::BluetoothDevice*)> callback, + base::OnceCallback<void(const std::string&)> error_callback) override; + private: ~FakeBluetoothAdapter() = default; bool is_bluetooth_powered_ = false; bool is_bluetooth_present_ = true; + bool connect_device_failure_ = false; + bool get_device_returns_nullptr_ = false; + bool connect_device_timeout_ = false; + device::BluetoothDevice::PairingDelegate* pairing_delegate_ = nullptr; device::BluetoothAdapter::LowEnergyScanSessionHardwareOffloadingStatus hardware_offloading_status_ = device::BluetoothAdapter:: LowEnergyScanSessionHardwareOffloadingStatus::kSupported;
diff --git a/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl_unittest.cc b/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl_unittest.cc index 441c426b..2c95771 100644 --- a/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl_unittest.cc +++ b/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl_unittest.cc
@@ -11,6 +11,7 @@ #include "ash/public/cpp/test/test_system_tray_client.h" #include "ash/quick_pair/common/account_key_failure.h" #include "ash/quick_pair/common/device.h" +#include "ash/quick_pair/common/fake_bluetooth_adapter.h" #include "ash/quick_pair/common/fast_pair/fast_pair_metrics.h" #include "ash/quick_pair/common/logging.h" #include "ash/quick_pair/common/pair_failure.h" @@ -111,91 +112,10 @@ constexpr char kInitializePairingProcessInitial[] = "FastPair.InitialPairing.Initialization"; -class FakeBluetoothAdapter - : public testing::NiceMock<device::MockBluetoothAdapter> { - public: - FakeBluetoothAdapter() = default; - - // Move-only class - FakeBluetoothAdapter(const FakeBluetoothAdapter&) = delete; - FakeBluetoothAdapter& operator=(const FakeBluetoothAdapter&) = delete; - - device::BluetoothDevice* GetDevice(const std::string& address) override { - // There are a few situations where we want GetDevice to return nullptr. For - // example, if we want the Pairer to "pair by address" then GetDevice should - // return nullptr when called on the mac address. - if (get_device_returns_nullptr_ && - address == kBluetoothCanonicalizedAddress) { - get_device_returns_nullptr_ = false; - return nullptr; - } - - for (const auto& it : mock_devices_) { - if (it->GetAddress() == address) { - return it.get(); - } - } - - return nullptr; - } - - void AddPairingDelegate( - device::BluetoothDevice::PairingDelegate* pairing_delegate, - PairingDelegatePriority priority) override { - pairing_delegate_ = pairing_delegate; - } - - void NotifyGattDiscoveryCompleteForService( - device::BluetoothRemoteGattService* service) { - device::BluetoothAdapter::NotifyGattDiscoveryComplete(service); - } - - void NotifyConfirmPasskey(uint32_t passkey, device::BluetoothDevice* device) { - pairing_delegate_->ConfirmPasskey(device, passkey); - } - - void DevicePairedChanged(device::BluetoothDevice* device, - bool new_paired_status) { - for (auto& observer : GetObservers()) { - observer.DevicePairedChanged(this, device, new_paired_status); - } - } - - void ConnectDevice( - const std::string& address, - const absl::optional<device::BluetoothDevice::AddressType>& address_type, - base::OnceCallback<void(device::BluetoothDevice*)> callback, - base::OnceCallback<void(const std::string&)> error_callback) override { - if (connect_device_failure_) { - std::move(error_callback).Run(""); - return; - } - - if (connect_device_timeout_) { - return; - } - - std::move(callback).Run(GetDevice(address)); - } - - void SetConnectFailure() { connect_device_failure_ = true; } - - void SetConnectDeviceTimeout() { connect_device_timeout_ = true; } - - void SetGetDeviceNullptr() { get_device_returns_nullptr_ = true; } - - protected: - ~FakeBluetoothAdapter() override = default; - bool connect_device_failure_ = false; - bool connect_device_timeout_ = false; - bool get_device_returns_nullptr_ = false; - device::BluetoothDevice::PairingDelegate* pairing_delegate_ = nullptr; -}; - class FakeBluetoothDevice : public testing::NiceMock<device::MockBluetoothDevice> { public: - explicit FakeBluetoothDevice(FakeBluetoothAdapter* adapter) + explicit FakeBluetoothDevice(ash::quick_pair::FakeBluetoothAdapter* adapter) : testing::NiceMock<device::MockBluetoothDevice>( adapter, 0, @@ -234,7 +154,7 @@ bool IsDevicePaired() { return is_device_paired_; } protected: - FakeBluetoothAdapter* fake_adapter_; + ash::quick_pair::FakeBluetoothAdapter* fake_adapter_; bool pair_failure_ = false; bool pair_timeout_ = false; bool is_device_paired_ = false;
diff --git a/ash/system/rotation/rotation_lock_feature_pod_controller.cc b/ash/system/rotation/rotation_lock_feature_pod_controller.cc index cf2cc56..bea45bbf 100644 --- a/ash/system/rotation/rotation_lock_feature_pod_controller.cc +++ b/ash/system/rotation/rotation_lock_feature_pod_controller.cc
@@ -4,13 +4,18 @@ #include "ash/system/rotation/rotation_lock_feature_pod_controller.h" +#include <memory> + +#include "ash/constants/ash_features.h" #include "ash/constants/quick_settings_catalogs.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h" #include "ash/system/unified/feature_pod_button.h" +#include "ash/system/unified/feature_tile.h" #include "ash/system/unified/quick_settings_metrics_util.h" #include "ash/wm/tablet_mode/tablet_mode_controller.h" +#include "base/functional/bind.h" #include "ui/base/l10n/l10n_util.h" namespace ash { @@ -30,6 +35,7 @@ FeaturePodButton* RotationLockFeaturePodController::CreateButton() { DCHECK(!button_); + DCHECK(!features::IsQsRevampEnabled()); button_ = new FeaturePodButton(this); button_->DisableLabelButtonFocus(); // Init the button with invisible state. The `UpdateButton` method will update @@ -39,6 +45,26 @@ return button_; } +std::unique_ptr<FeatureTile> RotationLockFeaturePodController::CreateTile() { + DCHECK(!tile_); + DCHECK(features::IsQsRevampEnabled()); + // TODO(b/251724698): Create the tile as FeatureTile::TileType::kCompact + // after adding logic to shrink the Cast tile to compact when auto-rotation + // is allowed. Also remove the call to SetSubLabelVisibility(). + auto tile = std::make_unique<FeatureTile>( + base::BindRepeating(&RotationLockFeaturePodController::OnIconPressed, + weak_factory_.GetWeakPtr())); + tile_ = tile.get(); + // The tile label is always "Auto rotate" and there is no sub-label. + tile_->SetLabel( + l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ROTATION_LOCK_AUTO)); + tile_->SetSubLabelVisibility(false); + // UpdateTile() will update visibility. + tile_->SetVisible(false); + UpdateTile(); + return tile; +} + QsFeatureCatalogName RotationLockFeaturePodController::GetCatalogName() { return QsFeatureCatalogName::kRotationLock; } @@ -52,14 +78,23 @@ } void RotationLockFeaturePodController::OnTabletPhysicalStateChanged() { - UpdateButton(); + if (features::IsQsRevampEnabled()) { + UpdateTile(); + } else { + UpdateButton(); + } } void RotationLockFeaturePodController::OnUserRotationLockChanged() { - UpdateButton(); + if (features::IsQsRevampEnabled()) { + UpdateTile(); + } else { + UpdateButton(); + } } void RotationLockFeaturePodController::UpdateButton() { + DCHECK(!features::IsQsRevampEnabled()); // Even though auto-rotation is also supported when the device is not in a // tablet physical state but kSupportsClamshellAutoRotation is set. The "Auto // rotate" feature pod button in the system tray menu is not expected to be @@ -116,4 +151,51 @@ IDS_ASH_STATUS_TRAY_ROTATION_LOCK_TOOLTIP, tooltip_state)); } +void RotationLockFeaturePodController::UpdateTile() { + DCHECK(features::IsQsRevampEnabled()); + // Auto-rotation is also supported when the device is not in a tablet physical + // state but kSupportsClamshellAutoRotation is set. The "Auto rotate" feature + // tile in the system tray menu is not expected to be shown in the case. + const bool is_auto_rotation_allowed = + Shell::Get()->tablet_mode_controller()->is_in_tablet_physical_state(); + + if (!tile_->GetVisible() && is_auto_rotation_allowed) { + TrackVisibilityUMA(); + } + tile_->SetVisible(is_auto_rotation_allowed); + + if (!is_auto_rotation_allowed) { + return; + } + + auto* screen_orientation_controller = + Shell::Get()->screen_orientation_controller(); + const bool rotation_locked = + screen_orientation_controller->user_rotation_locked(); + const bool is_portrait = + screen_orientation_controller->IsUserLockedOrientationPortrait(); + + // The tile is toggled when auto-rotate is on. + tile_->SetToggled(!rotation_locked); + + std::u16string tooltip_state; + if (rotation_locked && is_portrait) { + tile_->SetVectorIcon(kUnifiedMenuRotationLockAutoIcon); + tooltip_state = l10n_util::GetStringUTF16( + IDS_ASH_STATUS_TRAY_ROTATION_LOCK_LOCKED_VERTICAL_TOOLTIP); + } else if (rotation_locked && !is_portrait) { + tile_->SetVectorIcon(kUnifiedMenuRotationLockAutoIcon); + tooltip_state = l10n_util::GetStringUTF16( + IDS_ASH_STATUS_TRAY_ROTATION_LOCK_LOCKED_HORIZONTAL_TOOLTIP); + } else { + // TODO(b/264428682): Custom icon for auto-rotate (non-locked) state. + tile_->SetVectorIcon(kUnifiedMenuRotationLockAutoIcon); + tooltip_state = + l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ROTATION_LOCK_AUTO_LABEL); + } + + tile_->SetTooltipText(l10n_util::GetStringFUTF16( + IDS_ASH_STATUS_TRAY_ROTATION_LOCK_TOOLTIP, tooltip_state)); +} + } // namespace ash
diff --git a/ash/system/rotation/rotation_lock_feature_pod_controller.h b/ash/system/rotation/rotation_lock_feature_pod_controller.h index 55f06de..f63697b 100644 --- a/ash/system/rotation/rotation_lock_feature_pod_controller.h +++ b/ash/system/rotation/rotation_lock_feature_pod_controller.h
@@ -10,10 +10,17 @@ #include "ash/display/screen_orientation_controller.h" #include "ash/public/cpp/tablet_mode_observer.h" #include "ash/system/unified/feature_pod_controller_base.h" +#include "base/memory/weak_ptr.h" namespace ash { +class FeaturePodButton; +class FeatureTile; + // Controller of a feature pod button that toggles rotation lock mode. +// Pre-QsRevamp the button is toggled when rotation is locked. +// Post-QsRevamp the tile is toggled when rotation is unlocked (i.e. auto-rotate +// is enabled). class ASH_EXPORT RotationLockFeaturePodController : public FeaturePodControllerBase, public TabletModeObserver, @@ -30,6 +37,7 @@ // FeaturePodControllerBase: FeaturePodButton* CreateButton() override; + std::unique_ptr<FeatureTile> CreateTile() override; QsFeatureCatalogName GetCatalogName() override; void OnIconPressed() override; @@ -41,8 +49,13 @@ private: void UpdateButton(); + void UpdateTile(); + // Owned by views hierarchy. FeaturePodButton* button_ = nullptr; + FeatureTile* tile_ = nullptr; + + base::WeakPtrFactory<RotationLockFeaturePodController> weak_factory_{this}; }; } // namespace ash
diff --git a/ash/system/rotation/rotation_lock_feature_pod_controller_unittest.cc b/ash/system/rotation/rotation_lock_feature_pod_controller_unittest.cc index 6af0121b..0e72646b1 100644 --- a/ash/system/rotation/rotation_lock_feature_pod_controller_unittest.cc +++ b/ash/system/rotation/rotation_lock_feature_pod_controller_unittest.cc
@@ -4,20 +4,27 @@ #include "ash/system/rotation/rotation_lock_feature_pod_controller.h" +#include "ash/constants/ash_features.h" #include "ash/constants/quick_settings_catalogs.h" #include "ash/shell.h" #include "ash/system/unified/feature_pod_button.h" +#include "ash/system/unified/feature_tile.h" #include "ash/test/ash_test_base.h" #include "ash/wm/tablet_mode/tablet_mode_controller.h" #include "base/command_line.h" #include "base/test/metrics/histogram_tester.h" +#include "base/test/scoped_feature_list.h" #include "ui/display/display_switches.h" namespace ash { class RotationLockFeaturePodControllerTest : public AshTestBase { public: - RotationLockFeaturePodControllerTest() = default; + RotationLockFeaturePodControllerTest() { + // Disable QsRevamp. + feature_list_.InitWithFeatures( + {}, {features::kQsRevamp, features::kQsRevampWip}); + } RotationLockFeaturePodControllerTest( const RotationLockFeaturePodControllerTest&) = delete; @@ -40,6 +47,7 @@ FeaturePodButton* button_view() const { return button_view_.get(); } private: + base::test::ScopedFeatureList feature_list_; std::unique_ptr<RotationLockFeaturePodController> controller_; std::unique_ptr<FeaturePodButton> button_view_; }; @@ -205,4 +213,125 @@ /*expected_count=*/1); } +class RotationLockFeaturePodControllerQsRevampTest : public AshTestBase { + public: + RotationLockFeaturePodControllerQsRevampTest() { + feature_list_.InitWithFeatures( + {features::kQsRevamp, features::kQsRevampWip}, {}); + } + + // AshTestBase: + void SetUp() override { + // The Display used for testing is not an internal display. This flag + // allows for DisplayManager to treat it as one. + base::CommandLine::ForCurrentProcess()->AppendSwitch( + ::switches::kUseFirstDisplayAsInternal); + AshTestBase::SetUp(); + } + + void TearDown() override { + controller_.reset(); + feature_tile_.reset(); + AshTestBase::TearDown(); + } + + protected: + void SetUpController() { + controller_ = std::make_unique<RotationLockFeaturePodController>(); + feature_tile_ = controller_->CreateTile(); + } + + base::test::ScopedFeatureList feature_list_; + std::unique_ptr<RotationLockFeaturePodController> controller_; + std::unique_ptr<FeatureTile> feature_tile_; +}; + +// Tests that when the tile is initially created it is not visible. +TEST_F(RotationLockFeaturePodControllerQsRevampTest, CreateTile) { + SetUpController(); + EXPECT_FALSE(feature_tile_->GetVisible()); +} + +// Tests that the button is created visible when tablet mode is enabled. +TEST_F(RotationLockFeaturePodControllerQsRevampTest, CreateTileInTabletMode) { + Shell::Get()->tablet_mode_controller()->SetEnabledForTest(true); + SetUpController(); + EXPECT_TRUE(feature_tile_->GetVisible()); + Shell::Get()->tablet_mode_controller()->SetEnabledForTest(false); + EXPECT_FALSE(feature_tile_->GetVisible()); +} + +// Tests that enabling tablet mode changes the tile visibility. +TEST_F(RotationLockFeaturePodControllerQsRevampTest, + TileVisibilityChangesDuringTabletMode) { + SetUpController(); + Shell::Get()->tablet_mode_controller()->SetEnabledForTest(true); + EXPECT_TRUE(feature_tile_->GetVisible()); + Shell::Get()->tablet_mode_controller()->SetEnabledForTest(false); + EXPECT_FALSE(feature_tile_->GetVisible()); +} + +TEST_F(RotationLockFeaturePodControllerQsRevampTest, OnIconPressed) { + SetUpController(); + TabletModeController* tablet_mode_controller = + Shell::Get()->tablet_mode_controller(); + ScreenOrientationController* screen_orientation_controller = + Shell::Get()->screen_orientation_controller(); + ASSERT_FALSE(screen_orientation_controller->rotation_locked()); + tablet_mode_controller->SetEnabledForTest(true); + ASSERT_TRUE(feature_tile_->GetVisible()); + ASSERT_TRUE(feature_tile_->IsToggled()); + + // Clicking the tile turns off auto-rotate and locks rotation. + controller_->OnIconPressed(); + EXPECT_TRUE(screen_orientation_controller->rotation_locked()); + EXPECT_TRUE(feature_tile_->GetVisible()); + EXPECT_FALSE(feature_tile_->IsToggled()); + + // Clicking again turns on auto-rotate and unlocks rotation. + controller_->OnIconPressed(); + EXPECT_FALSE(screen_orientation_controller->rotation_locked()); + EXPECT_TRUE(feature_tile_->GetVisible()); + EXPECT_TRUE(feature_tile_->IsToggled()); + + tablet_mode_controller->SetEnabledForTest(false); +} + +TEST_F(RotationLockFeaturePodControllerQsRevampTest, IconUMATracking) { + SetUpController(); + + // No metrics logged before clicking on any views. + auto histogram_tester = std::make_unique<base::HistogramTester>(); + histogram_tester->ExpectTotalCount("Ash.QuickSettings.FeaturePod.ToggledOn", + /*expected_count=*/0); + histogram_tester->ExpectTotalCount("Ash.QuickSettings.FeaturePod.ToggledOff", + /*expected_count=*/0); + histogram_tester->ExpectTotalCount("Ash.QuickSettings.FeaturePod.DiveIn", + /*expected_count=*/0); + + // Turn on rotation lock when pressing on the icon. + controller_->OnIconPressed(); + histogram_tester->ExpectTotalCount("Ash.QuickSettings.FeaturePod.ToggledOn", + /*expected_count=*/1); + histogram_tester->ExpectTotalCount("Ash.QuickSettings.FeaturePod.ToggledOff", + /*expected_count=*/0); + histogram_tester->ExpectTotalCount("Ash.QuickSettings.FeaturePod.DiveIn", + /*expected_count=*/0); + histogram_tester->ExpectBucketCount("Ash.QuickSettings.FeaturePod.ToggledOn", + QsFeatureCatalogName::kRotationLock, + /*expected_count=*/1); + + // Turn off rotation lock when pressing on the icon. + controller_->OnIconPressed(); + histogram_tester->ExpectTotalCount("Ash.QuickSettings.FeaturePod.ToggledOn", + /*expected_count=*/1); + histogram_tester->ExpectTotalCount("Ash.QuickSettings.FeaturePod.ToggledOff", + /*expected_count=*/1); + histogram_tester->ExpectTotalCount("Ash.QuickSettings.FeaturePod.DiveIn", + /*expected_count=*/0); + histogram_tester->ExpectBucketCount("Ash.QuickSettings.FeaturePod.ToggledOff", + QsFeatureCatalogName::kRotationLock, + /*expected_count=*/1); +} + } // namespace ash
diff --git a/ash/system/unified/feature_tile.cc b/ash/system/unified/feature_tile.cc index b786ef5..8018415 100644 --- a/ash/system/unified/feature_tile.cc +++ b/ash/system/unified/feature_tile.cc
@@ -203,6 +203,8 @@ } void FeatureTile::SetSubLabelVisibility(bool visible) { + // Only primary tiles have a sub-label. + DCHECK(sub_label_); sub_label_->SetVisible(visible); }
diff --git a/ash/system/unified/unified_system_tray_controller.cc b/ash/system/unified/unified_system_tray_controller.cc index bb4757ca..1f4e4ad 100644 --- a/ash/system/unified/unified_system_tray_controller.cc +++ b/ash/system/unified/unified_system_tray_controller.cc
@@ -674,6 +674,8 @@ feature_pod_controllers_, tiles); create_tile(std::make_unique<CastFeaturePodController>(this), feature_pod_controllers_, tiles); + create_tile(std::make_unique<RotationLockFeaturePodController>(), + feature_pod_controllers_, tiles); create_tile(std::make_unique<VPNFeaturePodController>(this), feature_pod_controllers_, tiles);
diff --git a/ash/webui/camera_app_ui/resources/js/main.ts b/ash/webui/camera_app_ui/resources/js/main.ts index 083b941..9b0b66b 100644 --- a/ash/webui/camera_app_ui/resources/js/main.ts +++ b/ash/webui/camera_app_ui/resources/js/main.ts
@@ -380,33 +380,9 @@ } })(); - const preloadImages = (async () => { - function loadImage(url: string) { - return new Promise<void>((resolve, reject) => { - const link = document.createElement('link'); - link.rel = 'preload'; - link.as = 'image'; - link.href = url; - link.onload = () => resolve(); - link.onerror = () => - reject(new Error(`Failed to preload image ${url}`)); - document.head.appendChild(link); - }); - } - const results = await Promise.allSettled( - preloadImagesList.map((name) => loadImage(`/images/${name}`))); - for (const result of results) { - if (result.status === 'rejected') { - reportError( - ErrorType.PRELOAD_IMAGE_FAILURE, ErrorLevel.ERROR, - assertInstanceof(result.reason, Error)); - break; - } - } - })(); - + preloadImages(); metrics.sendLaunchEvent({launchType}); - await Promise.all([showWindow, startCamera, preloadImages]); + await Promise.all([showWindow, startCamera]); await this.setupFeatureEffectsAndDialogs(); } @@ -481,6 +457,27 @@ } /** + * Preload images to avoid flickering. + */ +function preloadImages() { + const imagesContainer = document.createElement('div'); + imagesContainer.id = 'preload-images'; + imagesContainer.hidden = true; + for (const imageName of preloadImagesList) { + const img = document.createElement('img'); + const url = `/images/${imageName}`; + img.onerror = () => { + reportError( + ErrorType.PRELOAD_IMAGE_FAILURE, ErrorLevel.ERROR, + new Error(`Failed to preload image ${url}`)); + }; + img.src = url; + imagesContainer.appendChild(img); + } + document.body.appendChild(imagesContainer); +} + +/** * Singleton of the App object. */ let instance: App|null = null;
diff --git a/ash/webui/file_manager/resources/main.js b/ash/webui/file_manager/resources/main.js index ecce0d9a..aa2385d3 100644 --- a/ash/webui/file_manager/resources/main.js +++ b/ash/webui/file_manager/resources/main.js
@@ -3,11 +3,8 @@ // found in the LICENSE file. import './strings.m.js'; -import 'chrome://file-manager/background/js/metrics_start.js'; import './test_util_swa.js'; -import {background} from 'chrome://file-manager/background/js/file_manager_base.js'; -import {VolumeManagerImpl} from 'chrome://file-manager/background/js/volume_manager_impl.js'; import {GlitchType, reportGlitch} from 'chrome://file-manager/common/js/glitch.js'; import {loadTimeData} from 'chrome://resources/ash/common/load_time_data.m.js';
diff --git a/ash/webui/file_manager/untrusted_resources/files_img_content.css b/ash/webui/file_manager/untrusted_resources/files_img_content.css index 7a20e64..81de9026 100644 --- a/ash/webui/file_manager/untrusted_resources/files_img_content.css +++ b/ash/webui/file_manager/untrusted_resources/files_img_content.css
@@ -28,3 +28,13 @@ #content[hidden] { display: none; } + +/* TODO(files-app-dark-mode): figure out what background color should be + * used here. */ +@media (prefers-color-scheme: dark) { + html, + body, + img { + background-color: black; + } +}
diff --git a/ash/webui/file_manager/untrusted_resources/files_video_content.css b/ash/webui/file_manager/untrusted_resources/files_video_content.css index 5705ca5..f0451ff 100644 --- a/ash/webui/file_manager/untrusted_resources/files_video_content.css +++ b/ash/webui/file_manager/untrusted_resources/files_video_content.css
@@ -42,3 +42,13 @@ outline: 2px solid rgba(66, 133, 244, 0.5); outline-offset: -2px; } + +/* TODO(files-app-dark-mode): figure out what background color should be + * used here. */ +@media (prefers-color-scheme: dark) { + html, + body, + video { + background-color: black; + } +}
diff --git a/ash/webui/personalization_app/resources/css/common.css b/ash/webui/personalization_app/resources/css/common.css index 04084a7..40d1e20 100644 --- a/ash/webui/personalization_app/resources/css/common.css +++ b/ash/webui/personalization_app/resources/css/common.css
@@ -53,32 +53,6 @@ height: 100%; } -.photo-container { - box-sizing: border-box; - height: 100%; - overflow: hidden; - padding: calc(var(--personalization-app-grid-item-spacing) / 2); - width: 100%; -} - -.photo-container:focus-visible { - outline: none; -} - -/* This extra position: relative element corrects for absolutely positioned - elements ignoring parent interior padding. */ -.photo-inner-container { - align-items: center; - border-radius: var(--personalization-app-grid-item-border-radius); - cursor: pointer; - display: flex; - height: 100%; - justify-content: center; - overflow: hidden; - position: relative; - width: 100%; -} - @keyframes ripple { /* 0 ms */ from { @@ -106,92 +80,6 @@ animation: 2210ms linear var(--animation-delay, 1s) infinite ripple; } -.photo-inner-container:focus-visible, -.photo-loading-placeholder:focus-visible { - outline: 2px solid var(--cros-focus-ring-color); -} - -.photo-images-container { - background-color: var(--personalization-app-grid-item-background-color); - border-radius: 12px; - box-sizing: border-box; - display: flex; - flex-flow: row wrap; - height: 100%; - justify-content: center; - /* stop img and gradient-mask from ignoring above border-radius. */ - overflow: hidden; - position: relative; - width: 100%; -} - -.photo-images-container img { - flex: 1 1 0; - height: 100%; - min-width: 50%; - object-fit: cover; - width: 100%; -} - -.photo-images-container img.left { - clip-path: inset(0 50% 0 0); - position: absolute; -} - -.photo-images-container img.right { - clip-path: inset(0 0 0 50%); - position: absolute; -} - -@keyframes scale-up { - from { - transform: scale(0); - } - to { - transform: scale(1); - } -} - -.photo-container iron-icon[icon='personalization:checkmark'] { - --iron-icon-height: 20px; - --iron-icon-width: 20px; - animation-duration: 200ms; - animation-name: scale-up; - animation-timing-function: cubic-bezier(0.40, 0.00, 0.20, 1.00); - left: 4px; - position: absolute; - top: 4px; -} - -.photo-inner-container:not([aria-selected='true']) -iron-icon[icon='personalization:checkmark'] { - display: none; -} - -.photo-inner-container[aria-selected='true'] { - background-color: rgba(var(--cros-icon-color-prominent-rgb), - var(--personalization-app-second-tone-opacity)); - border-radius: 16px; -} - -@keyframes resize { - 100% { - height: calc(100% - 8px); - width: calc(100% - 8px); - } -} - -.photo-inner-container[aria-selected='true'] .photo-images-container { - animation-duration: 200ms; - animation-fill-mode: forwards; - animation-name: resize; - animation-timing-function: cubic-bezier(0.40, 0.00, 0.20, 1.00); -} - -.photo-inner-container[aria-selected='true'] .photo-images-border { - border: 0; -} - cr-button[aria-pressed=true], cr-button[aria-selected=true] { background-color: var(--cros-highlight-color);
diff --git a/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_collections_element.html b/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_collections_element.html index 9099f7a..89c9ab2 100644 --- a/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_collections_element.html +++ b/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_collections_element.html
@@ -1,40 +1,9 @@ <style include="common wallpaper"> - .photo-inner-container.photo-loading-failure, - .photo-inner-container[aria-disabled='true'] { - cursor: default; - } - wallpaper-grid-item[aria-disabled='true'][data-online]::part(image) { filter: grayscale(100%); opacity: 0.3; } - .local.photo-loading-failure .photo-images-container { - background-color: var(--cros-highlight-color); - } - - .local.photo-loading-failure .photo-images-container img { - flex: none; - height: 64px; - margin: 12px; - min-width: initial; - width: initial; - } - - .photo-images-container.photo-images-container-3 img, - .photo-images-container.photo-images-container-4 img { - height: 50%; - } - - .photo-text-container { - bottom: 8px; - box-sizing: border-box; - justify-content: center; - position: absolute; - width: 100%; - z-index: 2; - } - wallpaper-grid-item[google-photos-tile] .primary-text { align-items: center; bottom: calc(8px + var(--cros-annotation-2-line-height)); @@ -59,28 +28,6 @@ display: block; } - .photo-text-container p { - color: white; - font: var(--cros-annotation-2-font); - margin: 0; - max-width: 100%; - overflow: hidden; - text-align: center; - text-overflow: ellipsis; - text-shadow: var(--personalization-app-text-shadow-elevation-1); - white-space: nowrap; - } - - .photo-text-container p:empty { - /* Take layout space but be otherwise hidden to the user and ChromeVox. */ - display: inline-block; - visibility: hidden; - } - - .photo-text-container p:first-child { - font: var(--cros-headline-1-font); - } - wallpaper-grid-item[google-photos-tile][aria-disabled='true'] p { /* Text color should stay light even in dark mode. * All of the google photos tile is always light. @@ -89,27 +36,6 @@ text-shadow: none; } - .local.photo-loading-failure .photo-text-container p { - color: var(--cros-button-label-color-secondary); - text-shadow: none; - } - - .photo-gradient-mask { - background: linear-gradient(rgba(var(--google-grey-900-rgb), 0), - rgba(var(--google-grey-900-rgb), 55%)); - border-radius: 0 0 12px 12px; - height: 50%; - left: 0; - position: absolute; - top: 50%; - width: 100%; - z-index: 1; - } - - .local[aria-disabled='true'] .photo-gradient-mask { - display: none; - } - .outer-container { height: calc(var(--personalization-app-grid-item-height) + var(--personalization-app-grid-item-spacing)); @@ -144,10 +70,6 @@ --personalization-app-grid-item-background-color: var(--google-grey-200); } - img { - user-select: none; - } - </style> <template is="dom-if" if="[[hasError_]]"> <wallpaper-error></wallpaper-error> @@ -160,16 +82,14 @@ <template> <div class="outer-container"> <template is="dom-if" if="[[isLoadingTile_(item)]]" restamp> - <div class="photo-container"> - <div aria-disabled="true" - aria-label="$i18n{ariaLabelLoading}" - aria-posinset$="[[getAriaIndex_(index)]]" - class="photo-inner-container placeholder" - role="option" - style$="[[getLoadingPlaceholderAnimationDelay_(index)]]" - tabindex$="[[tabIndex]]"> - </div> - </div> + <wallpaper-grid-item + aria-label="$i18n{ariaLabelLoading}" + aria-posinset$="[[getAriaIndex_(index)]]" + disabled + index="[[index]]" + role="option" + tabindex$="[[tabIndex]]"> + </wallpaper-grid-item> </template> <template is="dom-if" if="[[isGooglePhotosTile_(item)]]"> <wallpaper-grid-item
diff --git a/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_preview_element.html b/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_preview_element.html index 45b0696..d1f2868 100644 --- a/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_preview_element.html +++ b/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_preview_element.html
@@ -52,6 +52,29 @@ ::slotted(personalization-theme) { grid-area: theme; } + + .photo-images-container { + background-color: var(--personalization-app-grid-item-background-color); + border-radius: 12px; + box-sizing: border-box; + display: flex; + flex-flow: row wrap; + height: 100%; + justify-content: center; + /* stop img and gradient-mask from ignoring above border-radius. */ + overflow: hidden; + position: relative; + width: 100%; + } + + .photo-images-container img { + flex: 1 1 0; + height: 100%; + min-width: 50%; + object-fit: cover; + width: 100%; + } + </style> <div class="preview-container" id="container"> <div id="wallpaperLabel">
diff --git a/ash/webui/shortcut_customization_ui/resources/js/accelerator_lookup_manager.ts b/ash/webui/shortcut_customization_ui/resources/js/accelerator_lookup_manager.ts index 22b9496c..a9c4cc4 100644 --- a/ash/webui/shortcut_customization_ui/resources/js/accelerator_lookup_manager.ts +++ b/ash/webui/shortcut_customization_ui/resources/js/accelerator_lookup_manager.ts
@@ -8,6 +8,29 @@ import {Accelerator, AcceleratorCategory, AcceleratorId, AcceleratorInfo, AcceleratorSource, AcceleratorState, AcceleratorSubcategory, AcceleratorType, LayoutInfo, MojoAcceleratorConfig, MojoAcceleratorInfo, MojoLayoutInfo, StandardAcceleratorInfo, TextAcceleratorInfo} from './shortcut_types.js'; import {areAcceleratorsEqual, getAccelerator, getAcceleratorId, isStandardAcceleratorInfo, isTextAcceleratorInfo} from './shortcut_utils.js'; +// Convert from Mojo types to the app types. +function createSanitizedAccelInfo(info: MojoAcceleratorInfo): + StandardAcceleratorInfo { + assert(isStandardAcceleratorInfo(info)); + const {locked, state, type, layoutProperties} = info; + const sanitizedAccelerator: Accelerator = { + keyCode: layoutProperties.standardAccelerator.accelerator.keyCode, + modifiers: layoutProperties.standardAccelerator.accelerator.modifiers, + }; + return { + locked, + state, + type, + layoutProperties: { + standardAccelerator: { + accelerator: sanitizedAccelerator, + keyDisplay: mojoString16ToString( + layoutProperties.standardAccelerator.keyDisplay), + }, + }, + }; +} + /** The name of an {@link Accelerator}, e.g. "Snap Window Left". */ type AcceleratorName = string; /** @@ -16,7 +39,10 @@ * See getKeyForLookup() in this file for the implementation details. */ type AcceleratorLookupKey = string; -type AcceleratorLookupMap = Map<AcceleratorId, StandardAcceleratorInfo[]>; +type StandardAcceleratorLookupMap = + Map<AcceleratorId, StandardAcceleratorInfo[]>; +type TextAcceleratorLookupMap = Map<AcceleratorId, TextAcceleratorInfo[]>; + type ReverseAcceleratorLookupMap = Map<AcceleratorLookupKey, AcceleratorId>; /** @@ -29,11 +55,20 @@ /** * A map with the key set to a concatenated string of the accelerator's * '{source}-{action_id}', this concatenation uniquely identifies one - * accelerator. The value is an array of AcceleratorInfo's associated to one - * accelerator. This map serves as a way to quickly look up all - * AcceleratorInfos for one accelerator. + * accelerator. The value is an array of StandardAcceleratorInfo's + * associated to one accelerator. This map serves as a way to quickly look up + * all StandardAcceleratorInfos for one accelerator. */ - private acceleratorLookup: AcceleratorLookupMap = new Map(); + private standardAcceleratorLookup: StandardAcceleratorLookupMap = new Map(); + + /** + * A map with the key set to a concatenated string of the accelerator's + * '{source}-{action_id}', this concatenation uniquely identifies one + * accelerator. The value is a TextAcceleratorInfo associated to one + * accelerator. + */ + private textAcceleratorLookup: TextAcceleratorLookupMap = new Map(); + /** * A map with the key as a stringified version of AcceleratorKey and the @@ -55,10 +90,18 @@ {keyCode: accelerator.keyCode, modifiers: accelerator.modifiers}); } - getAcceleratorInfos(source: number|string, action: number|string): + getStandardAcceleratorInfos(source: number|string, action: number|string): StandardAcceleratorInfo[] { const uuid: AcceleratorId = getAcceleratorId(source, action); - const acceleratorInfos = this.acceleratorLookup.get(uuid); + const acceleratorInfos = this.standardAcceleratorLookup.get(uuid); + assert(acceleratorInfos); + return acceleratorInfos; + } + + getTextAcceleratorInfos(source: number|string, action: number|string): + TextAcceleratorInfo[] { + const uuid: AcceleratorId = getAcceleratorId(source, action); + const acceleratorInfos = this.textAcceleratorLookup.get(uuid); assert(acceleratorInfos); return acceleratorInfos; } @@ -88,6 +131,21 @@ return this.reverseAcceleratorLookup.get(this.getKeyForLookup(accelerator)); } + initializeLookupIdForStandardAccelerator(source: string, actionId: string): + void { + const id = getAcceleratorId(source, actionId); + if (!this.standardAcceleratorLookup.has(id)) { + this.standardAcceleratorLookup.set(id, []); + } + } + + initializeLookupIdForTextAccelerator(source: string, actionId: string): void { + const id = getAcceleratorId(source, actionId); + if (!this.textAcceleratorLookup.has(id)) { + this.textAcceleratorLookup.set(id, []); + } + } + setAcceleratorLookup(acceleratorConfig: MojoAcceleratorConfig): void { for (const [source, accelInfoMap] of Object.entries(acceleratorConfig)) { // When calling Object.entries on an object with optional enum keys, @@ -97,52 +155,21 @@ continue; } for (const [actionId, accelInfos] of Object.entries(accelInfoMap)) { - const id = getAcceleratorId(source, actionId); - if (!this.acceleratorLookup.has(id)) { - this.acceleratorLookup.set(id, []); - } accelInfos.forEach((info: MojoAcceleratorInfo) => { - // Convert from Mojo types to the app types. - let sanitizedAccelInfo: StandardAcceleratorInfo|TextAcceleratorInfo; if (isTextAcceleratorInfo(info)) { - sanitizedAccelInfo = { - layoutProperties: { - textAccelerator: { - textAccelerator: [], - }, - }, - locked: info.locked, - state: info.state, - type: info.type, - }; + this.initializeLookupIdForTextAccelerator(source, actionId); + this.getTextAcceleratorInfos(source, actionId).push({...info}); } else { assert(isStandardAcceleratorInfo(info)); - const sanitizedAccelerator: Accelerator = { - keyCode: - info.layoutProperties.standardAccelerator.accelerator.keyCode, - modifiers: info.layoutProperties.standardAccelerator.accelerator - .modifiers, - }; - sanitizedAccelInfo = { - layoutProperties: { - standardAccelerator: { - accelerator: sanitizedAccelerator, - keyDisplay: mojoString16ToString( - info.layoutProperties.standardAccelerator.keyDisplay), - }, - }, - locked: info.locked, - state: info.state, - type: info.type, - }; + this.initializeLookupIdForStandardAccelerator(source, actionId); + const sanitizedAccelInfo = createSanitizedAccelInfo(info); this.reverseAcceleratorLookup.set( - this.getKeyForLookup( - info.layoutProperties.standardAccelerator.accelerator), - id); + this.getKeyForLookup(sanitizedAccelInfo.layoutProperties + .standardAccelerator.accelerator), + getAcceleratorId(source, actionId)); + this.getStandardAcceleratorInfos(source, actionId) + .push({...sanitizedAccelInfo}); } - this.getAcceleratorInfos(source, actionId) - .push(Object.assign( - {}, sanitizedAccelInfo as StandardAcceleratorInfo)); }); } } @@ -173,7 +200,7 @@ // first. this.maybeRemoveOrDisableAccelerator(getAccelerator(newAccelInfo)); - const accelInfos = this.getAcceleratorInfos(source, action); + const accelInfos = this.getStandardAcceleratorInfos(source, action); const currentAccelerator = accelInfos[foundIdx]; // Handle the edge case in which the user is attempting to replace an @@ -212,7 +239,7 @@ // Get the matching accelerator and add the new accelerator to its // container. - const accelInfos = this.getAcceleratorInfos(source, action); + const accelInfos = this.getStandardAcceleratorInfos(source, action); // Handle edge case in which the user attempts to add a disabled default // accelerator. @@ -253,7 +280,7 @@ assertNotReached(); } - const accelInfos = this.getAcceleratorInfos(source, action); + const accelInfos = this.getStandardAcceleratorInfos(source, action); const foundIdx = this.getAcceleratorInfoIndex(source, action, accelerator); // Remove accelerator from main map. accelInfos.splice(foundIdx, 1); @@ -306,7 +333,7 @@ const uuidSplit = uuid.split('-'); const source: AcceleratorSource = parseInt(uuidSplit[0], 10); const action = parseInt(uuidSplit[1], 10); - const accelInfos = this.getAcceleratorInfos(source, action); + const accelInfos = this.getStandardAcceleratorInfos(source, action); const foundIdx = this.getAcceleratorInfoIndex(source, action, accelerator); const foundAccel = accelInfos[foundIdx]; @@ -335,7 +362,7 @@ private getAcceleratorInfoIndex( source: AcceleratorSource, action: number, accelerator: Accelerator): number { - const accelInfos = this.getAcceleratorInfos(source, action); + const accelInfos = this.getStandardAcceleratorInfos(source, action); for (let i = 0; i < accelInfos.length; ++i) { if (areAcceleratorsEqual(accelerator, getAccelerator(accelInfos[i]))) { return i; @@ -353,12 +380,13 @@ return null; } - const accelInfos = this.getAcceleratorInfos(source, action); + const accelInfos = this.getStandardAcceleratorInfos(source, action); return accelInfos[foundIdx]; } reset(): void { - this.acceleratorLookup.clear(); + this.standardAcceleratorLookup.clear(); + this.textAcceleratorLookup.clear(); this.layoutInfoProvider.resetLookupMaps(); this.reverseAcceleratorLookup.clear(); }
diff --git a/ash/webui/shortcut_customization_ui/resources/js/accelerator_subsection.ts b/ash/webui/shortcut_customization_ui/resources/js/accelerator_subsection.ts index 71d0f46..d6d58d27 100644 --- a/ash/webui/shortcut_customization_ui/resources/js/accelerator_subsection.ts +++ b/ash/webui/shortcut_customization_ui/resources/js/accelerator_subsection.ts
@@ -105,7 +105,9 @@ // subsection's accelerators are kept distinct from each other. const tempAccelRowData: AcceleratorRowData[] = []; layoutInfos!.forEach((layoutInfo) => { - const acceleratorInfos = this.lookupManager.getAcceleratorInfos( + // TODO(michaelcheco): Conditionally lookup standard/text accelerators + // when text accelerator ui is implemented. + const acceleratorInfos = this.lookupManager.getStandardAcceleratorInfos( layoutInfo.source, layoutInfo.action); acceleratorInfos.filter((accel) => { // Hide accelerators that are default and disabled.
diff --git a/ash/webui/shortcut_customization_ui/resources/js/fake_data.ts b/ash/webui/shortcut_customization_ui/resources/js/fake_data.ts index b9bcd984..a7c2853 100644 --- a/ash/webui/shortcut_customization_ui/resources/js/fake_data.ts +++ b/ash/webui/shortcut_customization_ui/resources/js/fake_data.ts
@@ -6,12 +6,64 @@ import {keyToIconNameMap} from './input_key.js'; import {stringToMojoString16} from './mojo_utils.js'; -import {AcceleratorCategory, AcceleratorSource, AcceleratorState, AcceleratorSubcategory, AcceleratorType, LayoutStyle, Modifier, MojoAcceleratorConfig, MojoAcceleratorInfo, MojoLayoutInfo} from './shortcut_types.js'; +import {AcceleratorCategory, AcceleratorSource, AcceleratorState, AcceleratorSubcategory, AcceleratorType, LayoutStyle, Modifier, MojoAcceleratorConfig, MojoAcceleratorInfo, MojoLayoutInfo, TextAcceleratorPartType} from './shortcut_types.js'; const fakeTimestamp: TimeTicks = { internalValue: BigInt(0), }; +const newTabAccelerator: MojoAcceleratorInfo = { + type: AcceleratorType.kDefault, + state: AcceleratorState.kEnabled, + locked: true, + layoutProperties: { + standardAccelerator: { + keyDisplay: stringToMojoString16('t'), + accelerator: { + modifiers: Modifier.CONTROL, + keyCode: 84, + keyState: 0, + timeStamp: fakeTimestamp, + }, + }, + textAccelerator: undefined, + + }, +}; + +const cycleTabsAccelerator: MojoAcceleratorInfo = { + type: AcceleratorType.kDefault, + state: AcceleratorState.kEnabled, + locked: true, + layoutProperties: { + textAccelerator: { + textAccelerator: [ + { + text: stringToMojoString16('ctrl'), + type: TextAcceleratorPartType.kModifier, + }, + { + text: stringToMojoString16(' + '), + type: TextAcceleratorPartType.kPlainText, + }, + { + text: stringToMojoString16('1 '), + type: TextAcceleratorPartType.kKey, + }, + { + text: stringToMojoString16('through '), + type: TextAcceleratorPartType.kPlainText, + }, + { + text: stringToMojoString16('8'), + type: TextAcceleratorPartType.kKey, + }, + ], + }, + standardAccelerator: undefined, + }, +}; + export const fakeAcceleratorConfig: MojoAcceleratorConfig = { [AcceleratorSource.kAsh]: { // Snap Window Left @@ -93,24 +145,14 @@ // TODO(michaelcheco): Separate Browser and Ambient accelerators. [AcceleratorSource.kAmbient]: { // New Tab - [0]: [{ - type: AcceleratorType.kDefault, - state: AcceleratorState.kEnabled, - locked: true, - layoutProperties: { - standardAccelerator: { - keyDisplay: stringToMojoString16('t'), - accelerator: { - modifiers: Modifier.CONTROL, - keyCode: 84, - keyState: 0, - timeStamp: fakeTimestamp, - }, - }, - textAccelerator: undefined, + [0]: [newTabAccelerator], + }, +}; - }, - }], +export const fakeAmbientConfig: MojoAcceleratorConfig = { + [AcceleratorSource.kAmbient]: { + [0]: [newTabAccelerator], + [1]: [cycleTabsAccelerator], }, };
diff --git a/ash/webui/shortcut_customization_ui/resources/js/shortcut_customization_app.ts b/ash/webui/shortcut_customization_ui/resources/js/shortcut_customization_app.ts index 1a21768d..be80f5a 100644 --- a/ash/webui/shortcut_customization_ui/resources/js/shortcut_customization_app.ts +++ b/ash/webui/shortcut_customization_ui/resources/js/shortcut_customization_app.ts
@@ -22,7 +22,7 @@ import {ShowEditDialogEvent} from './accelerator_row.js'; import {getShortcutProvider} from './mojo_interface_provider.js'; import {getTemplate} from './shortcut_customization_app.html.js'; -import {AcceleratorInfo, AcceleratorSource, AcceleratorState, AcceleratorType, MojoAcceleratorConfig, MojoLayoutInfo, ShortcutProviderInterface} from './shortcut_types.js'; +import {AcceleratorInfo, AcceleratorSource, AcceleratorState, AcceleratorType, MojoAcceleratorConfig, MojoLayoutInfo, ShortcutProviderInterface, StandardAcceleratorInfo} from './shortcut_types.js'; import {getCategoryNameStringId, isCustomizationDisabled} from './shortcut_utils.js'; export interface ShortcutCustomizationAppElement { @@ -167,8 +167,8 @@ this.$.navigationPanel.notifyEvent('updateSubsections'); const updatedAccels = this.acceleratorlookupManager - .getAcceleratorInfos(e.detail.source, e.detail.action) - ?.filter((accel) => { + .getStandardAcceleratorInfos(e.detail.source, e.detail.action) + ?.filter((accel: StandardAcceleratorInfo) => { // Hide accelerators that are default and disabled. return !( accel.type === AcceleratorType.kDefault &&
diff --git a/ash/webui/shortcut_customization_ui/resources/js/shortcut_types.ts b/ash/webui/shortcut_customization_ui/resources/js/shortcut_types.ts index 2b76742..e2c9199 100644 --- a/ash/webui/shortcut_customization_ui/resources/js/shortcut_types.ts +++ b/ash/webui/shortcut_customization_ui/resources/js/shortcut_types.ts
@@ -28,6 +28,8 @@ } export type TextAcceleratorPart = AcceleratorInfoTypes.TextAcceleratorPart; +export type TextAcceleratorPartType = + AcceleratorInfoTypes.TextAcceleratorPartType; export const TextAcceleratorPartType = AcceleratorInfoTypes.TextAcceleratorPartType;
diff --git a/base/observer_list_unittest.cc b/base/observer_list_unittest.cc index 90d03a58..d75b7d9 100644 --- a/base/observer_list_unittest.cc +++ b/base/observer_list_unittest.cc
@@ -553,7 +553,7 @@ explicit ListDestructor(ObserverListType* list) : list_(list) {} ~ListDestructor() override = default; - void Observe(int x) override { delete list_; } + void Observe(int x) override { delete list_.ExtractAsDangling(); } private: raw_ptr<ObserverListType> list_; @@ -819,8 +819,8 @@ ObserverListFoo observer_list; Adder a(1), b(-1); + Disrupter disrupter2(&observer_list, true); // Must outlive `disrupter1`. Disrupter disrupter1(&observer_list, true); - Disrupter disrupter2(&observer_list, true); // Disrupt itself and another one. disrupter1.SetDoomed(&disrupter2); @@ -848,8 +848,8 @@ ObserverListFoo observer_list; Adder a(1), b(-1); + Disrupter disrupter2(&observer_list, true); // Must outlive `disrupter1`. Disrupter disrupter1(&observer_list, true); - Disrupter disrupter2(&observer_list, true); // Disrupt itself and another one. disrupter1.SetDoomed(&disrupter2);
diff --git a/base/process/process_mac.cc b/base/process/process_mac.cc index c46f6f6..326b22b8 100644 --- a/base/process/process_mac.cc +++ b/base/process/process_mac.cc
@@ -14,17 +14,11 @@ #include <memory> #include "base/cxx17_backports.h" -#include "base/feature_list.h" #include "base/mac/mach_logging.h" #include "base/memory/free_deleter.h" namespace base { -// Enables backgrounding hidden renderers on Mac. -BASE_FEATURE(kMacAllowBackgroundingProcesses, - "MacAllowBackgroundingProcesses", - FEATURE_DISABLED_BY_DEFAULT); - Time Process::CreationTime() const { int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, Pid()}; size_t len = 0; @@ -39,7 +33,7 @@ } bool Process::CanBackgroundProcesses() { - return FeatureList::IsEnabled(kMacAllowBackgroundingProcesses); + return true; } bool Process::IsProcessBackgrounded(PortProvider* port_provider) const {
diff --git a/base/test/values_test_util.cc b/base/test/values_test_util.cc index 8b646786..6587b02 100644 --- a/base/test/values_test_util.cc +++ b/base/test/values_test_util.cc
@@ -217,6 +217,12 @@ IsJsonMatcher::IsJsonMatcher(const base::Value& value) : expected_value_(value.Clone()) {} +IsJsonMatcher::IsJsonMatcher(const base::Value::Dict& value) + : expected_value_(base::Value(value.Clone())) {} + +IsJsonMatcher::IsJsonMatcher(const base::Value::List& value) + : expected_value_(base::Value(value.Clone())) {} + IsJsonMatcher::IsJsonMatcher(const IsJsonMatcher& other) : expected_value_(other.expected_value_.Clone()) {}
diff --git a/base/test/values_test_util.h b/base/test/values_test_util.h index 33a9bb9..b804fab 100644 --- a/base/test/values_test_util.h +++ b/base/test/values_test_util.h
@@ -59,6 +59,8 @@ public: explicit IsJsonMatcher(base::StringPiece json); explicit IsJsonMatcher(const base::Value& value); + explicit IsJsonMatcher(const base::Value::Dict& value); + explicit IsJsonMatcher(const base::Value::List& value); IsJsonMatcher(const IsJsonMatcher& other); ~IsJsonMatcher();
diff --git a/base/time/time.h b/base/time/time.h index 7f7b07b..6f435bc 100644 --- a/base/time/time.h +++ b/base/time/time.h
@@ -411,11 +411,15 @@ static constexpr int64_t kNanosecondsPerSecond = kNanosecondsPerMicrosecond * kMicrosecondsPerSecond; - // Returns true if this object has not been initialized. + // TODO(https://crbug.com/1392437): Remove concept of "null" from base::Time. // // Warning: Be careful when writing code that performs math on time values, // since it's possible to produce a valid "zero" result that should not be - // interpreted as a "null" value. + // interpreted as a "null" value. If you find yourself using this method or + // the zero-arg default constructor, please consider using an optional to + // express the null state. + // + // Returns true if this object has not been initialized (probably). constexpr bool is_null() const { return us_ == 0; } // Returns true if this object represents the maximum/minimum time. @@ -591,6 +595,14 @@ bool HasValidValues() const; }; + // TODO(https://crbug.com/1392437): Remove concept of "null" from base::Time. + // + // Warning: Be careful when writing code that performs math on time values, + // since it's possible to produce a valid "zero" result that should not be + // interpreted as a "null" value. If you find yourself using this constructor + // or the is_null() method, please consider using an optional to express the + // null state. + // // Contains the NULL time. Use Time::Now() to get the current time. constexpr Time() : TimeBase(0) {}
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1 index e91933d..1c918b5 100644 --- a/build/fuchsia/linux_internal.sdk.sha1 +++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@ -11.20230104.2.1 +11.20230104.3.1
diff --git a/chrome/VERSION b/chrome/VERSION index d1f3b72..4d8237c 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=111 MINOR=0 -BUILD=5520 +BUILD=5521 PATCH=0
diff --git a/chrome/android/features/tab_ui/java/res/layout/bottom_tab_strip_toolbar.xml b/chrome/android/features/tab_ui/java/res/layout/bottom_tab_strip_toolbar.xml index f52b7d3..07f44b6 100644 --- a/chrome/android/features/tab_ui/java/res/layout/bottom_tab_strip_toolbar.xml +++ b/chrome/android/features/tab_ui/java/res/layout/bottom_tab_strip_toolbar.xml
@@ -26,7 +26,8 @@ android:id="@+id/toolbar_left_button" style="@style/BottomToolbarButton" android:src="@drawable/ic_expand_less_black_24dp" - app:tint="@color/default_icon_color_tint_list" /> + app:tint="@color/default_icon_color_tint_list" + tools:ignore="ContentDescription" /> <FrameLayout android:id="@+id/toolbar_container_view" android:layout_width="0dp" @@ -36,7 +37,8 @@ android:id="@+id/toolbar_right_button" style="@style/BottomToolbarButton" android:src="@drawable/plus" - app:tint="@color/default_icon_color_tint_list" /> + app:tint="@color/default_icon_color_tint_list" + tools:ignore="ContentDescription" /> </LinearLayout> <org.chromium.ui.widget.ChromeImageView android:id="@+id/tab_strip_fading_edge_start"
diff --git a/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml b/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml index 12d323b..dddf214f 100644 --- a/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml +++ b/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml
@@ -5,14 +5,16 @@ found in the LICENSE file. --> <merge xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> <org.chromium.ui.widget.ChromeImageView android:id="@+id/background_view" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/tab_grid_card_background" android:layout_margin="@dimen/tab_grid_card_margin" - android:visibility="gone"/> + android:visibility="gone" + android:importantForAccessibility="no" /> <FrameLayout android:id="@+id/content_view" android:layout_width="match_parent" @@ -98,6 +100,7 @@ android:layout_margin="@dimen/tab_list_card_action_button_margin" android:scaleType="center" android:layout_gravity="end" - android:tint="@macro/default_icon_color"/> + android:tint="@macro/default_icon_color" + tools:ignore="ContentDescription" /> </FrameLayout> </merge>
diff --git a/chrome/android/java/res/layout/send_tab_to_self_device_picker_item.xml b/chrome/android/java/res/layout/send_tab_to_self_device_picker_item.xml index fc03006..22105ba 100644 --- a/chrome/android/java/res/layout/send_tab_to_self_device_picker_item.xml +++ b/chrome/android/java/res/layout/send_tab_to_self_device_picker_item.xml
@@ -21,7 +21,8 @@ android:layout_gravity="start" android:paddingTop="20dp" android:gravity="center" - android:background="@android:color/transparent" /> + android:background="@android:color/transparent" + android:importantForAccessibility="no" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"
diff --git a/chrome/android/java/res/layout/share_sheet_content.xml b/chrome/android/java/res/layout/share_sheet_content.xml index 84d53de..e6a2d63 100644 --- a/chrome/android/java/res/layout/share_sheet_content.xml +++ b/chrome/android/java/res/layout/share_sheet_content.xml
@@ -81,7 +81,8 @@ android:visibility="gone" android:clickable="true" android:focusable="true" - android:background="?attr/selectableItemBackground"/> + android:background="?attr/selectableItemBackground" + tools:ignore="ContentDescription" /> </RelativeLayout> <View
diff --git a/chrome/android/java/res/layout/sheet_tab_toolbar.xml b/chrome/android/java/res/layout/sheet_tab_toolbar.xml index a23f8004..cedf36d 100644 --- a/chrome/android/java/res/layout/sheet_tab_toolbar.xml +++ b/chrome/android/java/res/layout/sheet_tab_toolbar.xml
@@ -102,7 +102,8 @@ android:layout_alignStart="@id/title" android:layout_below="@id/title" android:layout_marginTop="3dp" - app:tint="@macro/default_icon_color" /> + app:tint="@macro/default_icon_color" + tools:ignore="ContentDescription" /> <TextView android:id="@+id/origin"
diff --git a/chrome/android/java/res/layout/shopping_filter_row.xml b/chrome/android/java/res/layout/shopping_filter_row.xml index 73396c8..74f7f99 100644 --- a/chrome/android/java/res/layout/shopping_filter_row.xml +++ b/chrome/android/java/res/layout/shopping_filter_row.xml
@@ -13,7 +13,8 @@ <org.chromium.ui.widget.ChromeImageView android:id="@+id/start_icon" android:src="@drawable/price_tracking_enabled_outline" - style="@style/ListItemStartIcon" /> + style="@style/ListItemStartIcon" + android:importantForAccessibility="no" /> <TextView android:id="@+id/title" @@ -28,6 +29,7 @@ <org.chromium.ui.widget.ChromeImageView android:id="@+id/end_icon" android:src="@drawable/outline_chevron_right_24dp" - style="@style/ListItemEndIcon" /> + style="@style/ListItemEndIcon" + android:importantForAccessibility="no" /> </LinearLayout> \ No newline at end of file
diff --git a/chrome/android/java/res/layout/update_menu_item.xml b/chrome/android/java/res/layout/update_menu_item.xml index 149a7a121..ec8c328 100644 --- a/chrome/android/java/res/layout/update_menu_item.xml +++ b/chrome/android/java/res/layout/update_menu_item.xml
@@ -44,6 +44,7 @@ android:layout_height="match_parent" android:layout_gravity="end" android:gravity="center_vertical" - app:tint="@null" /> + app:tint="@null" + android:importantForAccessibility="no" /> </LinearLayout> \ No newline at end of file
diff --git a/chrome/android/java/res/layout/virtual_card_enrollment_dialog.xml b/chrome/android/java/res/layout/virtual_card_enrollment_dialog.xml index c2d47804..e68dba8 100644 --- a/chrome/android/java/res/layout/virtual_card_enrollment_dialog.xml +++ b/chrome/android/java/res/layout/virtual_card_enrollment_dialog.xml
@@ -18,7 +18,8 @@ android:layout_height="wrap_content" android:layout_alignParentTop="true" android:src="@drawable/virtual_card_enrollment_illustration" - android:layout_centerHorizontal="true" /> + android:layout_centerHorizontal="true" + android:importantForAccessibility="no" /> <androidx.appcompat.widget.DialogTitle android:id="@+id/dialog_title" @@ -46,7 +47,8 @@ android:layout_alignTop="@id/virtual_card_text" android:layout_alignBottom="@id/credit_card_identifier" android:layout_marginEnd="@dimen/virtual_card_enrollment_dialog_card_container_issuer_icon_margin_end" - tools:src="@drawable/infobar_autofill_cc" /> + tools:src="@drawable/infobar_autofill_cc" + android:importantForAccessibility="no" /> <TextView android:id="@+id/virtual_card_text"
diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc index 694c825d..f5f7c0b9 100644 --- a/chrome/app/chrome_main_delegate.cc +++ b/chrome/app/chrome_main_delegate.cc
@@ -956,10 +956,6 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) ash::ConfigureSwap(); ash::InitializeKstaled(); - - // If we're in an experimental group that locks the browser text we will do - // that now. - ash::LockMainProgramText(); #endif }
diff --git a/chrome/browser/apps/app_preload_service/web_app_preload_installer.cc b/chrome/browser/apps/app_preload_service/web_app_preload_installer.cc index 412455fd..e162c27 100644 --- a/chrome/browser/apps/app_preload_service/web_app_preload_installer.cc +++ b/chrome/browser/apps/app_preload_service/web_app_preload_installer.cc
@@ -126,12 +126,10 @@ weak_ptr_factory_.GetWeakPtr(), app, std::move(callback))); } -// TODO(b/263437253): fix up once supporting libraries are in place. std::string WebAppPreloadInstaller::GetAppId( const PreloadAppDefinition& app) const { // The app's "Web app manifest ID" is the equivalent of the unhashed app ID. - // return web_app::GenerateAppIdFromUnhashed(app.GetWebAppManifestId()); - return ""; + return web_app::GenerateAppIdFromUnhashed(app.GetWebAppManifestId().spec()); } void WebAppPreloadInstaller::InstallAppImpl(
diff --git a/chrome/browser/apps/app_preload_service/web_app_preload_installer_unittest.cc b/chrome/browser/apps/app_preload_service/web_app_preload_installer_unittest.cc index 2461e18..5a5a1d0 100644 --- a/chrome/browser/apps/app_preload_service/web_app_preload_installer_unittest.cc +++ b/chrome/browser/apps/app_preload_service/web_app_preload_installer_unittest.cc
@@ -126,11 +126,13 @@ ASSERT_TRUE(found); } -// TODO(b/263437253): fix up once supporting libraries are in place. -TEST_F(WebAppPreloadInstallerTest, DISABLED_GetAppId) { +TEST_F(WebAppPreloadInstallerTest, GetAppId) { WebAppPreloadInstaller installer(profile()); proto::AppProvisioningListAppsResponse_App app; + app.set_package_id("web:https://cursive.apps.chrome/"); + app.mutable_web_extras()->set_original_manifest_url( + "https://cursive.apps.chrome/manifest.json"); ASSERT_EQ(installer.GetAppId(PreloadAppDefinition(app)), "apignacaigpffemhdbhmnajajaccbckh");
diff --git a/chrome/browser/apps/app_service/publishers/arc_apps.cc b/chrome/browser/apps/app_service/publishers/arc_apps.cc index a2e85b4a..a35f9ec 100644 --- a/chrome/browser/apps/app_service/publishers/arc_apps.cc +++ b/chrome/browser/apps/app_service/publishers/arc_apps.cc
@@ -126,25 +126,6 @@ UpdateIconImage(std::move(callback), std::move(iv)); } -// TODO(crbug.com/1253250): Remove and use GetPermissionType -apps::mojom::PermissionType GetAppServicePermissionType( - arc::mojom::AppPermission arc_permission_type) { - switch (arc_permission_type) { - case arc::mojom::AppPermission::CAMERA: - return apps::mojom::PermissionType::kCamera; - case arc::mojom::AppPermission::LOCATION: - return apps::mojom::PermissionType::kLocation; - case arc::mojom::AppPermission::MICROPHONE: - return apps::mojom::PermissionType::kMicrophone; - case arc::mojom::AppPermission::NOTIFICATIONS: - return apps::mojom::PermissionType::kNotifications; - case arc::mojom::AppPermission::CONTACTS: - return apps::mojom::PermissionType::kContacts; - case arc::mojom::AppPermission::STORAGE: - return apps::mojom::PermissionType::kStorage; - } -} - apps::PermissionType GetPermissionType( arc::mojom::AppPermission arc_permission_type) { switch (arc_permission_type) { @@ -191,23 +172,6 @@ } } -// TODO(crbug.com/1253250): Remove and use CreatePermissions -void UpdateAppPermissions( - const base::flat_map<arc::mojom::AppPermission, - arc::mojom::PermissionStatePtr>& new_permissions, - std::vector<apps::mojom::PermissionPtr>* permissions) { - for (const auto& new_permission : new_permissions) { - auto permission = apps::mojom::Permission::New(); - permission->permission_type = - GetAppServicePermissionType(new_permission.first); - permission->value = apps::mojom::PermissionValue::NewBoolValue( - new_permission.second->granted); - permission->is_managed = new_permission.second->managed; - - permissions->push_back(std::move(permission)); - } -} - apps::Permissions CreatePermissions( const base::flat_map<arc::mojom::AppPermission, arc::mojom::PermissionStatePtr>& new_permissions) { @@ -539,18 +503,6 @@ } } -// TODO(crbug.com/1253250): Remove and use GetResizeLocked. -apps::mojom::OptionalBool IsResizeLocked(ArcAppListPrefs* prefs, - const std::string& app_id) { - auto resize_locked = GetResizeLocked(prefs, app_id); - if (!resize_locked.has_value()) { - return apps::mojom::OptionalBool::kUnknown; - } - - return resize_locked.value() ? apps::mojom::OptionalBool::kTrue - : apps::mojom::OptionalBool::kFalse; -} - bool IsWebAppShellPackage(Profile* profile, const ArcAppListPrefs::AppInfo& app_info) { ash::ApkWebAppService* apk_web_app_service = @@ -606,6 +558,30 @@ return intent_filters; } +apps::InstallReason GetInstallReason(const ArcAppListPrefs* prefs, + const std::string& app_id, + const ArcAppListPrefs::AppInfo& app_info) { + // Sticky represents apps that cannot be uninstalled and are installed by the + // system. + if (app_info.sticky) { + return apps::InstallReason::kSystem; + } + + if (prefs->IsOem(app_id)) { + return apps::InstallReason::kOem; + } + + if (prefs->IsDefault(app_id)) { + return apps::InstallReason::kDefault; + } + + if (prefs->IsControlledByPolicy(app_info.package_name)) { + return apps::InstallReason::kPolicy; + } + + return apps::InstallReason::kUser; +} + } // namespace namespace apps { @@ -628,12 +604,6 @@ return; } - mojo::Remote<apps::mojom::AppService>& app_service = proxy()->AppService(); - if (!base::FeatureList::IsEnabled(kStopMojomAppService) && - !app_service.is_bound()) { - return; - } - // Make some observee-observer connections. ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_); if (!prefs) { @@ -672,8 +642,6 @@ web_apk_manager_ = std::make_unique<apps::WebApkManager>(profile_); } - PublisherBase::Initialize(app_service, apps::mojom::AppType::kArc); - RegisterPublisher(AppType::kArc); std::vector<AppPtr> apps; @@ -1069,27 +1037,6 @@ : arc::mojom::ArcResizeLockState::OFF); } -void ArcApps::Connect( - mojo::PendingRemote<apps::mojom::Subscriber> subscriber_remote, - apps::mojom::ConnectOptionsPtr opts) { - std::vector<apps::mojom::AppPtr> apps; - ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_); - if (prefs) { - for (const auto& app_id : prefs->GetAppIds()) { - std::unique_ptr<ArcAppListPrefs::AppInfo> app_info = - prefs->GetApp(app_id); - if (app_info) { - apps.push_back(Convert(prefs, app_id, *app_info)); - } - } - } - mojo::Remote<apps::mojom::Subscriber> subscriber( - std::move(subscriber_remote)); - subscriber->OnApps(std::move(apps), apps::mojom::AppType::kArc, - true /* should_notify_initialized */); - subscribers_.Add(std::move(subscriber)); -} - void ArcApps::PauseApp(const std::string& app_id) { if (paused_apps_.MaybeAddApp(app_id)) { SetIconEffect(app_id); @@ -1163,7 +1110,6 @@ const ArcAppListPrefs::AppInfo& app_info) { ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_); if (prefs && !IsWebAppShellPackage(profile_, app_info)) { - PublisherBase::Publish(Convert(prefs, app_id, app_info), subscribers_); AppPublisher::Publish(CreateApp(prefs, app_id, app_info)); } } @@ -1175,7 +1121,6 @@ return; } - PublisherBase::Publish(Convert(prefs, app_id, app_info), subscribers_); AppPublisher::Publish(CreateApp(prefs, app_id, app_info)); } @@ -1190,12 +1135,6 @@ app_id_to_task_ids_.erase(app_id); } - apps::mojom::AppPtr mojom_app = apps::mojom::App::New(); - mojom_app->app_type = apps::mojom::AppType::kArc; - mojom_app->app_id = app_id; - mojom_app->readiness = apps::mojom::Readiness::kUninstalledByUser; - PublisherBase::Publish(std::move(mojom_app), subscribers_); - auto app = std::make_unique<App>(AppType::kArc, app_id); app->readiness = Readiness::kUninstalledByUser; AppPublisher::Publish(std::move(app)); @@ -1208,12 +1147,6 @@ void ArcApps::OnAppNameUpdated(const std::string& app_id, const std::string& name) { - apps::mojom::AppPtr mojom_app = apps::mojom::App::New(); - mojom_app->app_type = apps::mojom::AppType::kArc; - mojom_app->app_id = app_id; - mojom_app->name = name; - PublisherBase::Publish(std::move(mojom_app), subscribers_); - auto app = std::make_unique<App>(AppType::kArc, app_id); app->name = name; AppPublisher::Publish(std::move(app)); @@ -1228,11 +1161,6 @@ if (!app_info || IsWebAppShellPackage(profile_, *app_info)) { return; } - apps::mojom::AppPtr mojom_app = apps::mojom::App::New(); - mojom_app->app_type = apps::mojom::AppType::kArc; - mojom_app->app_id = app_id; - mojom_app->last_launch_time = app_info->last_launch_time; - PublisherBase::Publish(std::move(mojom_app), subscribers_); auto app = std::make_unique<App>(AppType::kArc, app_id); app->last_launch_time = app_info->last_launch_time; @@ -1262,8 +1190,6 @@ for (const auto& app_id : prefs->GetAppIds()) { std::unique_ptr<ArcAppListPrefs::AppInfo> app_info = prefs->GetApp(app_id); if (app_info && !IsWebAppShellPackage(profile_, *app_info)) { - PublisherBase::Publish(Convert(prefs, app_id, *app_info, update_icon), - subscribers_); AppPublisher::Publish(CreateApp(prefs, app_id, *app_info, update_icon)); } } @@ -1304,9 +1230,6 @@ auto GetAppInfoAndPublish = [prefs, this](std::string app_id) { std::unique_ptr<ArcAppListPrefs::AppInfo> app_info = prefs->GetApp(app_id); if (app_info) { - PublisherBase::Publish( - Convert(prefs, app_id, *app_info, false /* update_icon */), - subscribers_); AppPublisher::Publish( CreateApp(prefs, app_id, *app_info, false /* update_icon */)); } @@ -1333,13 +1256,6 @@ const std::vector<arc::mojom::SupportedLinksPackagePtr>& added, const std::vector<arc::mojom::SupportedLinksPackagePtr>& removed, arc::mojom::SupportedLinkChangeSource source) { - if (!base::FeatureList::IsEnabled(kStopMojomAppService)) { - mojo::Remote<apps::mojom::AppService>& app_service = proxy()->AppService(); - if (!app_service.is_bound()) { - return; - } - } - ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_); if (!prefs) { return; @@ -1529,37 +1445,11 @@ is_placeholder_icon, icon_effects, std::move(callback)); } -apps::mojom::InstallReason GetInstallReason( - const ArcAppListPrefs* prefs, - const std::string& app_id, - const ArcAppListPrefs::AppInfo& app_info) { - // Sticky represents apps that cannot be uninstalled and are installed by the - // system. - if (app_info.sticky) { - return apps::mojom::InstallReason::kSystem; - } - - if (prefs->IsOem(app_id)) { - return apps::mojom::InstallReason::kOem; - } - - if (prefs->IsDefault(app_id)) { - return apps::mojom::InstallReason::kDefault; - } - - if (prefs->IsControlledByPolicy(app_info.package_name)) { - return apps::mojom::InstallReason::kPolicy; - } - - return apps::mojom::InstallReason::kUser; -} - AppPtr ArcApps::CreateApp(ArcAppListPrefs* prefs, const std::string& app_id, const ArcAppListPrefs::AppInfo& app_info, bool update_icon) { - auto install_reason = ConvertMojomInstallReasonToInstallReason( - GetInstallReason(prefs, app_id, app_info)); + auto install_reason = GetInstallReason(prefs, app_id, app_info); auto app = AppPublisher::MakeApp( AppType::kArc, app_id, app_info.suspended ? Readiness::kDisabledByPolicy : Readiness::kReady, @@ -1630,83 +1520,6 @@ app->app_size_in_bytes = app_info.app_size_in_bytes; app->data_size_in_bytes = app_info.data_size_in_bytes; - // TODO(crbug.com/1253250): Add other fields for the App struct. - return app; -} - -apps::mojom::AppPtr ArcApps::Convert(ArcAppListPrefs* prefs, - const std::string& app_id, - const ArcAppListPrefs::AppInfo& app_info, - bool update_icon) { - auto install_reason = GetInstallReason(prefs, app_id, app_info); - apps::mojom::AppPtr app = PublisherBase::MakeApp( - apps::mojom::AppType::kArc, app_id, - app_info.suspended ? apps::mojom::Readiness::kDisabledByPolicy - : apps::mojom::Readiness::kReady, - app_info.name, install_reason); - - app->publisher_id = app_info.package_name; - - auto paused = paused_apps_.IsPaused(app_id) - ? apps::mojom::OptionalBool::kTrue - : apps::mojom::OptionalBool::kFalse; - - if (update_icon) { - app->icon_key = - icon_key_factory_.MakeIconKey(GetIconEffects(app_id, app_info)); - } - - app->version = app_info.version_name; - - app->last_launch_time = app_info.last_launch_time; - app->install_time = app_info.install_time; - app->install_source = install_reason == apps::mojom::InstallReason::kSystem - ? apps::mojom::InstallSource::kSystem - : apps::mojom::InstallSource::kPlayStore; - - auto show = ShouldShow(app_info) ? apps::mojom::OptionalBool::kTrue - : apps::mojom::OptionalBool::kFalse; - // All published ARC apps are launchable. All launchable apps should be - // permitted to be shown on the shelf, and have their pins on the shelf - // persisted. - app->show_in_shelf = apps::mojom::OptionalBool::kTrue; - app->show_in_launcher = show; - app->handles_intents = show; - - if (app_id == arc::kPlayGamesAppId && - show == apps::mojom::OptionalBool::kFalse) { - // Play Games should only be hidden in the launcher. - app->show_in_search = apps::mojom::OptionalBool::kTrue; - app->show_in_management = apps::mojom::OptionalBool::kTrue; - } else { - app->show_in_search = show; - app->show_in_management = show; - } - - app->allow_uninstall = (app_info.ready && !app_info.sticky) - ? apps::mojom::OptionalBool::kTrue - : apps::mojom::OptionalBool::kFalse; - - app->has_badge = app_notifications_.HasNotification(app_id) - ? apps::mojom::OptionalBool::kTrue - : apps::mojom::OptionalBool::kFalse; - app->paused = paused; - app->resize_locked = IsResizeLocked(prefs, app_id); - - std::unique_ptr<ArcAppListPrefs::PackageInfo> package = - prefs->GetPackage(app_info.package_name); - if (package) { - UpdateAppPermissions(package->permissions, &app->permissions); - } - - auto* intent_helper_bridge = - arc::ArcIntentHelperBridge::GetForBrowserContext(profile_); - if (intent_helper_bridge && - app_info.package_name != arc::kArcIntentHelperPackageName) { - UpdateAppIntentFilters(app_info.package_name, intent_helper_bridge, - &app->intent_filters); - } - return app; } @@ -1720,8 +1533,6 @@ std::unique_ptr<ArcAppListPrefs::AppInfo> app_info = prefs->GetApp(app_id); if (app_info && !IsWebAppShellPackage(profile_, *app_info)) { - PublisherBase::Publish(Convert(prefs, app_id, *app_info, update_icon), - subscribers_); AppPublisher::Publish(CreateApp(prefs, app_id, *app_info, update_icon)); } } @@ -1752,13 +1563,6 @@ return; } - apps::mojom::AppPtr mojom_app = apps::mojom::App::New(); - mojom_app->app_type = apps::mojom::AppType::kArc; - mojom_app->app_id = app_id; - mojom_app->icon_key = - icon_key_factory_.MakeIconKey(GetIconEffects(app_id, *app_info)); - PublisherBase::Publish(std::move(mojom_app), subscribers_); - auto app = std::make_unique<App>(AppType::kArc, app_id); app->icon_key = std::move( *icon_key_factory_.CreateIconKey(GetIconEffects(app_id, *app_info))); @@ -1777,18 +1581,6 @@ app_id_to_task_ids_.erase(app_id); } -void ArcApps::UpdateAppIntentFilters( - std::string package_name, - arc::ArcIntentHelperBridge* intent_helper_bridge, - std::vector<apps::mojom::IntentFilterPtr>* intent_filters) { - const std::vector<arc::IntentFilter>& arc_intent_filters = - intent_helper_bridge->GetIntentFilterForPackage(package_name); - for (auto& arc_intent_filter : arc_intent_filters) { - intent_filters->push_back( - apps_util::ConvertArcToAppServiceIntentFilter(arc_intent_filter)); - } -} - void ArcApps::BuildMenuForShortcut( const std::string& package_name, MenuItems menu_items,
diff --git a/chrome/browser/apps/app_service/publishers/arc_apps.h b/chrome/browser/apps/app_service/publishers/arc_apps.h index 3b264b1..8fc42c6 100644 --- a/chrome/browser/apps/app_service/publishers/arc_apps.h +++ b/chrome/browser/apps/app_service/publishers/arc_apps.h
@@ -44,10 +44,6 @@ #include "components/services/app_service/public/cpp/menu.h" #include "components/services/app_service/public/cpp/permission.h" #include "components/services/app_service/public/cpp/publisher_base.h" -#include "components/services/app_service/public/mojom/app_service.mojom.h" -#include "mojo/public/cpp/bindings/pending_remote.h" -#include "mojo/public/cpp/bindings/receiver.h" -#include "mojo/public/cpp/bindings/remote_set.h" #include "third_party/abseil-cpp/absl/types/optional.h" class Profile; @@ -61,12 +57,7 @@ // An app publisher (in the App Service sense) of ARC++ apps, // // See components/services/app_service/README.md. -// -// TODO(crbug.com/1253250): -// 1. Remove the parent class apps::PublisherBase. -// 2. Remove all apps::mojom related code. class ArcApps : public KeyedService, - public apps::PublisherBase, public AppPublisher, public ArcAppListPrefs::Observer, public arc::ArcIntentHelperObserver, @@ -142,9 +133,6 @@ ReplacedAppPreferences replaced_app_preferences) override; void SetResizeLocked(const std::string& app_id, bool locked) override; - // apps::mojom::Publisher overrides. - void Connect(mojo::PendingRemote<apps::mojom::Subscriber> subscriber_remote, - apps::mojom::ConnectOptionsPtr opts) override; void PauseApp(const std::string& app_id) override; void UnpauseApp(const std::string& app_id) override; void StopApp(const std::string& app_id) override; @@ -218,10 +206,6 @@ const std::string& app_id, const ArcAppListPrefs::AppInfo& app_info, bool update_icon = true); - apps::mojom::AppPtr Convert(ArcAppListPrefs* prefs, - const std::string& app_id, - const ArcAppListPrefs::AppInfo& app_info, - bool update_icon = true); void ConvertAndPublishPackageApps( const arc::mojom::ArcPackageInfo& package_info, bool update_icon = true); @@ -229,10 +213,6 @@ const ArcAppListPrefs::AppInfo& app_info); void SetIconEffect(const std::string& app_id); void CloseTasks(const std::string& app_id); - void UpdateAppIntentFilters( - std::string package_name, - arc::ArcIntentHelperBridge* intent_helper_bridge, - std::vector<apps::mojom::IntentFilterPtr>* intent_filters); void BuildMenuForShortcut(const std::string& package_name, MenuItems menu_items, @@ -245,8 +225,6 @@ base::OnceCallback<void(MenuItems)> callback, std::unique_ptr<apps::AppShortcutItems> app_shortcut_items); - mojo::RemoteSet<apps::mojom::Subscriber> subscribers_; - Profile* const profile_; ArcIconOnceLoader arc_icon_once_loader_; ArcActivityAdaptiveIconImpl arc_activity_adaptive_icon_impl_;
diff --git a/chrome/browser/apps/app_service/publishers/crostini_apps.cc b/chrome/browser/apps/app_service/publishers/crostini_apps.cc index d676d2c..3a51ec5 100644 --- a/chrome/browser/apps/app_service/publishers/crostini_apps.cc +++ b/chrome/browser/apps/app_service/publishers/crostini_apps.cc
@@ -82,7 +82,7 @@ // the app can support. We find these extension types by checking what // extensions correspond to the app's supported mime types. std::vector<std::string> extension_types; - if (ash::features::ShouldArcAndGuestOsFileTasksUseAppService()) { + if (ash::features::ShouldGuestOsFileTasksUseAppService()) { extension_types = mime_types_service->GetExtensionTypesFromMimeTypes( mime_types_set, registration.VmName(), registration.ContainerName()); }
diff --git a/chrome/browser/apps/app_service/publishers/crostini_apps_unittest.cc b/chrome/browser/apps/app_service/publishers/crostini_apps_unittest.cc index e0b74a2c..22d6c5fe 100644 --- a/chrome/browser/apps/app_service/publishers/crostini_apps_unittest.cc +++ b/chrome/browser/apps/app_service/publishers/crostini_apps_unittest.cc
@@ -165,7 +165,7 @@ TEST_F(CrostiniAppsTest, CrostiniIntentFilterHasExtensionsFromPrefs) { base::test::ScopedFeatureList scoped_feature_list{ - ash::features::kArcAndGuestOsFileTasksUseAppService}; + ash::features::kGuestOsFileTasksUseAppService}; std::string mime_type = "test/mime1"; std::string extension = "test_extension";
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn index aa1b5c3..1b63c2d 100644 --- a/chrome/browser/ash/BUILD.gn +++ b/chrome/browser/ash/BUILD.gn
@@ -1701,6 +1701,8 @@ "login/screens/app_downloading_screen.h", "login/screens/arc_terms_of_service_screen.cc", "login/screens/arc_terms_of_service_screen.h", + "login/screens/arc_vm_data_migration_screen.cc", + "login/screens/arc_vm_data_migration_screen.h", "login/screens/assistant_optin_flow_screen.cc", "login/screens/assistant_optin_flow_screen.h", "login/screens/base_screen.cc",
diff --git a/chrome/browser/ash/app_list/search/scoring.cc b/chrome/browser/ash/app_list/search/scoring.cc index 69d143ce..ad95be0 100644 --- a/chrome/browser/ash/app_list/search/scoring.cc +++ b/chrome/browser/ash/app_list/search/scoring.cc
@@ -11,24 +11,21 @@ namespace app_list { double Scoring::FinalScore() const { - if (filter) { + if (filter && !override_filter_for_test) return -1.0; - } return ftrl_result_score; } double Scoring::BestMatchScore() const { - if (filter) { + if (filter) return -1.0; - } else { + else return std::max(mrfu_result_score, normalized_relevance); - } } ::std::ostream& operator<<(::std::ostream& os, const Scoring& scoring) { - if (scoring.filter) { + if (scoring.filter) return os << "{" << scoring.FinalScore() << " | filtered}"; - } return os << base::StringPrintf( "{%.2f | nr:%.2f rs:%.2f bm:%d cr:%d bi:%d}", scoring.FinalScore(), scoring.normalized_relevance, scoring.ftrl_result_score,
diff --git a/chrome/browser/ash/app_list/search/scoring.h b/chrome/browser/ash/app_list/search/scoring.h index aea3422..02f7b1e 100644 --- a/chrome/browser/ash/app_list/search/scoring.h +++ b/chrome/browser/ash/app_list/search/scoring.h
@@ -18,6 +18,11 @@ double normalized_relevance = 0.0; double mrfu_result_score = 0.0; double ftrl_result_score = 0.0; + // TODO(b/259607603) remove 'override_filter_for_test'. This field is used + // to temporarily disable filtering for a specific result. This is needed + // due to a race condition with the test beginning before the + // RemovedResultsRanker is initialized. + bool override_filter_for_test = false; // Used only for results in the Continue section. Continue results are first // ordered by |continue_rank|, and then by their display score. -1 indicates
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_common.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_common.cc index e4017a55f..a8201c9 100644 --- a/chrome/browser/ash/cert_provisioning/cert_provisioning_common.cc +++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_common.cc
@@ -138,17 +138,17 @@ CertProfile::~CertProfile() = default; absl::optional<CertProfile> CertProfile::MakeFromValue( - const base::Value& value) { + const base::Value::Dict& value) { static_assert(kVersion == 5, "This function should be updated"); - const std::string* id = value.FindStringKey(kCertProfileIdKey); - const std::string* name = value.FindStringKey(kCertProfileNameKey); + const std::string* id = value.FindString(kCertProfileIdKey); + const std::string* name = value.FindString(kCertProfileNameKey); const std::string* policy_version = - value.FindStringKey(kCertProfilePolicyVersionKey); + value.FindString(kCertProfilePolicyVersionKey); absl::optional<bool> is_va_enabled = - value.FindBoolKey(kCertProfileIsVaEnabledKey); + value.FindBool(kCertProfileIsVaEnabledKey); absl::optional<int> renewal_period_sec = - value.FindIntKey(kCertProfileRenewalPeroidSec); + value.FindInt(kCertProfileRenewalPeroidSec); if (!id || !policy_version) { return absl::nullopt;
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_common.h b/chrome/browser/ash/cert_provisioning/cert_provisioning_common.h index c421d4f8..a72e2b51 100644 --- a/chrome/browser/ash/cert_provisioning/cert_provisioning_common.h +++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_common.h
@@ -92,7 +92,8 @@ const char kCertProfileIsVaEnabledKey[] = "enable_remote_attestation_check"; struct CertProfile { - static absl::optional<CertProfile> MakeFromValue(const base::Value& value); + static absl::optional<CertProfile> MakeFromValue( + const base::Value::Dict& value); CertProfile(); // For tests.
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_scheduler.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_scheduler.cc index 5502707e44..f71d63a 100644 --- a/chrome/browser/ash/cert_provisioning/cert_provisioning_scheduler.cc +++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_scheduler.cc
@@ -557,12 +557,13 @@ const base::Value& profile_list = pref_service_->GetValue(pref_name_); for (const base::Value& cur_profile : profile_list.GetList()) { - const CertProfileId* id = cur_profile.FindStringKey(kCertProfileIdKey); + const base::Value::Dict& cur_profile_dict = cur_profile.GetDict(); + const CertProfileId* id = cur_profile_dict.FindString(kCertProfileIdKey); if (!id || (*id != cert_profile_id)) { continue; } - return CertProfile::MakeFromValue(cur_profile); + return CertProfile::MakeFromValue(cur_profile_dict); } return absl::nullopt; @@ -575,7 +576,8 @@ std::vector<CertProfile> result_profiles; for (const base::Value& cur_profile : profile_list.GetList()) { - absl::optional<CertProfile> p = CertProfile::MakeFromValue(cur_profile); + absl::optional<CertProfile> p = + CertProfile::MakeFromValue(cur_profile.GetDict()); if (!p) { LOG(WARNING) << "Failed to parse certificate profile"; continue;
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_serializer.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_serializer.cc index e9b8d30..a5bd9ee0 100644 --- a/chrome/browser/ash/cert_provisioning/cert_provisioning_serializer.cc +++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_serializer.cc
@@ -4,8 +4,11 @@ #include "chrome/browser/ash/cert_provisioning/cert_provisioning_serializer.h" +#include <string> + #include "base/base64.h" #include "base/logging.h" +#include "base/numerics/safe_conversions.h" #include "base/time/time.h" #include "chrome/browser/ash/cert_provisioning/cert_provisioning_common.h" #include "components/prefs/pref_service.h" @@ -39,20 +42,20 @@ } template <typename T> -bool DeserializeEnumValue(const base::Value::Dict& parent_value, +bool DeserializeEnumValue(const base::Value::Dict& parent_dict, const char* value_name, T* dst) { - const absl::optional<int> serialized_enum = parent_value.FindInt(value_name); - if (!serialized_enum) { + absl::optional<int> serialized_enum = parent_dict.FindInt(value_name); + if (!serialized_enum.has_value()) { return false; } return ConvertToEnum<T>(*serialized_enum, dst); } -bool DeserializeStringValue(const base::Value::Dict& parent_value, +bool DeserializeStringValue(const base::Value::Dict& parent_dict, const char* value_name, std::string* dst) { - const std::string* serialized_string = parent_value.FindString(value_name); + const std::string* serialized_string = parent_dict.FindString(value_name); if (!serialized_string) { return false; } @@ -60,22 +63,21 @@ return true; } -bool DeserializeBoolValue(const base::Value::Dict& parent_value, +bool DeserializeBoolValue(const base::Value::Dict& parent_dict, const char* value_name, bool* dst) { - const absl::optional<bool> serialized_bool = - parent_value.FindBool(value_name); - if (!serialized_bool) { + absl::optional<bool> serialized_bool = parent_dict.FindBool(value_name); + if (!serialized_bool.has_value()) { return false; } *dst = *serialized_bool; return true; } -bool DeserializeRenewalPeriod(const base::Value::Dict& parent_value, +bool DeserializeRenewalPeriod(const base::Value::Dict& parent_dict, const char* value_name, base::TimeDelta* dst) { - absl::optional<int> serialized_time = parent_value.FindInt(value_name); + absl::optional<int> serialized_time = parent_dict.FindInt(value_name); *dst = base::Seconds(serialized_time.value_or(0)); return true; } @@ -91,19 +93,19 @@ if (!profile.renewal_period.is_zero()) { result.Set(kKeyNameCertProfileRenewalPeriod, - static_cast<int>(profile.renewal_period.InSeconds())); + base::saturated_cast<int>(profile.renewal_period.InSeconds())); } return result; } -bool DeserializeCertProfile(const base::Value::Dict& parent_value, +bool DeserializeCertProfile(const base::Value::Dict& parent_dict, const char* value_name, CertProfile* dst) { static_assert(CertProfile::kVersion == 5, "This function should be updated"); const base::Value::Dict* serialized_profile = - parent_value.FindDict(value_name); + parent_dict.FindDict(value_name); if (!serialized_profile) { return false; @@ -128,15 +130,14 @@ return is_ok; } -base::Value SerializePublicKey(const std::vector<uint8_t>& public_key) { - return base::Value(base::Base64Encode(public_key)); +std::string SerializePublicKey(const std::vector<uint8_t>& public_key) { + return base::Base64Encode(public_key); } -bool DeserializePublicKey(const base::Value::Dict& parent_value, +bool DeserializePublicKey(const base::Value::Dict& parent_dict, const char* value_name, std::vector<uint8_t>* dst) { - const std::string* serialized_public_key = - parent_value.FindString(value_name); + const std::string* serialized_public_key = parent_dict.FindString(value_name); if (!serialized_public_key) { return false;
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_unittest.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_unittest.cc index 05d138c..46b34385 100644 --- a/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_unittest.cc +++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_unittest.cc
@@ -50,7 +50,7 @@ using attestation::MockTpmChallengeKeySubtle; using ::base::test::IsJson; -using ::base::test::ParseJson; +using ::base::test::ParseJsonDict; using ::base::test::RunOnceCallback; using ::chromeos::platform_keys::HashAlgorithm; using ::chromeos::platform_keys::KeyAttributeType; @@ -1647,7 +1647,7 @@ StrictMock<PrefServiceObserver> pref_observer( &testing_pref_service_, GetPrefNameForSerialization(kCertScope)); - base::Value pref_val; + base::Value::Dict pref_val; EXPECT_CALL(state_change_callback_observer_, StateChangeCallback) .Times(AtLeast(1)); @@ -1665,7 +1665,7 @@ /*profile=*/_, /*callback=*/_, /*signals=*/_)); - pref_val = ParseJson(base::StringPrintf( + pref_val = ParseJsonDict(base::StringPrintf( R"({ "cert_profile_1": { "cert_profile": { @@ -1705,9 +1705,9 @@ worker = CertProvisioningWorkerFactory::Get()->Deserialize( kCertScope, GetProfile(), &testing_pref_service_, - *pref_val.GetDict().FindDict(kCertProfileId), - &cert_provisioning_client_, MakeInvalidator(&mock_invalidator), - GetStateChangeCallback(), GetResultCallback()); + *pref_val.FindDict(kCertProfileId), &cert_provisioning_client_, + MakeInvalidator(&mock_invalidator), GetStateChangeCallback(), + GetResultCallback()); } // Retry start csr request, receive response, try sign challenge. @@ -1718,7 +1718,7 @@ StartCsr(Eq(std::ref(provisioning_process)), /*callback=*/_), em::HashingAlgorithm::SHA256); - pref_val = ParseJson("{}"); + pref_val = ParseJsonDict("{}"); EXPECT_CALL(pref_observer, OnPrefValueUpdated(IsJson(pref_val))).Times(1); EXPECT_CALL(*mock_invalidator, Register(kInvalidationTopic, _)).Times(1); @@ -1746,7 +1746,7 @@ kChallengeResponse, kSignature, /*callback=*/_)); - pref_val = ParseJson(base::StringPrintf( + pref_val = ParseJsonDict(base::StringPrintf( R"({ "cert_profile_1": { "cert_profile": { @@ -1788,9 +1788,9 @@ worker = CertProvisioningWorkerFactory::Get()->Deserialize( kCertScope, GetProfile(), &testing_pref_service_, - *pref_val.GetDict().FindDict(kCertProfileId), - &cert_provisioning_client_, std::move(mock_invalidator_obj), - GetStateChangeCallback(), GetResultCallback()); + *pref_val.FindDict(kCertProfileId), &cert_provisioning_client_, + std::move(mock_invalidator_obj), GetStateChangeCallback(), + GetResultCallback()); } // Retry download cert request, receive response, try import certificate. @@ -1803,7 +1803,7 @@ EXPECT_IMPORT_CERTIFICATE_OK( ImportCertificate(TokenId::kUser, /*certificate=*/_, /*callback=*/_)); - pref_val = ParseJson("{}"); + pref_val = ParseJsonDict("{}"); EXPECT_CALL(pref_observer, OnPrefValueUpdated(IsJson(pref_val))).Times(1); EXPECT_CALL(*mock_invalidator, Unregister()).Times(1); @@ -1829,7 +1829,7 @@ PrefServiceObserver pref_observer(&testing_pref_service_, GetPrefNameForSerialization(kCertScope)); - base::Value pref_val; + base::Value::Dict pref_val; EXPECT_CALL(state_change_callback_observer_, StateChangeCallback) .Times(AtLeast(1)); @@ -1845,7 +1845,7 @@ /*profile=*/_, /*callback=*/_, /*signals=*/_)); - pref_val = ParseJson(base::StringPrintf( + pref_val = ParseJsonDict(base::StringPrintf( R"({ "cert_profile_1": { "cert_profile": { @@ -1865,7 +1865,7 @@ EXPECT_START_CSR_CA_ERROR(StartCsr); - pref_val = ParseJson("{}"); + pref_val = ParseJsonDict("{}"); EXPECT_CALL(pref_observer, OnPrefValueUpdated(IsJson(pref_val))).Times(1); EXPECT_CALL(callback_observer_, @@ -1951,7 +1951,7 @@ PrefServiceObserver pref_observer(&testing_pref_service_, GetPrefNameForSerialization(kCertScope)); - base::Value pref_val; + base::Value::Dict pref_val; { testing::InSequence seq; @@ -1965,7 +1965,7 @@ /*profile=*/_, /*callback=*/_, /*signals=*/_)); - pref_val = ParseJson(base::StringPrintf( + pref_val = ParseJsonDict(base::StringPrintf( R"({ "cert_profile_1": { "cert_profile": { @@ -1989,7 +1989,7 @@ } { - pref_val = ParseJson("{}"); + pref_val = ParseJsonDict("{}"); EXPECT_CALL(pref_observer, OnPrefValueUpdated(IsJson(pref_val))).Times(1); worker->Stop(CertProvisioningWorkerState::kCanceled);
diff --git a/chrome/browser/ash/crostini/crostini_installer.cc b/chrome/browser/ash/crostini/crostini_installer.cc index d46ae93..242d74388 100644 --- a/chrome/browser/ash/crostini/crostini_installer.cc +++ b/chrome/browser/ash/crostini/crostini_installer.cc
@@ -162,6 +162,55 @@ NOTREACHED(); } +crostini::mojom::InstallerError CrostiniResultToInstallerError( + crostini::CrostiniResult result, + InstallerState installer_state) { + DCHECK_NE(result, CrostiniResult::SUCCESS); + + bool offline = content::GetNetworkConnectionTracker()->IsOffline(); + if (offline) { + LOG(WARNING) + << "Crostini installation may have failed due to being offline."; + } + + switch (installer_state) { + default: + case InstallerState::kStart: + NOTREACHED(); + return InstallerError::kErrorUnknown; + case InstallerState::kInstallImageLoader: + if (offline) { + return InstallerError::kErrorOffline; + } else if (result == CrostiniResult::NEED_UPDATE) { + return InstallerError::kNeedUpdate; + } else { + return InstallerError::kErrorLoadingTermina; + } + case InstallerState::kCreateDiskImage: + return InstallerError::kErrorCreatingDiskImage; + case InstallerState::kStartTerminaVm: + return InstallerError::kErrorStartingTermina; + case InstallerState::kStartLxd: + return InstallerError::kErrorStartingLxd; + case InstallerState::kCreateContainer: + if (offline) { + return InstallerError::kErrorOffline; + } else { + return InstallerError::kErrorCreateContainer; + } + case InstallerState::kSetupContainer: + if (offline) { + return InstallerError::kErrorOffline; + } else { + return InstallerError::kErrorSettingUpContainer; + } + case InstallerState::kStartContainer: + return InstallerError::kErrorStartingContainer; + case InstallerState::kConfigureContainer: + return InstallerError::kErrorConfiguringContainer; + } +} + } // namespace CrostiniInstaller* CrostiniInstaller::GetForProfile(Profile* profile) { @@ -308,102 +357,30 @@ RecordSetupResult(SetupResult::kNotStarted); } -void CrostiniInstaller::OnStageStarted(InstallerState stage) {} - -void CrostiniInstaller::OnComponentLoaded(CrostiniResult result) { - DCHECK_EQ(installing_state_, InstallerState::kInstallImageLoader); - - if (result != CrostiniResult::SUCCESS) { - if (content::GetNetworkConnectionTracker()->IsOffline()) { - LOG(ERROR) << "Network connection dropped while downloading cros-termina"; - HandleError(InstallerError::kErrorOffline); - } else if (result == CrostiniResult::NEED_UPDATE) { - HandleError(InstallerError::kNeedUpdate); - } else { - HandleError(InstallerError::kErrorLoadingTermina); - } +void CrostiniInstaller::OnStageStarted(InstallerState stage) { + if (stage == InstallerState::kStart || + stage == InstallerState::kInstallImageLoader) { + // Drop these as we manually set our internal state to kInstallImageLoader + // upon starting the restart. return; } - UpdateInstallingState(InstallerState::kCreateDiskImage); + + UpdateInstallingState(stage); } void CrostiniInstaller::OnDiskImageCreated(bool success, CrostiniResult result, int64_t disk_size_available) { - DCHECK_EQ(installing_state_, InstallerState::kCreateDiskImage); - if (!success) { - HandleError(InstallerError::kErrorCreatingDiskImage); - return; - } if (result == CrostiniResult::CREATE_DISK_IMAGE_ALREADY_EXISTS) { require_cleanup_ = false; } - UpdateInstallingState(InstallerState::kStartTerminaVm); -} - -void CrostiniInstaller::OnVmStarted(bool success) { - DCHECK_EQ(installing_state_, InstallerState::kStartTerminaVm); - if (!success) { - HandleError(InstallerError::kErrorStartingTermina); - return; - } - UpdateInstallingState(InstallerState::kStartLxd); -} - -void CrostiniInstaller::OnLxdStarted(CrostiniResult result) { - DCHECK_EQ(installing_state_, InstallerState::kStartLxd); - if (result != CrostiniResult::SUCCESS) { - HandleError(InstallerError::kErrorStartingLxd); - return; - } - UpdateInstallingState(InstallerState::kCreateContainer); } void CrostiniInstaller::OnContainerDownloading(int32_t download_percent) { - DCHECK_EQ(installing_state_, InstallerState::kCreateContainer); container_download_percent_ = base::clamp(download_percent, 0, 100); RunProgressCallback(); } -void CrostiniInstaller::OnContainerCreated(CrostiniResult result) { - DCHECK_EQ(installing_state_, InstallerState::kCreateContainer); - if (result != CrostiniResult::SUCCESS) { - if (content::GetNetworkConnectionTracker()->IsOffline()) { - LOG(ERROR) << "Network connection dropped while creating container"; - HandleError(InstallerError::kErrorOffline); - } else { - HandleError(InstallerError::kErrorCreateContainer); - } - return; - } - UpdateInstallingState(InstallerState::kSetupContainer); -} - -void CrostiniInstaller::OnContainerSetup(bool success) { - DCHECK_EQ(installing_state_, InstallerState::kSetupContainer); - - if (!success) { - if (content::GetNetworkConnectionTracker()->IsOffline()) { - LOG(ERROR) << "Network connection dropped while downloading container"; - HandleError(InstallerError::kErrorOffline); - } else { - HandleError(InstallerError::kErrorSettingUpContainer); - } - return; - } - UpdateInstallingState(InstallerState::kStartContainer); -} - -void CrostiniInstaller::OnContainerStarted(CrostiniResult result) { - DCHECK(installing_state_ == InstallerState::kStartContainer || - installing_state_ == InstallerState::kConfigureContainer); - - if (result != CrostiniResult::SUCCESS) { - HandleError(InstallerError::kErrorStartingContainer); - return; - } -} - bool CrostiniInstaller::CanInstall() { // Allow to start from State::ERROR. In that case, we're doing a Retry. return state_ == State::IDLE || state_ == State::ERROR; @@ -554,19 +531,14 @@ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); restart_id_ = CrostiniManager::kUninitializedRestartId; + if (result == CrostiniResult::RESTART_ABORTED || + result == CrostiniResult::RESTART_REQUEST_CANCELLED) { + return; + } + if (result != CrostiniResult::SUCCESS) { - if (state_ != State::ERROR && result != CrostiniResult::RESTART_ABORTED && - result != CrostiniResult::RESTART_REQUEST_CANCELLED) { - DCHECK_EQ(state_, State::INSTALLING); - // TODO(b/227552325): Currently just adding mapping for - // CONTAINER_CONFIGURATION_FAILED -> kErrorConfiguringContainer. Consider - // making a better mapping for more descriptive errors than kErrorUnknown. - if (result == CrostiniResult::CONTAINER_CONFIGURATION_FAILED) { - HandleError(InstallerError::kErrorConfiguringContainer); - } else { - HandleError(InstallerError::kErrorUnknown); - } - } + DCHECK_EQ(state_, State::INSTALLING); + HandleError(CrostiniResultToInstallerError(result, installing_state_)); return; }
diff --git a/chrome/browser/ash/crostini/crostini_installer.h b/chrome/browser/ash/crostini/crostini_installer.h index 87a6748..7a26504d 100644 --- a/chrome/browser/ash/crostini/crostini_installer.h +++ b/chrome/browser/ash/crostini/crostini_installer.h
@@ -92,16 +92,10 @@ // CrostiniManager::RestartObserver: void OnStageStarted(crostini::mojom::InstallerState stage) override; - void OnComponentLoaded(crostini::CrostiniResult result) override; void OnDiskImageCreated(bool success, CrostiniResult result, int64_t disk_size_available) override; - void OnVmStarted(bool success) override; - void OnLxdStarted(CrostiniResult result) override; void OnContainerDownloading(int32_t download_percent) override; - void OnContainerCreated(crostini::CrostiniResult result) override; - void OnContainerSetup(bool success) override; - void OnContainerStarted(crostini::CrostiniResult result) override; // Return true if internal state allows starting installation. bool CanInstall();
diff --git a/chrome/browser/ash/extensions/autotest_private/autotest_private_apitest.cc b/chrome/browser/ash/extensions/autotest_private/autotest_private_apitest.cc index e2c5062..309967a 100644 --- a/chrome/browser/ash/extensions/autotest_private/autotest_private_apitest.cc +++ b/chrome/browser/ash/extensions/autotest_private/autotest_private_apitest.cc
@@ -294,9 +294,8 @@ absl::nullopt); ASSERT_EQ(ash::holding_space_prefs::GetTimeOfFirstPin(prefs), absl::nullopt); - if (timeOfFirstAdd) { + if (timeOfFirstAdd) ASSERT_GT(timeOfFirstAdd, timeOfFirstAvailability); - } } class AutotestPrivateApiOverviewTest : public AutotestPrivateApiTest { @@ -315,9 +314,8 @@ base::RunLoop run_loop; ash::OverviewTestApi().SetOverviewMode( /*start=*/true, base::BindLambdaForTesting([&run_loop](bool finished) { - if (!finished) { + if (!finished) ADD_FAILURE() << "Failed to enter overview."; - } run_loop.Quit(); })); run_loop.Run(); @@ -560,9 +558,12 @@ const std::vector<double>& scores) { std::vector<std::unique_ptr<ChromeSearchResult>> results; for (size_t i = 0; i < ids.size(); ++i) { - results.emplace_back(std::make_unique<app_list::TestResult>( - ids[i], display_types[i], categories[i], best_match_ranks[i], - /*relevance=*/scores[i], /*ftrl_result_score=*/scores[i])); + std::unique_ptr<app_list::TestResult> test_result = + std::make_unique<app_list::TestResult>( + ids[i], display_types[i], categories[i], best_match_ranks[i], + /*relevance=*/scores[i], /*ftrl_result_score=*/scores[i]); + test_result->scoring().override_filter_for_test = true; + results.emplace_back(std::move(test_result)); } return results; } @@ -611,9 +612,8 @@ for (auto* result : PublishedResults()) { // There may be zero state results that are also published, but not visible // in the UI. This test should only check search list results. - if (result->display_type() != ash::SearchResultDisplayType::kList) { + if (result->display_type() != ash::SearchResultDisplayType::kList) continue; - } results.push_back(result); }
diff --git a/chrome/browser/ash/file_manager/app_service_file_tasks.cc b/chrome/browser/ash/file_manager/app_service_file_tasks.cc index 0e92873b..bddadabe 100644 --- a/chrome/browser/ash/file_manager/app_service_file_tasks.cc +++ b/chrome/browser/ash/file_manager/app_service_file_tasks.cc
@@ -237,8 +237,10 @@ apps::AppType::kExtension, apps::AppType::kStandaloneBrowserChromeApp, apps::AppType::kStandaloneBrowserExtension}; - if (ash::features::ShouldArcAndGuestOsFileTasksUseAppService()) { + if (ash::features::ShouldArcFileTasksUseAppService()) { supported_app_types.push_back(apps::AppType::kArc); + } + if (ash::features::ShouldGuestOsFileTasksUseAppService()) { supported_app_types.push_back(apps::AppType::kCrostini); supported_app_types.push_back(apps::AppType::kPluginVm); } @@ -335,16 +337,14 @@ intent_files.push_back(std::move(file)); } - if (ash::features::ShouldArcAndGuestOsFileTasksUseAppService()) { - DCHECK(task.task_type == TASK_TYPE_ARC_APP || - task.task_type == TASK_TYPE_WEB_APP || - task.task_type == TASK_TYPE_FILE_HANDLER || - task.task_type == TASK_TYPE_CROSTINI_APP || - task.task_type == TASK_TYPE_PLUGIN_VM_APP); - } else { - DCHECK(task.task_type == TASK_TYPE_WEB_APP || - task.task_type == TASK_TYPE_FILE_HANDLER); - } + DCHECK(task.task_type == TASK_TYPE_WEB_APP || + task.task_type == TASK_TYPE_FILE_HANDLER || + (ash::features::ShouldArcFileTasksUseAppService() && + task.task_type == TASK_TYPE_ARC_APP) || + (ash::features::ShouldGuestOsFileTasksUseAppService() && + (task.task_type == TASK_TYPE_CROSTINI_APP || + task.task_type == TASK_TYPE_PLUGIN_VM_APP))); + apps::IntentPtr intent = std::make_unique<apps::Intent>( apps_util::kIntentActionView, std::move(intent_files)); intent->activity_name = task.action_id;
diff --git a/chrome/browser/ash/file_manager/app_service_file_tasks_unittest.cc b/chrome/browser/ash/file_manager/app_service_file_tasks_unittest.cc index 796fcbd..bc60180 100644 --- a/chrome/browser/ash/file_manager/app_service_file_tasks_unittest.cc +++ b/chrome/browser/ash/file_manager/app_service_file_tasks_unittest.cc
@@ -343,7 +343,8 @@ AppServiceFileTasksTestEnabled() { feature_list_.InitWithFeatures( {blink::features::kFileHandlingAPI, - ash::features::kArcAndGuestOsFileTasksUseAppService}, + ash::features::kArcFileTasksUseAppService, + ash::features::kGuestOsFileTasksUseAppService}, {}); } }; @@ -352,7 +353,8 @@ public: AppServiceFileTasksTestDisabled() { feature_list_.InitWithFeatures( - {}, {ash::features::kArcAndGuestOsFileTasksUseAppService}); + {}, {ash::features::kArcFileTasksUseAppService, + ash::features::kGuestOsFileTasksUseAppService}); } }; @@ -374,7 +376,7 @@ ASSERT_EQ(0U, tasks.size()); } -// Crostini apps should not be found when kArcAndGuestOsFileTasksUseAppService +// Crostini apps should not be found when kGuestOsFileTasksUseAppService // is disabled. TEST_F(AppServiceFileTasksTestDisabled, FindAppServiceCrostiniApp) { std::string text_mime_type = "text/plain"; @@ -390,7 +392,7 @@ ASSERT_EQ(0U, tasks.size()); } -// PluginVm apps should not be found when kArcAndGuestOsFileTasksUseAppService +// PluginVm apps should not be found when kGuestOsFileTasksUseAppService // is disabled. TEST_F(AppServiceFileTasksTestDisabled, FindAppServicePluginVmApp) { std::string file_name = "foo.txt";
diff --git a/chrome/browser/ash/file_manager/file_tasks.cc b/chrome/browser/ash/file_manager/file_tasks.cc index 566b1f8..2a4807b 100644 --- a/chrome/browser/ash/file_manager/file_tasks.cc +++ b/chrome/browser/ash/file_manager/file_tasks.cc
@@ -322,7 +322,7 @@ extensions::app_file_handler_util::MimeTypeCollector* mime_collector, std::unique_ptr<std::vector<std::string>> mime_types) { if (task.task_type == TASK_TYPE_ARC_APP && - !ash::features::ShouldArcAndGuestOsFileTasksUseAppService()) { + !ash::features::ShouldArcFileTasksUseAppService()) { apps::RecordAppLaunchMetrics(profile, apps::AppType::kArc, task.app_id, apps::LaunchSource::kFromFileManager, apps::LaunchContainer::kLaunchContainerWindow); @@ -566,7 +566,7 @@ return; std::string task_id = TaskDescriptorToId(task_descriptor); - if (ash::features::ShouldArcAndGuestOsFileTasksUseAppService() && + if (ash::features::ShouldArcFileTasksUseAppService() && task_descriptor.task_type == TASK_TYPE_ARC_APP) { // Task IDs for Android apps are stored in a legacy format (app id: // "<package>/<activity>", task id: "view"). For ARC app task descriptors @@ -796,7 +796,7 @@ if (task.task_type == TASK_TYPE_ARC_APP || task.task_type == TASK_TYPE_WEB_APP || task.task_type == TASK_TYPE_FILE_HANDLER || - (ash::features::ShouldArcAndGuestOsFileTasksUseAppService() && + (ash::features::ShouldGuestOsFileTasksUseAppService() && (task.task_type == TASK_TYPE_CROSTINI_APP || task.task_type == TASK_TYPE_PLUGIN_VM_APP))) { // TODO(petermarshall): Implement GetProfileForExtensionTask in Lacros if @@ -810,7 +810,7 @@ return true; } - if (!ash::features::ShouldArcAndGuestOsFileTasksUseAppService() && + if (!ash::features::ShouldGuestOsFileTasksUseAppService() && (task.task_type == TASK_TYPE_CROSTINI_APP || task.task_type == TASK_TYPE_PLUGIN_VM_APP)) { DCHECK_EQ(kGuestOsAppActionID, task.action_id); @@ -912,12 +912,18 @@ // extension file_browser_handlers. FindAppServiceTasks(profile, entries, file_urls, tasks); - // 3. Find and append Guest OS tasks. - FindGuestOsTasks( - profile, entries, file_urls, tasks, - // Done. Apply post-filtering and callback. - base::BindOnce(PostProcessFoundTasks, profile, entries, - std::move(callback), std::move(resulting_tasks))); + // 3. Find and append Guest OS tasks directly if Guest OS file tasks aren't + // provided by App Service. + if (!ash::features::ShouldGuestOsFileTasksUseAppService()) { + FindGuestOsTasks( + profile, entries, file_urls, tasks, + // Done. Apply post-filtering and callback. + base::BindOnce(PostProcessFoundTasks, profile, entries, + std::move(callback), std::move(resulting_tasks))); + } else { + PostProcessFoundTasks(profile, entries, std::move(callback), + std::move(resulting_tasks)); + } } void FindAllTypesOfTasks(Profile* profile, @@ -926,18 +932,15 @@ FindTasksCallback callback) { DCHECK(profile); auto resulting_tasks = std::make_unique<ResultingTasks>(); - - if (ash::features::ShouldArcAndGuestOsFileTasksUseAppService()) { - // Skip FindArcTasks and FindGuestOsTasks since these tasks are now found in - // App Service. - FindAppServiceTasks(profile, entries, file_urls, &resulting_tasks->tasks); - PostProcessFoundTasks(profile, entries, std::move(callback), - std::move(resulting_tasks)); - } else { - // 1. Find and append ARC handler tasks. + if (!ash::features::ShouldArcFileTasksUseAppService()) { + // 1. Find and append ARC handler tasks if ARC file tasks aren't + // provided by App Service. FindArcTasks(profile, entries, file_urls, std::move(resulting_tasks), base::BindOnce(&FindExtensionAndAppTasks, profile, entries, file_urls, std::move(callback))); + } else { + FindExtensionAndAppTasks(profile, entries, file_urls, std::move(callback), + std::move(resulting_tasks)); } } @@ -965,7 +968,7 @@ file_path.Extension(), &default_task)) { default_tasks.insert(default_task); - if (ash::features::ShouldArcAndGuestOsFileTasksUseAppService() && + if (ash::features::ShouldArcFileTasksUseAppService() && default_task.task_type == TASK_TYPE_ARC_APP) { // Default preference Task Descriptors for Android apps are stored in a // legacy format (app id: "<package>/<activity>", action id: "view"). To
diff --git a/chrome/browser/ash/file_manager/file_tasks_unittest.cc b/chrome/browser/ash/file_manager/file_tasks_unittest.cc index d03f3310..5c47ab6 100644 --- a/chrome/browser/ash/file_manager/file_tasks_unittest.cc +++ b/chrome/browser/ash/file_manager/file_tasks_unittest.cc
@@ -625,7 +625,7 @@ TEST_F(FileManagerFileTaskPreferencesTest, ChooseAndSetDefault_MatchesWithAlternateAppServiceTaskDescriptorForm) { base::test::ScopedFeatureList scoped_feature_list{ - ash::features::kArcAndGuestOsFileTasksUseAppService}; + ash::features::kArcFileTasksUseAppService}; std::string package = "com.example.gallery"; std::string activity = "com.example.gallery.OpenActivity"; @@ -670,7 +670,7 @@ TEST_F(FileManagerFileTaskPreferencesTest, UpdateDefaultTask_ConvertsArcAppServiceTaskDescriptorToStandardTaskId) { base::test::ScopedFeatureList scoped_feature_list{ - ash::features::kArcAndGuestOsFileTasksUseAppService}; + ash::features::kArcFileTasksUseAppService}; std::string package = "com.example.gallery"; std::string activity = "com.example.gallery.OpenActivity";
diff --git a/chrome/browser/ash/login/screens/arc_vm_data_migration_screen.cc b/chrome/browser/ash/login/screens/arc_vm_data_migration_screen.cc new file mode 100644 index 0000000..2d30f53 --- /dev/null +++ b/chrome/browser/ash/login/screens/arc_vm_data_migration_screen.cc
@@ -0,0 +1,101 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ash/login/screens/arc_vm_data_migration_screen.h" + +#include "ash/components/arc/arc_prefs.h" +#include "ash/components/arc/arc_util.h" +#include "ash/components/arc/session/arc_vm_data_migration_status.h" +#include "base/notreached.h" +#include "chrome/browser/lifetime/application_lifetime.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "components/prefs/pref_service.h" + +namespace ash { + +namespace { + +constexpr char kUserActionSkip[] = "skip"; +constexpr char kUserActionUpdate[] = "update"; + +} // namespace + +ArcVmDataMigrationScreen::ArcVmDataMigrationScreen( + base::WeakPtr<ArcVmDataMigrationScreenView> view) + : BaseScreen(ArcVmDataMigrationScreenView::kScreenId, + OobeScreenPriority::DEFAULT), + view_(std::move(view)) { + DCHECK(view_); +} + +ArcVmDataMigrationScreen::~ArcVmDataMigrationScreen() = default; + +void ArcVmDataMigrationScreen::ShowImpl() { + // The migration screen is shown after a session restart with an ARC-enabled + // login user, and thus the primary profile is available at this point. + profile_ = ProfileManager::GetPrimaryUserProfile(); + DCHECK(profile_); + SetUpInitialView(); + // TODO(b/258278176): Stop stale ARCVM and Upstart jobs before calling Show(). + if (view_) { + view_->Show(); + } +} + +void ArcVmDataMigrationScreen::HideImpl() {} + +void ArcVmDataMigrationScreen::OnUserAction(const base::Value::List& args) { + const std::string& action_id = args[0].GetString(); + VLOG(1) << "User action: action_id=" << action_id; + if (action_id == kUserActionSkip) { + HandleSkip(); + } else if (action_id == kUserActionUpdate) { + HandleUpdate(); + } else { + BaseScreen::OnUserAction(args); + } +} + +void ArcVmDataMigrationScreen::SetUpInitialView() { + // TODO(b/258278176): Check free disk space and battery state. + arc::ArcVmDataMigrationStatus data_migration_status = + arc::GetArcVmDataMigrationStatus(profile_->GetPrefs()); + switch (data_migration_status) { + case arc::ArcVmDataMigrationStatus::kConfirmed: + // Set the status back to kNotified to prepare for cases where the + // migration is skipped or the device is shut down before the migration is + // started. + arc::SetArcVmDataMigrationStatus( + profile_->GetPrefs(), arc::ArcVmDataMigrationStatus::kNotified); + UpdateUIState(ArcVmDataMigrationScreenView::UIState::kWelcome); + break; + case arc::ArcVmDataMigrationStatus::kStarted: + // TODO(b/258278176): Show the resume screen. + UpdateUIState(ArcVmDataMigrationScreenView::UIState::kWelcome); + break; + default: + NOTREACHED(); + break; + } +} + +void ArcVmDataMigrationScreen::UpdateUIState( + ArcVmDataMigrationScreenView::UIState state) { + if (view_) { + view_->SetUIState(state); + } +} + +void ArcVmDataMigrationScreen::HandleSkip() { + chrome::AttemptRelaunch(); +} + +void ArcVmDataMigrationScreen::HandleUpdate() { + arc::SetArcVmDataMigrationStatus(profile_->GetPrefs(), + arc::ArcVmDataMigrationStatus::kStarted); + // TODO(b/258278176): Trigger the migration. + NOTIMPLEMENTED(); +} + +} // namespace ash
diff --git a/chrome/browser/ash/login/screens/arc_vm_data_migration_screen.h b/chrome/browser/ash/login/screens/arc_vm_data_migration_screen.h new file mode 100644 index 0000000..428f142 --- /dev/null +++ b/chrome/browser/ash/login/screens/arc_vm_data_migration_screen.h
@@ -0,0 +1,45 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_ASH_LOGIN_SCREENS_ARC_VM_DATA_MIGRATION_SCREEN_H_ +#define CHROME_BROWSER_ASH_LOGIN_SCREENS_ARC_VM_DATA_MIGRATION_SCREEN_H_ + +#include "base/memory/weak_ptr.h" +#include "chrome/browser/ash/login/screens/base_screen.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/webui/ash/login/arc_vm_data_migration_screen_handler.h" + +namespace ash { + +class ArcVmDataMigrationScreen : public BaseScreen { + public: + explicit ArcVmDataMigrationScreen( + base::WeakPtr<ArcVmDataMigrationScreenView> view); + ~ArcVmDataMigrationScreen() override; + ArcVmDataMigrationScreen(const ArcVmDataMigrationScreen&) = delete; + ArcVmDataMigrationScreen& operator=(const ArcVmDataMigrationScreen&) = delete; + + private: + // BaseScreen overrides: + void ShowImpl() override; + void HideImpl() override; + void OnUserAction(const base::Value::List& args) override; + + void SetUpInitialView(); + + void UpdateUIState(ArcVmDataMigrationScreenView::UIState state); + + void HandleSkip(); + void HandleUpdate(); + + Profile* profile_; + + base::WeakPtr<ArcVmDataMigrationScreenView> view_; + + base::WeakPtrFactory<ArcVmDataMigrationScreen> weak_ptr_factory_{this}; +}; + +} // namespace ash + +#endif // CHROME_BROWSER_ASH_LOGIN_SCREENS_ARC_VM_DATA_MIGRATION_SCREEN_H_
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc index 5b3a2a61..9b0fb4ff 100644 --- a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc +++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc
@@ -692,6 +692,11 @@ if (parsed_response.license_type.has_value()) state.Set(kDeviceStateLicenseType, *parsed_response.license_type); + if (parsed_response.assigned_upgrade_type.has_value()) { + state.Set(kDeviceStateAssignedUpgradeType, + *parsed_response.assigned_upgrade_type); + } + // Store the enrollment state obtained from the server to local state. // Depending on the value, this can be used later to trigger enrollment or // to disable the device.
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_state_message_processor.cc b/chrome/browser/ash/policy/enrollment/auto_enrollment_state_message_processor.cc index c140fc5..1ab0ac3 100644 --- a/chrome/browser/ash/policy/enrollment/auto_enrollment_state_message_processor.cc +++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_state_message_processor.cc
@@ -9,6 +9,8 @@ #include "ash/constants/ash_features.h" #include "base/logging.h" +#include "base/strings/strcat.h" +#include "base/strings/string_number_conversions.h" #include "chrome/browser/ash/policy/server_backed_state/server_backed_device_state.h" #include "components/policy/proto/device_management_backend.pb.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -78,6 +80,24 @@ } } +// Converts an assigned upgrade type enum value from the DM protocol for +// initial enrollment into the corresponding prefs string constant. +std::string ConvertAssignedUpgradeType( + em::DeviceInitialEnrollmentStateResponse::AssignedUpgradeType + assigned_upgrade_type) { + switch (assigned_upgrade_type) { + case em::DeviceInitialEnrollmentStateResponse:: + ASSIGNED_UPGRADE_TYPE_UNSPECIFIED: + return std::string(); + case em::DeviceInitialEnrollmentStateResponse:: + ASSIGNED_UPGRADE_TYPE_CHROME_ENTERPRISE: + return kDeviceStateAssignedUpgradeTypeChromeEnterprise; + case em::DeviceInitialEnrollmentStateResponse:: + ASSIGNED_UPGRADE_TYPE_KIOSK_AND_SIGNAGE: + return kDeviceStateAssignedUpgradeTypeKiosk; + } +} + // Converts a license packaging sku enum value from the DM protocol for initial // enrollment into the corresponding prefs string constant. std::string ConvertLicenseType( @@ -155,6 +175,11 @@ ConvertLicenseType(state_response.license_packaging_sku()); } + if (state_response.has_assigned_upgrade_type()) { + parsed_response.assigned_upgrade_type = + ConvertAssignedUpgradeType(state_response.assigned_upgrade_type()); + } + if (state_response.has_disabled_state()) { parsed_response.disabled_message = state_response.disabled_state().message(); @@ -162,10 +187,22 @@ LOG(WARNING) << "Received initial_enrollment_mode=" << state_response.initial_enrollment_mode() << " (" - << parsed_response.restore_mode << "). " - << (state_response.is_license_packaged_with_device() + << parsed_response.restore_mode << "). "; + + LOG(WARNING) << (state_response.is_license_packaged_with_device() ? "Device has a packaged license for management." - : "No packaged license."); + : "No packaged license. "); + + LOG(WARNING) << (state_response.has_assigned_upgrade_type() + ? base::StrCat( + {"Assigned upgrade type=", + base::NumberToString( + state_response.assigned_upgrade_type()), + " (", + parsed_response.assigned_upgrade_type.value_or( + std::string()), + ")."}) + : "No assigned upgrade type."); return parsed_response; }
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_state_message_processor.h b/chrome/browser/ash/policy/enrollment/auto_enrollment_state_message_processor.h index 479275a..f1d6da5 100644 --- a/chrome/browser/ash/policy/enrollment/auto_enrollment_state_message_processor.h +++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_state_message_processor.h
@@ -45,6 +45,7 @@ absl::optional<std::string> disabled_message; absl::optional<bool> is_license_packaged_with_device; absl::optional<std::string> license_type; + absl::optional<std::string> assigned_upgrade_type; }; // Returns the request job type. This must match the request filled in
diff --git a/chrome/browser/ash/policy/enrollment/enrollment_config.cc b/chrome/browser/ash/policy/enrollment/enrollment_config.cc index a0d84edb..7ca5b3a 100644 --- a/chrome/browser/ash/policy/enrollment/enrollment_config.cc +++ b/chrome/browser/ash/policy/enrollment/enrollment_config.cc
@@ -35,6 +35,27 @@ return wizard_context && ash::IsRollbackFlow(*wizard_context); } +// Returns the license type to use based on the license type, assigned +// upgrade type and the license packaged from device state. +policy::LicenseType GetLicenseTypeToUse( + const std::string license_type, const bool is_license_packaged_with_device, + const std::string assigned_upgrade_type) { + if (license_type == policy::kDeviceStateLicenseTypeEnterprise) { + return policy::LicenseType::kEnterprise; + } else if (license_type == policy::kDeviceStateLicenseTypeEducation) { + return policy::LicenseType::kEducation; + } else if (license_type == policy::kDeviceStateLicenseTypeTerminal) { + return policy::LicenseType::kTerminal; + } + + if (!is_license_packaged_with_device && + assigned_upgrade_type == policy::kDeviceStateAssignedUpgradeTypeKiosk) { + return policy::LicenseType::kTerminal; + } + + return policy::LicenseType::kNone; +} + } // namespace namespace policy { @@ -125,19 +146,21 @@ device_state.FindBool(kDeviceStatePackagedLicense).value_or(false); const std::string license_type = GetString(device_state, kDeviceStateLicenseType); + const std::string assigned_upgrade_type = GetString(device_state, kDeviceStateAssignedUpgradeType); config.is_license_packaged_with_device = is_license_packaged_with_device; - if (license_type == kDeviceStateLicenseTypeEnterprise) { - config.license_type = LicenseType::kEnterprise; - } else if (license_type == kDeviceStateLicenseTypeEducation) { - config.license_type = LicenseType::kEducation; - } else if (license_type == kDeviceStateLicenseTypeTerminal) { - config.license_type = LicenseType::kTerminal; - } else { - config.license_type = LicenseType::kNone; + if(assigned_upgrade_type == kDeviceStateAssignedUpgradeTypeChromeEnterprise) { + config.assigned_upgrade_type = + AssignedUpgradeType::kAssignedUpgradeTypeChromeEnterprise; + } else if(assigned_upgrade_type == kDeviceStateAssignedUpgradeTypeKiosk) { + config.assigned_upgrade_type = + AssignedUpgradeType::kAssignedUpgradeTypeKioskAndSignage; } + config.license_type = GetLicenseTypeToUse( + license_type, is_license_packaged_with_device, assigned_upgrade_type); + const bool pref_enrollment_auto_start_present = local_state.HasPrefPath(prefs::kDeviceEnrollmentAutoStart); const bool pref_enrollment_auto_start =
diff --git a/chrome/browser/ash/policy/enrollment/enrollment_config.h b/chrome/browser/ash/policy/enrollment/enrollment_config.h index e1710d7..7a5ea6a6 100644 --- a/chrome/browser/ash/policy/enrollment/enrollment_config.h +++ b/chrome/browser/ash/policy/enrollment/enrollment_config.h
@@ -103,6 +103,17 @@ AUTH_MECHANISM_BEST_AVAILABLE = 2, }; + // An enumeration of assigned upgrades that a device can after initial + // enrollment. + enum class AssignedUpgradeType { + // Unspecified Upgrade + kAssignedUpgradeTypeUnspecified = 0, + // Chrome Enterprise Upgrade + kAssignedUpgradeTypeChromeEnterprise = 1, + // Kiosk & Signage Upgrade + kAssignedUpgradeTypeKioskAndSignage = 2, + }; + // Get the enrollment configuration that has been set up via signals such as // device requisition, OEM manifest, pre-existing installation-time attributes // or server-backed state retrieval. The configuration is stored in |config|, @@ -222,6 +233,12 @@ // Which type of license device has. LicenseType license_type = LicenseType::kNone; + // The assigned upgrade for a device after initial enrollment. Chrome + // Enterpise Upgrade is the default upgrade for ZTE devices, unless other is + // specified in the server-backed initial state retrieval. + AssignedUpgradeType assigned_upgrade_type = + AssignedUpgradeType::kAssignedUpgradeTypeChromeEnterprise; + // The authentication mechanism to use. // TODO(drcrash): Change to best available once ZTE is everywhere. AuthMechanism auth_mechanism = AUTH_MECHANISM_INTERACTIVE;
diff --git a/chrome/browser/ash/policy/server_backed_state/server_backed_device_state.cc b/chrome/browser/ash/policy/server_backed_state/server_backed_device_state.cc index 1e1da602..b29d63ef 100644 --- a/chrome/browser/ash/policy/server_backed_state/server_backed_device_state.cc +++ b/chrome/browser/ash/policy/server_backed_state/server_backed_device_state.cc
@@ -20,6 +20,7 @@ const char kDeviceStateDisabledMessage[] = "disabled_message"; const char kDeviceStatePackagedLicense[] = "packaged_license"; const char kDeviceStateLicenseType[] = "license_type"; +const char kDeviceStateAssignedUpgradeType[] = "assigned_upgrade_type"; // Modes for a device after initial state determination. const char kDeviceStateInitialModeEnrollmentEnforced[] = "enrollment-enforced"; @@ -39,6 +40,11 @@ // Modes for a device after either initial or secondary state determination. const char kDeviceStateModeDisabled[] = "disabled"; +// Assigned upgrades for a device after initial state determination. +const char kDeviceStateAssignedUpgradeTypeChromeEnterprise[] = + "enterprise"; +const char kDeviceStateAssignedUpgradeTypeKiosk[] = "kiosk"; + DeviceStateMode GetDeviceStateMode() { const std::string* device_state_mode = g_browser_process->local_state()
diff --git a/chrome/browser/ash/policy/server_backed_state/server_backed_device_state.h b/chrome/browser/ash/policy/server_backed_state/server_backed_device_state.h index 085bc45..a12c8fa 100644 --- a/chrome/browser/ash/policy/server_backed_state/server_backed_device_state.h +++ b/chrome/browser/ash/policy/server_backed_state/server_backed_device_state.h
@@ -13,6 +13,7 @@ extern const char kDeviceStateDisabledMessage[]; extern const char kDeviceStatePackagedLicense[]; extern const char kDeviceStateLicenseType[]; +extern const char kDeviceStateAssignedUpgradeType[]; // String constants used to persist the initial state action in the // kDeviceStateMode dictionary entry. @@ -32,6 +33,11 @@ // or the restorative action in the kDeviceStateMode dictionary entry. extern const char kDeviceStateModeDisabled[]; +// String constants used to persist the assigned upgrade type in the +// kDeviceStateAssignedUpgradeType dictionary entry. +extern const char kDeviceStateAssignedUpgradeTypeChromeEnterprise[]; +extern const char kDeviceStateAssignedUpgradeTypeKiosk[]; + // Mode that a device needs to start in. enum DeviceStateMode { // No state restoration.
diff --git a/chrome/browser/ash/profiles/browser_context_helper_delegate_impl.cc b/chrome/browser/ash/profiles/browser_context_helper_delegate_impl.cc index 0339906..b1637f2 100644 --- a/chrome/browser/ash/profiles/browser_context_helper_delegate_impl.cc +++ b/chrome/browser/ash/profiles/browser_context_helper_delegate_impl.cc
@@ -33,6 +33,13 @@ return profile_manager->GetProfile(path); } +content::BrowserContext* +BrowserContextHelperDelegateImpl::GetOrCreatePrimaryOTRBrowserContext( + content::BrowserContext* browser_context) { + Profile* profile = Profile::FromBrowserContext(browser_context); + return profile->GetPrimaryOTRProfile(/*create_if_needed=*/true); +} + const base::FilePath* BrowserContextHelperDelegateImpl::GetUserDataDir() { // profile_manager can be null in unit tests. auto* profile_manager = g_browser_process->profile_manager();
diff --git a/chrome/browser/ash/profiles/browser_context_helper_delegate_impl.h b/chrome/browser/ash/profiles/browser_context_helper_delegate_impl.h index e87a1b7..0b36946 100644 --- a/chrome/browser/ash/profiles/browser_context_helper_delegate_impl.h +++ b/chrome/browser/ash/profiles/browser_context_helper_delegate_impl.h
@@ -22,6 +22,8 @@ const base::FilePath& path) override; content::BrowserContext* DeprecatedGetBrowserContext( const base::FilePath& path) override; + content::BrowserContext* GetOrCreatePrimaryOTRBrowserContext( + content::BrowserContext* browser_context) override; const base::FilePath* GetUserDataDir() override; };
diff --git a/chrome/browser/ash/profiles/profile_helper.cc b/chrome/browser/ash/profiles/profile_helper.cc index 5891afb..819e557c 100644 --- a/chrome/browser/ash/profiles/profile_helper.cc +++ b/chrome/browser/ash/profiles/profile_helper.cc
@@ -294,27 +294,17 @@ } bool ProfileHelperImpl::IsSigninProfileInitialized() { - return browser_context_helper_->delegate()->GetBrowserContextByPath( - GetSigninProfileDir()); + return browser_context_helper_->GetSigninBrowserContext(); } Profile* ProfileHelperImpl::GetSigninProfile() { - Profile* profile = Profile::FromBrowserContext( - browser_context_helper_->delegate()->DeprecatedGetBrowserContext( - GetSigninProfileDir())); - if (!profile) - return nullptr; - return profile->GetPrimaryOTRProfile(/*create_if_needed=*/true); + return Profile::FromBrowserContext( + browser_context_helper_->DeprecatedGetOrCreateSigninBrowserContext()); } Profile* ProfileHelperImpl::GetLockScreenProfile() { - ProfileManager* profile_manager = g_browser_process->profile_manager(); - DCHECK(profile_manager); - Profile* profile = - profile_manager->GetProfileByPath(GetLockScreenProfileDir()); - if (!profile) - return nullptr; - return profile->GetPrimaryOTRProfile(/*create_if_needed=*/true); + return Profile::FromBrowserContext( + browser_context_helper_->GetLockScreenBrowserContext()); } base::FilePath ProfileHelperImpl::GetActiveUserProfileDir() {
diff --git a/chrome/browser/ash/release_notes/release_notes_storage.cc b/chrome/browser/ash/release_notes/release_notes_storage.cc index be62168..d8f728af 100644 --- a/chrome/browser/ash/release_notes/release_notes_storage.cc +++ b/chrome/browser/ash/release_notes/release_notes_storage.cc
@@ -28,7 +28,7 @@ // This stores the latest milestone with new Release Notes content. If the last // milestone the user has seen the notification is before this, a new // notification will be shown. -constexpr int kLastChromeVersionWithReleaseNotes = 108; +constexpr int kLastChromeVersionWithReleaseNotes = 111; constexpr int kTimesToShowSuggestionChip = 3; int GetMilestone() {
diff --git a/chrome/browser/creator/android/java/res/layout/creator_bottomsheet_toolbar.xml b/chrome/browser/creator/android/java/res/layout/creator_bottomsheet_toolbar.xml index 6f8fe454..1eee3a3 100644 --- a/chrome/browser/creator/android/java/res/layout/creator_bottomsheet_toolbar.xml +++ b/chrome/browser/creator/android/java/res/layout/creator_bottomsheet_toolbar.xml
@@ -93,7 +93,8 @@ android:layout_alignStart="@id/title" android:layout_below="@id/title" android:layout_marginTop="@dimen/creator_bottomsheet_toolbar_security_icon_margin" - app:tint="@macro/default_icon_color" /> + app:tint="@macro/default_icon_color" + android:importantForAccessibility="no" /> <TextView android:id="@+id/origin" android:layout_width="match_parent"
diff --git a/chrome/browser/data_saver/data_saver.h b/chrome/browser/data_saver/data_saver.h index 4b9eb76c..83e89d2 100644 --- a/chrome/browser/data_saver/data_saver.h +++ b/chrome/browser/data_saver/data_saver.h
@@ -18,15 +18,15 @@ // Fetch and cache the Android Data Saver saver setting. void FetchDataSaverOSSettingAsynchronously(); -// Returns true if the Android Data Saver option is enabled. On non-Android -// OSes, this always return false. Note that the result returned by this -// function may be stale. Making OS calls to get the state of the Data Saver -// setting can be slow. For this reason, we make the OS calls happen in a -// background thread and store the result in a global variable. Calling -// IsDataSaverEnabled immediately returns the last cached value and fires of OS -// calls in a background thread. If there is no cached value, this function may -// lookup the setting synchronously, depending on the state of the -// DataSaverSettingBlockWhenUninitialized Finch feature. +// Returns true if the Android Data Saver option is enabled and the device is on +// a metered network. On non-Android OSes, this always return false. Note that +// the result returned by this function may be stale. Making OS calls to get the +// state of the Data Saver setting can be slow. For this reason, we make the OS +// calls happen in a background thread and store the result in a global +// variable. Calling IsDataSaverEnabled immediately returns the last cached +// value and fires of OS calls in a background thread. If there is no cached +// value, this function may lookup the setting synchronously, depending on the +// state of the DataSaverSettingBlockWhenUninitialized Finch feature. bool IsDataSaverEnabled(content::BrowserContext* browser_context); } // namespace data_saver
diff --git a/chrome/browser/download/android/java/res/layout/download_location_dialog.xml b/chrome/browser/download/android/java/res/layout/download_location_dialog.xml index dbb0a815..8f209cb 100644 --- a/chrome/browser/download/android/java/res/layout/download_location_dialog.xml +++ b/chrome/browser/download/android/java/res/layout/download_location_dialog.xml
@@ -55,7 +55,8 @@ android:layout_height="wrap_content" app:srcCompat="@drawable/ic_drive_file_24dp" app:tint="@macro/default_icon_color" - style="@style/ListItemStartIcon" /> + style="@style/ListItemStartIcon" + android:importantForAccessibility="no" /> <org.chromium.components.browser_ui.widget.text.AlertDialogEditText android:id="@+id/file_name" @@ -91,7 +92,8 @@ android:layout_height="wrap_content" android:src="@drawable/ic_folder_blue_24dp" app:tint="@macro/default_icon_color" - style="@style/ListItemStartIcon" /> + style="@style/ListItemStartIcon" + android:importantForAccessibility="no" /> <Spinner android:id="@+id/file_location"
diff --git a/chrome/browser/language/android/java/res/layout/accept_languages_item.xml b/chrome/browser/language/android/java/res/layout/accept_languages_item.xml index 0fcaab1..28582c5 100644 --- a/chrome/browser/language/android/java/res/layout/accept_languages_item.xml +++ b/chrome/browser/language/android/java/res/layout/accept_languages_item.xml
@@ -18,7 +18,8 @@ <org.chromium.ui.widget.ChromeImageView android:id="@+id/icon_view" style="@style/ListItemStartIcon" - app:tint="@color/default_icon_color_tint_list" /> + app:tint="@color/default_icon_color_tint_list" + android:importantForAccessibility="no" /> <LinearLayout android:layout_width="0dp"
diff --git a/chrome/browser/mac/install_from_dmg.mm b/chrome/browser/mac/install_from_dmg.mm index c37a74a..3298cafa 100644 --- a/chrome/browser/mac/install_from_dmg.mm +++ b/chrome/browser/mac/install_from_dmg.mm
@@ -17,6 +17,8 @@ #include <sys/param.h> #include <unistd.h> +#include <algorithm> + #include "base/auto_reset.h" #include "base/command_line.h" #include "base/files/file_path.h" @@ -30,6 +32,7 @@ #include "base/mac/scoped_authorizationref.h" #include "base/mac/scoped_cftyperef.h" #include "base/mac/scoped_ioobject.h" +#include "base/memory/scoped_policy.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "base/strings/sys_string_conversions.h" @@ -57,13 +60,13 @@ // IOHDIXHDDriveInKernel for disk images mounted "in-kernel." (See the // documentation for "hdiutil attach -kernel" for more information on the // distinction.) -io_service_t CopyDiskImageAncestorForMedia(const char* disk_image_class, - io_service_t media) { +base::mac::ScopedIOObject<io_service_t> GetDiskImageAncestorForMedia( + const char* disk_image_class, + base::mac::ScopedIOObject<io_service_t> media) { // This is highly unlikely. media as passed in is expected to be of class // IOMedia. Since the media service's entire ancestor chain will be checked, // though, check it as well. if (IOObjectConformsTo(media, disk_image_class)) { - IOObjectRetain(media); return media; } @@ -73,7 +76,7 @@ kIORegistryIterateRecursively | kIORegistryIterateParents, &iterator_ref); if (kr != KERN_SUCCESS) { MACH_LOG(ERROR, kr) << "IORegistryEntryCreateIterator"; - return IO_OBJECT_NULL; + return base::mac::ScopedIOObject<io_service_t>(); } base::mac::ScopedIOObject<io_iterator_t> iterator(iterator_ref); iterator_ref = IO_OBJECT_NULL; @@ -87,12 +90,12 @@ IOIteratorNext(iterator)); ancestor; ancestor.reset(IOIteratorNext(iterator))) { if (IOObjectConformsTo(ancestor, disk_image_class)) { - return ancestor.release(); + return ancestor; } } // The media does not reside on a disk image. - return IO_OBJECT_NULL; + return base::mac::ScopedIOObject<io_service_t>(); } // Given an io_service_t (expected to be of class IOMedia), determines whether @@ -100,12 +103,14 @@ // present, it will be set to the pathname of the disk image file, encoded in // filesystem encoding. // -// There are two SPI ways to do this: One is in the DiskImages private -// framework: DIHLCopyImageForVolume(). One is a set of keys in -// CFURLPriv: _kCFURLVolumeIsDiskImageKey and _kCFURLDiskImageBackingURLKey. -// However, because downstream users want to use Chromium as a base for code in -// the MAS, neither are used here. The request for a real API is FB9139935. -bool MediaResidesOnDiskImage(io_service_t media, std::string* image_path) { +// There are two ways to do this using SPI: The first way would be to use +// DIHLCopyImageForVolume() from the DiskImages private framework. The second +// way would be to use _kCFURLVolumeIsDiskImageKey and +// _kCFURLDiskImageBackingURLKey from CFURLPriv. However, because downstream +// users want to use Chromium as a base for code in the MAS, neither are used +// here. The request for a real API is FB9139935. +bool MediaResidesOnDiskImage(base::mac::ScopedIOObject<io_service_t> media, + std::string* image_path) { if (image_path) { image_path->clear(); } @@ -115,13 +120,14 @@ // type "AppleDiskImageDevice" that has a property "DiskImageURL" of string // type. - base::mac::ScopedIOObject<io_service_t> di_device( - CopyDiskImageAncestorForMedia("AppleDiskImageDevice", media)); + base::mac::ScopedIOObject<io_service_t> di_device = + GetDiskImageAncestorForMedia("AppleDiskImageDevice", media); if (di_device) { if (image_path) { base::ScopedCFTypeRef<CFTypeRef> disk_image_url_cftyperef( IORegistryEntryCreateCFProperty(di_device, CFSTR("DiskImageURL"), - nullptr, 0)); + /*allocator=*/nullptr, + /*options=*/0)); if (!disk_image_url_cftyperef) { LOG(ERROR) << "IORegistryEntryCreateCFProperty failed for DiskImageURL"; @@ -139,7 +145,7 @@ } base::ScopedCFTypeRef<CFURLRef> disk_image_url(CFURLCreateWithString( - kCFAllocatorDefault, disk_image_url_string, nullptr)); + /*allocator=*/nullptr, disk_image_url_string, /*baseURL=*/nullptr)); if (!disk_image_url) { LOG(ERROR) << "CFURLCreateWithString failed"; return true; @@ -162,13 +168,14 @@ // ancestor of type "IOHDIXHDDrive" that has a property "image-path" of data // type. - base::mac::ScopedIOObject<io_service_t> hdix_drive( - CopyDiskImageAncestorForMedia("IOHDIXHDDrive", media)); + base::mac::ScopedIOObject<io_service_t> hdix_drive = + GetDiskImageAncestorForMedia("IOHDIXHDDrive", media); if (hdix_drive) { if (image_path) { base::ScopedCFTypeRef<CFTypeRef> image_path_cftyperef( IORegistryEntryCreateCFProperty(hdix_drive, CFSTR("image-path"), - nullptr, 0)); + /*allocator=*/nullptr, + /*options=*/0)); if (!image_path_cftyperef) { LOG(ERROR) << "IORegistryEntryCreateCFProperty failed for image-path"; return true; @@ -201,10 +208,10 @@ return false; } -// Returns true if |path| is located on a read-only filesystem of a disk -// image. Returns false if not, or in the event of an error. If -// out_dmg_bsd_device_name is present, it will be set to the BSD device name -// for the disk image's device, in "diskNsM" form. +// Returns `DiskImageStatusTrue` if `path` is located on a read-only filesystem +// of a disk image, `DiskImageStatusFalse` if not, or `DiskImageStatusFailure` +// in the event of an error. If `out_dmg_bsd_device_name` is non-null, it will +// be set to the BSD device name for the disk image's device, in "diskNsM" form. DiskImageStatus IsPathOnReadOnlyDiskImage( const char path[], std::string* out_dmg_bsd_device_name) { @@ -236,28 +243,20 @@ out_dmg_bsd_device_name->assign(dmg_bsd_device_name); } - const mach_port_t master_port = kIOMasterPortDefault; - - // IOBSDNameMatching gives ownership of match_dict to the caller, but - // IOServiceGetMatchingServices will assume that reference. - CFMutableDictionaryRef match_dict = IOBSDNameMatching(master_port, - 0, - dmg_bsd_device_name); + base::ScopedCFTypeRef<CFMutableDictionaryRef> match_dict(IOBSDNameMatching( + kIOMasterPortDefault, /*options=*/0, dmg_bsd_device_name)); if (!match_dict) { LOG(ERROR) << "IOBSDNameMatching " << dmg_bsd_device_name; return DiskImageStatusFailure; } - io_iterator_t iterator_ref; - kern_return_t kr = IOServiceGetMatchingServices(master_port, - match_dict, - &iterator_ref); + base::mac::ScopedIOObject<io_iterator_t> iterator; + kern_return_t kr = IOServiceGetMatchingServices( + kIOMasterPortDefault, match_dict.release(), iterator.InitializeInto()); if (kr != KERN_SUCCESS) { MACH_LOG(ERROR, kr) << "IOServiceGetMatchingServices"; return DiskImageStatusFailure; } - base::mac::ScopedIOObject<io_iterator_t> iterator(iterator_ref); - iterator_ref = IO_OBJECT_NULL; // There needs to be exactly one matching service. base::mac::ScopedIOObject<io_service_t> media(IOIteratorNext(iterator)); @@ -272,10 +271,9 @@ return DiskImageStatusFailure; } - iterator.reset(); - - return MediaResidesOnDiskImage(media, NULL) ? DiskImageStatusTrue - : DiskImageStatusFalse; + return MediaResidesOnDiskImage(media, /*image_path=*/nullptr) + ? DiskImageStatusTrue + : DiskImageStatusFalse; } // Shows a dialog asking the user whether or not to install from the disk @@ -290,12 +288,13 @@ NSAlert* alert = [[[NSAlert alloc] init] autorelease]; - [alert setAlertStyle:NSAlertStyleInformational]; - [alert setMessageText:title]; - [alert setInformativeText:prompt]; + alert.alertStyle = NSAlertStyleInformational; + alert.messageText = title; + alert.informativeText = prompt; + [alert addButtonWithTitle:yes]; NSButton* cancel_button = [alert addButtonWithTitle:no]; - [cancel_button setKeyEquivalent:@"\e"]; + cancel_button.keyEquivalent = @"\e"; NSInteger result = [alert runModal]; @@ -322,51 +321,46 @@ base::mac::NSToCFCast(prompt)); } -// Invokes the installer program at installer_path to copy source_path to -// target_path and perform any additional on-disk bookkeeping needed to be -// able to launch target_path properly. If authorization_arg is non-NULL, -// function will assume ownership of it, will invoke the installer with that -// authorization reference, and will attempt Keystone ticket promotion. -bool InstallFromDiskImage(AuthorizationRef authorization_arg, - NSString* installer_path, +// Invokes the installer program at `installer_path` to copy `source_path` to +// `target_path` and perform any additional on-disk bookkeeping needed to be +// able to launch `target_path` properly. If `authorization_arg` is non-null, +// this function will invoke the installer with that authorization reference, +// and will attempt Keystone ticket promotion. +bool InstallFromDiskImage(base::mac::ScopedAuthorizationRef authorization, + NSURL* installer_url, NSString* source_path, NSString* target_path) { - base::mac::ScopedAuthorizationRef authorization(authorization_arg); - authorization_arg = NULL; int exit_status; if (authorization) { - const char* installer_path_c = [installer_path fileSystemRepresentation]; - const char* source_path_c = [source_path fileSystemRepresentation]; - const char* target_path_c = [target_path fileSystemRepresentation]; - const char* arguments[] = {source_path_c, target_path_c, NULL}; + const char* installer_path_c = installer_url.fileSystemRepresentation; + const char* source_path_c = source_path.fileSystemRepresentation; + const char* target_path_c = target_path.fileSystemRepresentation; + const char* arguments[] = {source_path_c, target_path_c, nullptr}; OSStatus status = base::mac::ExecuteWithPrivilegesAndWait( - authorization, - installer_path_c, - kAuthorizationFlagDefaults, - arguments, - NULL, // pipe - &exit_status); + authorization, installer_path_c, kAuthorizationFlagDefaults, arguments, + /*pipe=*/nullptr, &exit_status); if (status != errAuthorizationSuccess) { OSSTATUS_LOG(ERROR, status) << "AuthorizationExecuteWithPrivileges install"; return false; } } else { - NSArray* arguments = @[ source_path, target_path ]; + NSError* error = nil; + NSTask* task = + [NSTask launchedTaskWithExecutableURL:installer_url + arguments:@[ source_path, target_path ] + error:&error + terminationHandler:nil]; - NSTask* task; - @try { - task = [NSTask launchedTaskWithLaunchPath:installer_path - arguments:arguments]; - } @catch(NSException* exception) { - LOG(ERROR) << "+[NSTask launchedTaskWithLaunchPath:arguments:]: " - << [[exception description] UTF8String]; + if (!task) { + LOG(ERROR) << "NSTask launch error: " + << base::SysNSStringToUTF8(error.description); return false; } [task waitUntilExit]; - exit_status = [task terminationStatus]; + exit_status = task.terminationStatus; } if (exit_status != 0) { @@ -393,7 +387,7 @@ // call EjectAndTrashDiskImage on dmg_bsd_device_name. bool LaunchInstalledApp(NSString* installed_path, const std::string& dmg_bsd_device_name) { - base::FilePath browser_path([installed_path fileSystemRepresentation]); + base::FilePath browser_path = base::mac::NSStringToFilePath(installed_path); base::FilePath helper_path = browser_path.Append("Contents/Frameworks"); helper_path = helper_path.Append(chrome::kFrameworkName); @@ -429,9 +423,10 @@ NSAlert* alert = [[[NSAlert alloc] init] autorelease]; - [alert setAlertStyle:NSAlertStyleWarning]; - [alert setMessageText:title]; - [alert setInformativeText:error]; + alert.alertStyle = NSAlertStyleWarning; + alert.messageText = title; + alert.informativeText = error; + [alert addButtonWithTitle:ok]; [alert runModal]; @@ -442,7 +437,7 @@ DiskImageStatus IsAppRunningFromReadOnlyDiskImage( std::string* dmg_bsd_device_name) { return IsPathOnReadOnlyDiskImage( - [[base::mac::OuterBundle() bundlePath] fileSystemRepresentation], + base::mac::OuterBundle().bundlePath.fileSystemRepresentation, dmg_bsd_device_name); } @@ -456,37 +451,39 @@ NSArray* application_directories = NSSearchPathForDirectoriesInDomains( NSApplicationDirectory, NSLocalDomainMask, YES); - if ([application_directories count] == 0) { + if (application_directories.count) { LOG(ERROR) << "NSSearchPathForDirectoriesInDomains: " << "no local application directories"; return false; } - NSString* application_directory = application_directories[0]; + NSString* application_directory = application_directories.firstObject; - NSFileManager* file_manager = [NSFileManager defaultManager]; + NSFileManager* file_manager = NSFileManager.defaultManager; BOOL is_directory; if (![file_manager fileExistsAtPath:application_directory isDirectory:&is_directory] || !is_directory) { VLOG(1) << "No application directory at " - << [application_directory UTF8String]; + << base::SysNSStringToUTF8(application_directory); return false; } - NSString* source_path = [base::mac::OuterBundle() bundlePath]; - NSString* application_name = [source_path lastPathComponent]; + NSString* source_path = base::mac::OuterBundle().bundlePath; + NSString* application_name = source_path.lastPathComponent; NSString* target_path = [application_directory stringByAppendingPathComponent:application_name]; if ([file_manager fileExistsAtPath:target_path]) { - VLOG(1) << "Something already exists at " << [target_path UTF8String]; + VLOG(1) << "Something already exists at " + << base::SysNSStringToUTF8(target_path); return false; } - NSString* installer_path = - [base::mac::FrameworkBundle() pathForResource:@"install" ofType:@"sh"]; - if (!installer_path) { + NSURL* installer_url = + [base::mac::FrameworkBundle() URLForResource:@"install" + withExtension:@"sh"]; + if (!installer_url) { VLOG(1) << "Could not locate install.sh"; return false; } @@ -501,7 +498,7 @@ // authentication fails. In either case, try to install without privilege // escalation. - if (!InstallFromDiskImage(authorization.release(), installer_path, + if (!InstallFromDiskImage(std::move(authorization), installer_url, source_path, target_path)) { ShowErrorDialog(); return false; @@ -556,21 +553,10 @@ // A small structure used to ferry data between SynchronousDAOperation and // SynchronousDACallbackAdapter. struct SynchronousDACallbackData { - public: - SynchronousDACallbackData() - : callback_called(false), - run_loop_running(false), - can_log(true) { - } - - SynchronousDACallbackData(const SynchronousDACallbackData&) = delete; - SynchronousDACallbackData& operator=(const SynchronousDACallbackData&) = - delete; - base::ScopedCFTypeRef<DADissenterRef> dissenter; - bool callback_called; - bool run_loop_running; - bool can_log; + bool callback_called = false; + bool run_loop_running = false; + bool can_log = true; }; // The callback target for SynchronousDAOperation. Set the fields in @@ -584,8 +570,7 @@ callback_data->callback_called = true; if (dissenter) { - CFRetain(dissenter); - callback_data->dissenter.reset(dissenter); + callback_data->dissenter.reset(dissenter, base::scoped_policy::RETAIN); } // Only stop the run loop if SynchronousDAOperation started it. Don't stop @@ -659,14 +644,15 @@ } // namespace void EjectAndTrashDiskImage(const std::string& dmg_bsd_device_name) { - base::ScopedCFTypeRef<DASessionRef> session(DASessionCreate(NULL)); + base::ScopedCFTypeRef<DASessionRef> session( + DASessionCreate(/*allocator=*/nullptr)); if (!session.get()) { LOG(ERROR) << "DASessionCreate"; return; } - base::ScopedCFTypeRef<DADiskRef> disk( - DADiskCreateFromBSDName(NULL, session, dmg_bsd_device_name.c_str())); + base::ScopedCFTypeRef<DADiskRef> disk(DADiskCreateFromBSDName( + /*allocator=*/nullptr, session, dmg_bsd_device_name.c_str())); if (!disk.get()) { LOG(ERROR) << "DADiskCreateFromBSDName"; return; @@ -723,12 +709,11 @@ NSURL* disk_image_path_nsurl = [NSURL fileURLWithPath:base::SysUTF8ToNSString(disk_image_path)]; - NSError* ns_error = nil; - if (![[NSFileManager defaultManager] trashItemAtURL:disk_image_path_nsurl - resultingItemURL:nil - error:&ns_error]) { - LOG(ERROR) << base::SysNSStringToUTF8([ns_error localizedDescription]); + NSError* error = nil; + if (![NSFileManager.defaultManager trashItemAtURL:disk_image_path_nsurl + resultingItemURL:nil + error:&error]) { + LOG(ERROR) << base::SysNSStringToUTF8(error.localizedDescription); return; } - }
diff --git a/chrome/browser/net/convert_explicitly_allowed_network_ports_pref_unittest.cc b/chrome/browser/net/convert_explicitly_allowed_network_ports_pref_unittest.cc index b56cdb4..6cf6c04e 100644 --- a/chrome/browser/net/convert_explicitly_allowed_network_ports_pref_unittest.cc +++ b/chrome/browser/net/convert_explicitly_allowed_network_ports_pref_unittest.cc
@@ -23,10 +23,9 @@ prefs::kExplicitlyAllowedNetworkPorts); } - void SetManagedPref(base::Value ports) { - local_state_.SetManagedPref( - prefs::kExplicitlyAllowedNetworkPorts, - base::Value::ToUniquePtrValue(std::move(ports))); + void SetList(base::Value::List ports) { + local_state_.SetList(prefs::kExplicitlyAllowedNetworkPorts, + std::move(ports)); } PrefService* local_state() { return &local_state_; } @@ -36,38 +35,38 @@ }; TEST_F(ConvertExplicitlyAllowedNetworkPortsPrefTest, EmptyList) { - SetManagedPref(base::Value(base::Value::Type::LIST)); + SetList(base::Value::List()); auto ports = ConvertExplicitlyAllowedNetworkPortsPref(local_state()); EXPECT_THAT(ports, IsEmpty()); } TEST_F(ConvertExplicitlyAllowedNetworkPortsPrefTest, ValidList) { - base::Value list(base::Value::Type::LIST); - list.Append(base::Value(20)); - list.Append(base::Value(21)); - list.Append(base::Value(22)); - SetManagedPref(std::move(list)); + base::Value::List list; + list.Append(20); + list.Append(21); + list.Append(22); + SetList(std::move(list)); auto ports = ConvertExplicitlyAllowedNetworkPortsPref(local_state()); EXPECT_THAT(ports, ElementsAre(20, 21, 22)); } // This shouldn't happen, but we handle it. TEST_F(ConvertExplicitlyAllowedNetworkPortsPrefTest, ListOfBools) { - base::Value list(base::Value::Type::LIST); - list.Append(base::Value(false)); - list.Append(base::Value(true)); - SetManagedPref(std::move(list)); + base::Value::List list; + list.Append(false); + list.Append(true); + SetList(std::move(list)); auto ports = ConvertExplicitlyAllowedNetworkPortsPref(local_state()); EXPECT_THAT(ports, IsEmpty()); } // This really shouldn't happen. TEST_F(ConvertExplicitlyAllowedNetworkPortsPrefTest, MixedTypesList) { - base::Value list(base::Value::Type::LIST); - list.Append(base::Value(true)); - list.Append(base::Value("79")); - list.Append(base::Value(554)); - SetManagedPref(std::move(list)); + base::Value::List list; + list.Append(true); + list.Append("79"); + list.Append(554); + SetList(std::move(list)); auto ports = ConvertExplicitlyAllowedNetworkPortsPref(local_state()); EXPECT_THAT(ports, ElementsAre(554)); } @@ -78,11 +77,11 @@ 100000, // Too big. 119, // Valid. }; - base::Value list(base::Value::Type::LIST); + base::Value::List list; for (const auto& value : kValues) { - list.Append(base::Value(value)); + list.Append(value); } - SetManagedPref(std::move(list)); + SetList(std::move(list)); auto ports = ConvertExplicitlyAllowedNetworkPortsPref(local_state()); EXPECT_THAT(ports, ElementsAre(119)); }
diff --git a/chrome/browser/net/explicitly_allowed_network_ports_browsertest.cc b/chrome/browser/net/explicitly_allowed_network_ports_browsertest.cc index 24a67ba..6ccbbb6 100644 --- a/chrome/browser/net/explicitly_allowed_network_ports_browsertest.cc +++ b/chrome/browser/net/explicitly_allowed_network_ports_browsertest.cc
@@ -39,12 +39,12 @@ void EnablePort79ByPolicy() { PolicyMap policies; - base::Value list(base::Value::Type::LIST); + base::Value::List list; // Port 25 is just ignored, because it is not on the allowable ports list. - list.Append(base::Value("25")); - list.Append(base::Value("79")); + list.Append("25"); + list.Append("79"); SetPolicy(&policies, policy::key::kExplicitlyAllowedNetworkPorts, - std::move(list)); + base::Value(std::move(list))); UpdateProviderPolicy(policies); }
diff --git a/chrome/browser/net/samesite_cookies_policy_browsertest.cc b/chrome/browser/net/samesite_cookies_policy_browsertest.cc index 5e5f3cc1..186195a6 100644 --- a/chrome/browser/net/samesite_cookies_policy_browsertest.cc +++ b/chrome/browser/net/samesite_cookies_policy_browsertest.cc
@@ -115,13 +115,13 @@ GURL other_domain_url("http://other-domain.example"); // Set a policy to allow Legacy cookie access for one domain only. - base::Value policy_value(base::Value::Type::LIST); + base::Value::List policy_value; policy_value.Append(legacy_allowed_domain_url.host()); PolicyMap policies; // Set a policy to allow Legacy access for the given domain only. SetPolicy(&policies, key::kLegacySameSiteCookieBehaviorEnabledForDomainList, - std::move(policy_value)); + base::Value(std::move(policy_value))); UpdateProviderPolicy(policies); Profile* profile = browser()->profile(); @@ -234,10 +234,10 @@ AllowCrossSchemeFrameLegacyCookies) { PolicyMap policies; // Set a policy to force legacy access for our cookies. - base::Value policy_value(base::Value::Type::LIST); + base::Value::List policy_value; policy_value.Append(GURL("http://a.test").host()); SetPolicy(&policies, key::kLegacySameSiteCookieBehaviorEnabledForDomainList, - std::move(policy_value)); + base::Value(std::move(policy_value))); PolicyTest::UpdateProviderPolicy(policies); // Set a cookie that will only be sent with legacy behavior. @@ -291,10 +291,10 @@ AllowStrictOnCrossSchemeNavigation) { PolicyMap policies; // Set a policy to force legacy access for our cookies. - base::Value policy_value(base::Value::Type::LIST); + base::Value::List policy_value; policy_value.Append(GURL("http://a.test").host()); SetPolicy(&policies, key::kLegacySameSiteCookieBehaviorEnabledForDomainList, - std::move(policy_value)); + base::Value(std::move(policy_value))); PolicyTest::UpdateProviderPolicy(policies); // Set a cookie that will only be sent with legacy behavior.
diff --git a/chrome/browser/net/system_network_context_manager_browsertest.cc b/chrome/browser/net/system_network_context_manager_browsertest.cc index f60bf49..b0af8f24 100644 --- a/chrome/browser/net/system_network_context_manager_browsertest.cc +++ b/chrome/browser/net/system_network_context_manager_browsertest.cc
@@ -196,12 +196,11 @@ EXPECT_TRUE(dynamic_params->patterns_allowed_to_use_all_schemes.empty()); #endif // BUILDFLAG(IS_CHROMEOS) - base::Value patterns_allowed_to_use_all_schemes(base::Value::Type::LIST); - patterns_allowed_to_use_all_schemes.Append( - base::Value("*.allowed.google.com")); - patterns_allowed_to_use_all_schemes.Append(base::Value("*.youtube.com")); - local_state->Set(prefs::kAllHttpAuthSchemesAllowedForOrigins, - std::move(patterns_allowed_to_use_all_schemes)); + base::Value::List patterns_allowed_to_use_all_schemes; + patterns_allowed_to_use_all_schemes.Append("*.allowed.google.com"); + patterns_allowed_to_use_all_schemes.Append("*.youtube.com"); + local_state->SetList(prefs::kAllHttpAuthSchemesAllowedForOrigins, + std::move(patterns_allowed_to_use_all_schemes)); dynamic_params = SystemNetworkContextManager::GetHttpAuthDynamicParamsForTesting();
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc index 9f0809c9..f7f6a65 100644 --- a/chrome/browser/pdf/pdf_extension_test.cc +++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -2256,16 +2256,18 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, PdfAccessibilityEnableLater) { // In this test, load the PDF file first, with accessibility off. - WebContents* guest_contents = LoadPdfGetGuestContents( + MimeHandlerViewGuest* guest = LoadPdfGetMimeHandlerView( embedded_test_server()->GetURL("/pdf/test-bookmarks.pdf")); - ASSERT_TRUE(guest_contents); + ASSERT_TRUE(guest); - // Now enable accessibility globally, and assert that the PDF accessibility - // tree loads. - EnableAccessibilityForWebContents(guest_contents); - WaitForAccessibilityTreeToContainNodeWithName(guest_contents, + // Now enable accessibility globally, and assert that the PDF + // accessibility tree loads. + content::BrowserAccessibilityState::GetInstance()->EnableAccessibility(); + + WebContents* contents = GetActiveWebContents(); + WaitForAccessibilityTreeToContainNodeWithName(contents, "1 First Section\r\n"); - ui::AXTreeUpdate ax_tree = GetAccessibilityTreeSnapshotForPdf(guest_contents); + ui::AXTreeUpdate ax_tree = GetAccessibilityTreeSnapshotForPdf(contents); std::string ax_tree_dump = DumpPdfAccessibilityTree(ax_tree); ASSERT_MULTILINE_STREQ(kExpectedPDFAXTree, ax_tree_dump); } @@ -2340,20 +2342,21 @@ } IN_PROC_BROWSER_TEST_F(PDFExtensionTest, PdfAccessibilitySelection) { - WebContents* guest_contents = LoadPdfGetGuestContents( + MimeHandlerViewGuest* guest = LoadPdfGetMimeHandlerView( embedded_test_server()->GetURL("/pdf/test-bookmarks.pdf")); - ASSERT_TRUE(guest_contents); + ASSERT_TRUE(guest); + WebContents* contents = GetActiveWebContents(); ASSERT_TRUE(content::ExecuteScript( - GetActiveWebContents(), + contents, "document.getElementsByTagName('embed')[0].postMessage(" "{type: 'selectAll'});")); - EnableAccessibilityForWebContents(guest_contents); - WaitForAccessibilityTreeToContainNodeWithName(guest_contents, + content::BrowserAccessibilityState::GetInstance()->EnableAccessibility(); + WaitForAccessibilityTreeToContainNodeWithName(contents, "1 First Section\r\n"); ui::AXTreeUpdate ax_tree_update = - GetAccessibilityTreeSnapshotForPdf(guest_contents); + GetAccessibilityTreeSnapshotForPdf(contents); ui::AXTree ax_tree(ax_tree_update); // Ensure that the selection spans the beginning of the first text @@ -2398,28 +2401,29 @@ "2 Second Section\n" "3"; - WebContents* guest_contents = LoadPdfGetGuestContents( + MimeHandlerViewGuest* guest = LoadPdfGetMimeHandlerView( embedded_test_server()->GetURL("/pdf/test-bookmarks.pdf")); - ASSERT_TRUE(guest_contents); + ASSERT_TRUE(guest); + WebContents* contents = GetActiveWebContents(); ASSERT_TRUE(content::ExecuteScript( - GetActiveWebContents(), + contents, "document.getElementsByTagName('embed')[0].postMessage(" "{type: 'selectAll'});")); - EnableAccessibilityForWebContents(guest_contents); - WaitForAccessibilityTreeToContainNodeWithName(guest_contents, + content::BrowserAccessibilityState::GetInstance()->EnableAccessibility(); + WaitForAccessibilityTreeToContainNodeWithName(contents, "1 First Section\r\n"); // Find pdfRoot node in the accessibility tree. content::FindAccessibilityNodeCriteria find_criteria; find_criteria.role = ax::mojom::Role::kPdfRoot; ui::AXPlatformNodeDelegate* pdf_root = - content::FindAccessibilityNode(guest_contents, find_criteria); + content::FindAccessibilityNode(contents, find_criteria); ASSERT_TRUE(pdf_root); content::ContextMenuInterceptor context_menu_interceptor( - GetPluginFrame(guest_contents)); + GetPluginFrame(guest)); ContextMenuWaiter menu_waiter; // Invoke kShowContextMenu accessibility action on the node with the kPdfRoot
diff --git a/chrome/browser/prefetch/prefetch_prefs.cc b/chrome/browser/prefetch/prefetch_prefs.cc index d14cc84..1a755cd 100644 --- a/chrome/browser/prefetch/prefetch_prefs.cc +++ b/chrome/browser/prefetch/prefetch_prefs.cc
@@ -72,12 +72,13 @@ content::PreloadingEligibility IsSomePreloadingEnabledIgnoringFinch( const PrefService& prefs) { - if (battery::IsBatterySaverEnabled()) { - return content::PreloadingEligibility::kBatterySaverEnabled; - } + // Arrange the results roughly in order of decreasing transience. if (GetPreloadPagesState(prefs) == PreloadPagesState::kNoPreloading) { return content::PreloadingEligibility::kPreloadingDisabled; } + if (battery::IsBatterySaverEnabled()) { + return content::PreloadingEligibility::kBatterySaverEnabled; + } return content::PreloadingEligibility::kEligible; }
diff --git a/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn b/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn index e280462..2b1f0ba 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn +++ b/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn
@@ -77,7 +77,6 @@ ":emoji_data", ":emoji_data_remaining", ":emoticon_data", - ":gif_test_data", ":symbol_data", ":symbol_test_data", ] @@ -193,11 +192,6 @@ outputs = [ "$target_gen_dir/symbol_test_ordering.json" ] } -copy("gif_test_data") { - sources = [ "./gif_test_ordering.json" ] - outputs = [ "$target_gen_dir/gif_test_ordering.json" ] -} - html_to_wrapper("html_wrapper_files") { in_files = html_files out_folder = preprocessed_folder
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_ordering.grdp b/chrome/browser/resources/chromeos/emoji_picker/emoji_ordering.grdp index 47fa671..0aa2eb1 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/emoji_ordering.grdp +++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_ordering.grdp
@@ -8,5 +8,4 @@ <include name="IDR_EMOJI_PICKER_EMOTICON_TEST_ORDERING_JSON" compress="gzip" file="${root_gen_dir}/chrome/browser/resources/chromeos/emoji_picker/emoticon_test_ordering.json" resource_path="emoticon_test_ordering.json" use_base_dir="false" type="chrome_html" /> <include name="IDR_EMOJI_PICKER_SYMBOL_ORDERING_JSON" compress="gzip" file="${root_gen_dir}/chrome/browser/resources/chromeos/emoji_picker/symbol_ordering.json" resource_path="symbol_ordering.json" use_base_dir="false" type="chrome_html" /> <include name="IDR_EMOJI_PICKER_SYMBOL_TEST_ORDERING_JSON" compress="gzip" file="${root_gen_dir}/chrome/browser/resources/chromeos/emoji_picker/symbol_test_ordering.json" resource_path="symbol_test_ordering.json" use_base_dir="false" type="chrome_html" /> - <include name="IDR_EMOJI_PICKER_GIF_TEST_ORDERING_JSON" compress="gzip" file="${root_gen_dir}/chrome/browser/resources/chromeos/emoji_picker/gif_test_ordering.json" resource_path="gif_test_ordering.json" use_base_dir="false" type="chrome_html" /> </grit-part>
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.ts b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.ts index b0cf82b..30e534a6 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.ts +++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.ts
@@ -23,7 +23,7 @@ import * as events from './events.js'; import {CATEGORY_METADATA, CATEGORY_TABS, EMOJI_GROUP_TABS, GIF_CATEGORY_METADATA, gifCategoryTabs, SUBCATEGORY_TABS, TABS_CATEGORY_START_INDEX} from './metadata_extension.js'; import {RecentlyUsedStore} from './store.js'; -import {CategoryEnum, EmojiGroupData, EmojiGroupElement, EmojiVariants, GifSubcategoryData, SubcategoryData} from './types.js'; +import {CategoryEnum, Emoji, EmojiGroupData, EmojiGroupElement, EmojiVariants, SubcategoryData} from './types.js'; export class EmojiPicker extends PolymerElement { static get is() { @@ -226,7 +226,7 @@ await Promise .all( [ - this.fetchOrderingData<EmojiGroupData>(firstResult.url), + this.fetchOrderingData(firstResult.url), this.apiProxy.getFeatureList().then( (response: {featureList: number[]}) => this.setActiveFeatures(response.featureList)), @@ -296,7 +296,7 @@ this.gifSupport = featureList.includes(Feature.EMOJI_PICKER_GIF_SUPPORT); } - fetchOrderingData<T>(url: string): Promise<T> { + fetchOrderingData(url: string): Promise<EmojiGroupData> { return new Promise((resolve) => { const xhr = new XMLHttpRequest(); xhr.onloadend = () => resolve(JSON.parse(xhr.responseText)); @@ -422,7 +422,7 @@ emoji: string, isVariant: boolean, baseEmoji: string, - allVariants?: string[], name: string, text: string, + allVariants?: Emoji[], name: string, text: string, }) { const {text, isVariant, baseEmoji, allVariants, name} = item; const message = this.getMessage(); @@ -707,7 +707,7 @@ * Gets recently used emojis for a category. It gets the history items * and convert them to emojis. */ - getHistoryEmojis(category: CategoryEnum) { + getHistoryEmojis(category: CategoryEnum): EmojiVariants[] { if (this.incognito) { return []; } @@ -715,9 +715,15 @@ return this.categoriesHistory[category]?.data?.history?.map( emoji => ({ base: {string: emoji.base, name: emoji.name, keywords: []}, - alternates: emoji.alternates.map(alternate => { - return {string: alternate, name: emoji.name, keywords: []}; - }), + alternates: emoji.alternates.map( + (alternate: Emoji): + Emoji => { + return { + string: alternate.string, + name: alternate.name, + keywords: [...(alternate.keywords ?? [])], + }; + }), })) ?? []; } @@ -771,7 +777,7 @@ insertHistoryItem(category: CategoryEnum, item: { selectedEmoji: string, baseEmoji: string, - alternates: string[], + alternates: Emoji[], name: string, }) { if (this.incognito) { @@ -942,17 +948,15 @@ this.allCategoryTabs.every( (subCategoryData) => subCategoryData.category !== CategoryEnum.GIF)) { - const dataUrl = EmojiPicker.configs().dataUrls.gif[0]; - // Fetch the mock json data for categories in tests instead of the - // real tenor API - const categories: GifSubcategoryData[] = dataUrl ? - (await this.fetchOrderingData<GifSubcategoryData[]>(dataUrl)) : - (await this.apiProxy.getCategories()).categories; + const {categories} = await this.apiProxy.getCategories(); const categoryTabs = { ...CATEGORY_TABS, gif: categories, }; this.allCategoryTabs = gifCategoryTabs(categoryTabs); + + const {featured} = await this.apiProxy.getFeaturedGifs(); + console.warn(featured); } this.set('category', newCategory);
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker_api_proxy.ts b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker_api_proxy.ts index 20b4864..4e66c36 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker_api_proxy.ts +++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker_api_proxy.ts
@@ -137,4 +137,8 @@ } return EmojiPickerApiProxyImpl.instance; } + + static setInstance(instance: EmojiPickerApiProxy): void { + EmojiPickerApiProxyImpl.instance = instance; + } } \ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/emoji_picker/events.ts b/chrome/browser/resources/chromeos/emoji_picker/events.ts index a6d9c18..c9b1f1a 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/events.ts +++ b/chrome/browser/resources/chromeos/emoji_picker/events.ts
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import {CategoryEnum} from './types'; +import {CategoryEnum, Emoji} from './types'; export type CategoryButtonClickEvent = CustomEvent<{categoryName: CategoryEnum}>; @@ -17,7 +17,7 @@ emoji: string, isVariant: boolean, baseEmoji: string, - allVariants: string[], + allVariants: Emoji[], name: string, text: string, category: CategoryEnum,
diff --git a/chrome/browser/resources/chromeos/emoji_picker/gif_test_ordering.json b/chrome/browser/resources/chromeos/emoji_picker/gif_test_ordering.json deleted file mode 100644 index 00867f0..0000000 --- a/chrome/browser/resources/chromeos/emoji_picker/gif_test_ordering.json +++ /dev/null
@@ -1 +0,0 @@ -[{"name":"#EXCITED"},{"name":"#ANGRY"},{"name":"#CRY"},{"name":"#CHILL OUT"},{"name":"#KISS"}]
diff --git a/chrome/browser/resources/chromeos/emoji_picker/types.ts b/chrome/browser/resources/chromeos/emoji_picker/types.ts index d01bc7f..73996bf 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/types.ts +++ b/chrome/browser/resources/chromeos/emoji_picker/types.ts
@@ -30,7 +30,7 @@ export interface StoredItem { base: string; - alternates: string[]; + alternates: Emoji[]; name: string; }
diff --git a/chrome/browser/resources/chromeos/login/BUILD.gn b/chrome/browser/resources/chromeos/login/BUILD.gn index 54dd118..3c2c4a3 100644 --- a/chrome/browser/resources/chromeos/login/BUILD.gn +++ b/chrome/browser/resources/chromeos/login/BUILD.gn
@@ -273,6 +273,7 @@ "screens/common/user_creation.js", "screens/common/wrong_hwid.js", "screens/login/active_directory_password_change.js", + "screens/login/arc_vm_data_migration.js", "screens/login/checking_downloading_update.js", "screens/login/cryptohome_recovery.js", "screens/login/encryption_migration.js",
diff --git a/chrome/browser/resources/chromeos/login/debug/debug.js b/chrome/browser/resources/chromeos/login/debug/debug.js index e014eaba..454fd34e 100644 --- a/chrome/browser/resources/chromeos/login/debug/debug.js +++ b/chrome/browser/resources/chromeos/login/debug/debug.js
@@ -1331,6 +1331,10 @@ ], }, { + id: 'arc-vm-data-migration', + kind: ScreenKind.NORMAL, + }, + { // TODO(https://crbug.com/1261902): update debug overlay id: 'recommend-apps', kind: ScreenKind.NORMAL,
diff --git a/chrome/browser/resources/chromeos/login/screens.js b/chrome/browser/resources/chromeos/login/screens.js index d36a2060..60e786c2 100644 --- a/chrome/browser/resources/chromeos/login/screens.js +++ b/chrome/browser/resources/chromeos/login/screens.js
@@ -46,6 +46,7 @@ import './screens/common/wrong_hwid.js'; // SCREENS USED DURING THE LOGIN FLOW import './screens/login/active_directory_password_change.js'; +import './screens/login/arc_vm_data_migration.js'; import './screens/login/cryptohome_recovery.js'; import './screens/login/encryption_migration.js'; import './screens/login/gaia_password_changed.js'; @@ -128,6 +129,11 @@ */ export const loginScreensList = [ {tag: 'active-directory-password-change-element', id: 'ad-password-change'}, + { + tag: 'arc-vm-data-migration-element', + id: 'arc-vm-data-migration', + condition: 'isArcVmDataMigrationEnabled', + }, {tag: 'cryptohome-recovery-element', id: 'cryptohome-recovery'}, {tag: 'encryption-migration-element', id: 'encryption-migration'}, {tag: 'gaia-password-changed-element', id: 'gaia-password-changed'}, @@ -165,4 +171,4 @@ {tag: 'quick-start-element', id: 'quick-start'}, {tag: 'update-element', id: 'oobe-update'}, {tag: 'oobe-welcome-element', id: 'connect'}, -]; \ No newline at end of file +];
diff --git a/chrome/browser/resources/chromeos/login/screens/login/BUILD.gn b/chrome/browser/resources/chromeos/login/screens/login/BUILD.gn index fc34b81..891f6fd 100644 --- a/chrome/browser/resources/chromeos/login/screens/login/BUILD.gn +++ b/chrome/browser/resources/chromeos/login/screens/login/BUILD.gn
@@ -11,6 +11,7 @@ closure_flags = default_closure_args deps = [ ":active_directory_password_change", + ":arc_vm_data_migration", ":checking_downloading_update", ":cryptohome_recovery", ":encryption_migration", @@ -41,6 +42,18 @@ extra_deps = [ ":web_components" ] } +js_library("arc_vm_data_migration") { + sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/login/arc_vm_data_migration.js" ] + deps = [ + "../../components/behaviors:login_screen_behavior", + "../../components/behaviors:multi_step_behavior", + "../../components/behaviors:oobe_dialog_host_behavior", + "../../components/behaviors:oobe_i18n_behavior", + "../../components/dialogs:oobe_adaptive_dialog", + ] + extra_deps = [ ":web_components" ] +} + js_library("cryptohome_recovery") { sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/login/cryptohome_recovery.js" ] deps = [ @@ -166,6 +179,7 @@ html_to_js("web_components") { js_files = [ "active_directory_password_change.js", + "arc_vm_data_migration.js", "checking_downloading_update.js", "cryptohome_recovery.js", "encryption_migration.js",
diff --git a/chrome/browser/resources/chromeos/login/screens/login/arc_vm_data_migration.html b/chrome/browser/resources/chromeos/login/screens/login/arc_vm_data_migration.html new file mode 100644 index 0000000..421d2c6d --- /dev/null +++ b/chrome/browser/resources/chromeos/login/screens/login/arc_vm_data_migration.html
@@ -0,0 +1,34 @@ +<!-- +Copyright 2023 The Chromium Authors +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> + +<style include="oobe-dialog-host-styles"> + #description-body { + margin: 8px 0 8px 0; + } +</style> + +<oobe-adaptive-dialog id="welcome-dialog" for-step="welcome" role="dialog"> + <iron-icon slot="icon" icon="oobe-32:googleg"></iron-icon> + <h1 slot="title">[[i18nDynamic(locale, 'welcomeScreenTitle')]]</h1> + <div slot="content" class="landscape-header-aligned"> + <div id="description-header"> + <b>[[i18nDynamic(locale, 'welcomeScreenDescriptionHeader')]]</b> + </div> + <div id="description-body"> + [[i18nDynamic(locale, 'welcomeScreenDescriptionBody')]] + </div> + </div> + <div slot="bottom-buttons"> + <oobe-text-button id="skip-button" + on-click="onSkipButtonClicked_" + text-key="skipButtonLabel"> + </oobe-text-button> + <oobe-text-button inverse id="update-button" + on-click="onUpdateButtonClicked_" + text-key="updateButtonLabel"> + </oobe-text-button> + </div> +</oobe-adaptive-dialog>
diff --git a/chrome/browser/resources/chromeos/login/screens/login/arc_vm_data_migration.js b/chrome/browser/resources/chromeos/login/screens/login/arc_vm_data_migration.js new file mode 100644 index 0000000..d8e5fcd0 --- /dev/null +++ b/chrome/browser/resources/chromeos/login/screens/login/arc_vm_data_migration.js
@@ -0,0 +1,103 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/** + * @fileoverview Polymer element for ARCVM /data migration screen. + */ + +import '//resources/polymer/v3_0/iron-icon/iron-icon.js'; +import '//resources/polymer/v3_0/paper-styles/color.js'; +import '../../components/common_styles/oobe_dialog_host_styles.css.js'; +import '../../components/dialogs/oobe_adaptive_dialog.js'; +import '../../components/oobe_icons.html.js'; + +import {html, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js'; + +import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.js'; +import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.js'; +import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.js'; +import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.js'; +import {OOBE_UI_STATE} from '../../components/display_manager_types.js'; + +// Keep in sync with ArcVmDataMigrationScreenView::UIState. +var ArcVmDataMigrationUIState = { + WELCOME: 'welcome', +}; + +// Keep in sync with kUserAction* in arc_vm_data_migration_screen.cc. +var ArcVmDataMigrationUserAction = { + SKIP: 'skip', + UPDATE: 'update', +}; + +/** + * @constructor + * @extends {PolymerElement} + * @implements {LoginScreenBehaviorInterface} + * @implements {OobeI18nBehaviorInterface} + * @implements {MultiStepBehaviorInterface} + */ +const ArcVmDataMigrationScreenElementBase = mixinBehaviors( + [ + OobeDialogHostBehavior, + OobeI18nBehavior, + LoginScreenBehavior, + MultiStepBehavior, + ], + PolymerElement); + +class ArcVmDataMigrationScreen extends ArcVmDataMigrationScreenElementBase { + static get is() { + return 'arc-vm-data-migration-element'; + } + + static get template() { + return html`{__html_template__}`; + } + + static get properties() { + return {}; + } + + constructor() { + super(); + } + + defaultUIStep() { + return ArcVmDataMigrationUIState.WELCOME; + } + + get UI_STEPS() { + return ArcVmDataMigrationUIState; + } + + get EXTERNAL_API() { + return [ + 'setUIState', + ]; + } + + ready() { + super.ready(); + this.initializeLoginScreen('ArcVmDataMigrationScreen'); + } + + getOobeUIInitialState() { + return OOBE_UI_STATE.MIGRATION; + } + + setUIState(state) { + this.setUIStep(Object.values(ArcVmDataMigrationUIState)[state]); + } + + onSkipButtonClicked_() { + this.userActed(ArcVmDataMigrationUserAction.SKIP); + } + + onUpdateButtonClicked_() { + this.userActed(ArcVmDataMigrationUserAction.UPDATE); + } +} + +customElements.define(ArcVmDataMigrationScreen.is, ArcVmDataMigrationScreen);
diff --git a/chrome/browser/resources/settings/chromeos/date_time_page/date_time_page.ts b/chrome/browser/resources/settings/chromeos/date_time_page/date_time_page.ts index 3ea127c..5cfe6d0 100644 --- a/chrome/browser/resources/settings/chromeos/date_time_page/date_time_page.ts +++ b/chrome/browser/resources/settings/chromeos/date_time_page/date_time_page.ts
@@ -20,9 +20,9 @@ import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js'; import {WebUiListenerMixin} from 'chrome://resources/cr_elements/web_ui_listener_mixin.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; import {PrefsMixin} from '../../prefs/prefs_mixin.js'; import {DeepLinkingMixin} from '../deep_linking_mixin.js';
diff --git a/chrome/browser/resources/settings/chromeos/date_time_page/timezone_selector.ts b/chrome/browser/resources/settings/chromeos/date_time_page/timezone_selector.ts index fea84a0..32789b53 100644 --- a/chrome/browser/resources/settings/chromeos/date_time_page/timezone_selector.ts +++ b/chrome/browser/resources/settings/chromeos/date_time_page/timezone_selector.ts
@@ -9,10 +9,10 @@ import '../../settings_shared.css.js'; import '../../controls/settings_dropdown_menu.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {DropdownMenuOptionList} from '../../controls/settings_dropdown_menu.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {PrefsMixin} from '../../prefs/prefs_mixin.js'; import {CrSettingsPrefs} from '../../prefs/prefs_types.js';
diff --git a/chrome/browser/resources/settings/chromeos/device_page/keyboard.ts b/chrome/browser/resources/settings/chromeos/device_page/keyboard.ts index f16a499..5ada994 100644 --- a/chrome/browser/resources/settings/chromeos/device_page/keyboard.ts +++ b/chrome/browser/resources/settings/chromeos/device_page/keyboard.ts
@@ -16,11 +16,11 @@ import {focusWithoutInk} from 'chrome://resources/ash/common/focus_without_ink_js.js'; import {WebUiListenerMixin} from 'chrome://resources/cr_elements/web_ui_listener_mixin.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {afterNextRender, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {DropdownMenuOptionList} from '../../controls/settings_dropdown_menu.js'; import {FocusConfig} from '../../focus_config.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; import {castExists} from '../assert_extras.js'; import {DeepLinkingMixin} from '../deep_linking_mixin.js';
diff --git a/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_accounts.ts b/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_accounts.ts index 0b54f717..7064c2f 100644 --- a/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_accounts.ts +++ b/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_accounts.ts
@@ -21,9 +21,9 @@ import {CrToastElement} from 'chrome://resources/cr_elements/cr_toast/cr_toast.js'; import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js'; import {WebUiListenerMixin} from 'chrome://resources/cr_elements/web_ui_listener_mixin.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {DomRepeatEvent, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; import {cast, castExists} from '../assert_extras.js'; import {DeepLinkingMixin} from '../deep_linking_mixin.js';
diff --git a/chrome/browser/resources/settings/chromeos/lazy_load.js b/chrome/browser/resources/settings/chromeos/lazy_load.js index 42d3d24..81941c5 100644 --- a/chrome/browser/resources/settings/chromeos/lazy_load.js +++ b/chrome/browser/resources/settings/chromeos/lazy_load.js
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import '../strings.m.js'; import './crostini_page/bruschetta_subpage.js'; import './crostini_page/crostini_arc_adb.js'; import './crostini_page/crostini_arc_adb_confirmation_dialog.js';
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_page.js b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_page.js index cf36cfe..5768f68 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_page.js +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_page.js
@@ -17,20 +17,20 @@ import './multidevice_permissions_setup_dialog.js'; import './multidevice_subpage.js'; +import {assert, assertNotReached} from 'chrome://resources/ash/common/assert.js'; import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/ash/common/web_ui_listener_behavior.js'; -import {assert, assertNotReached} from 'chrome://resources/ash/common/assert.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {beforeNextRender, html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; -import {Route, Router} from '../router.js'; import {NearbyShareSettingsBehavior, NearbyShareSettingsBehaviorInterface} from '../../shared/nearby_share_settings_behavior.js'; import {DeepLinkingBehavior, DeepLinkingBehaviorInterface} from '../deep_linking_behavior.js'; import {recordSettingChange} from '../metrics_recorder.js'; import {routes} from '../os_route.js'; import {PrefsBehavior, PrefsBehaviorInterface} from '../prefs_behavior.js'; import {RouteObserverBehavior, RouteObserverBehaviorInterface} from '../route_observer_behavior.js'; +import {Route, Router} from '../router.js'; import {MultiDeviceBrowserProxy, MultiDeviceBrowserProxyImpl} from './multidevice_browser_proxy.js'; import {MultiDeviceFeature, MultiDeviceFeatureState, MultiDevicePageContentData, MultiDeviceSettingsMode, PhoneHubFeatureAccessStatus, PhoneHubPermissionsSetupAction, PhoneHubPermissionsSetupFlowScreens} from './multidevice_constants.js';
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_item.js b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_item.js index 2e99bc3..4733eaff 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_item.js +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_item.js
@@ -15,7 +15,6 @@ import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/ash/common/web_ui_listener_behavior.js'; import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {recordSettingChange} from '../metrics_recorder.js'; import {routes} from '../os_route.js'; import {OsSettingsRoutes} from '../os_settings_routes.js';
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_subpage.js b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_subpage.js index d129afe..f0d8caf8 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_subpage.js +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_subpage.js
@@ -23,7 +23,6 @@ import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; import {Route} from '../router.js'; import {DeepLinkingBehavior, DeepLinkingBehaviorInterface} from '../deep_linking_behavior.js';
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_tether_item.js b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_tether_item.js index 04c9a71..164d614 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_tether_item.js +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_tether_item.js
@@ -19,11 +19,11 @@ import {MojoInterfaceProviderImpl} from 'chrome://resources/ash/common/network/mojo_interface_provider.js'; import {NetworkListenerBehavior, NetworkListenerBehaviorInterface} from 'chrome://resources/ash/common/network/network_listener_behavior.js'; import {OncMojo} from 'chrome://resources/ash/common/network/onc_mojo.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {CrosNetworkConfigRemote, FilterType, InhibitReason, NetworkStateProperties} from 'chrome://resources/mojo/chromeos/services/network_config/public/mojom/cros_network_config.mojom-webui.js'; import {DeviceStateType, NetworkType} from 'chrome://resources/mojo/chromeos/services/network_config/public/mojom/network_types.mojom-webui.js'; import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {routes} from '../os_route.js'; import {OsSettingsRoutes} from '../os_settings_routes.js';
diff --git a/chrome/browser/resources/settings/chromeos/nearby_share_page/nearby_share_receive_dialog.js b/chrome/browser/resources/settings/chromeos/nearby_share_page/nearby_share_receive_dialog.js index 65f3e8a..717f302 100644 --- a/chrome/browser/resources/settings/chromeos/nearby_share_page/nearby_share_receive_dialog.js +++ b/chrome/browser/resources/settings/chromeos/nearby_share_page/nearby_share_receive_dialog.js
@@ -30,9 +30,9 @@ import 'chrome://resources/cr_elements/cr_view_manager/cr_view_manager.js'; import {assert} from 'chrome://resources/ash/common/assert.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {NearbySettings} from '../../shared/nearby_share_settings_behavior.js'; import {getReceiveManager, observeReceiveManager} from './nearby_share_receive_manager.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.ts b/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.ts index 792a389..116d8b2a1 100644 --- a/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.ts +++ b/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.ts
@@ -21,9 +21,9 @@ import {CrPolicyIndicatorType} from 'chrome://resources/cr_elements/policy/cr_policy_indicator_mixin.js'; import {WebUiListenerMixin} from 'chrome://resources/cr_elements/web_ui_listener_mixin.js'; import {focusWithoutInk} from 'chrome://resources/js/focus_without_ink.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; import {PrefsMixin} from '../../prefs/prefs_mixin.js'; import {castExists} from '../assert_extras.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.ts b/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.ts index e39b938..636b944 100644 --- a/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.ts +++ b/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.ts
@@ -29,10 +29,10 @@ import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js'; import {WebUiListenerMixin} from 'chrome://resources/cr_elements/web_ui_listener_mixin.js'; import {assert} from 'chrome://resources/js/assert_ts.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {sanitizeInnerHtml} from 'chrome://resources/js/parse_html_subset.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {LifetimeBrowserProxyImpl} from '../../lifetime_browser_proxy.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; import {DeepLinkingMixin} from '../deep_linking_mixin.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_bluetooth_forget_device_dialog.ts b/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_bluetooth_forget_device_dialog.ts index 55573fe7..796f483 100644 --- a/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_bluetooth_forget_device_dialog.ts +++ b/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_bluetooth_forget_device_dialog.ts
@@ -13,11 +13,10 @@ import {getDeviceName} from 'chrome://resources/ash/common/bluetooth/bluetooth_utils.js'; import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js'; import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PairedBluetoothDeviceProperties} from 'chrome://resources/mojo/chromeos/ash/services/bluetooth_config/public/mojom/cros_bluetooth_config.mojom-webui.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; - import {getTemplate} from './os_bluetooth_forget_device_dialog.html.js'; interface SettingsBluetoothForgetDeviceDialogElement {
diff --git a/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_bluetooth_summary.ts b/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_bluetooth_summary.ts index 988838d..410a468 100644 --- a/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_bluetooth_summary.ts +++ b/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_bluetooth_summary.ts
@@ -16,10 +16,10 @@ import {getBluetoothConfig} from 'chrome://resources/ash/common/bluetooth/cros_bluetooth_config.js'; import {getInstance as getAnnouncerInstance} from 'chrome://resources/cr_elements/cr_a11y_announcer/cr_a11y_announcer.js'; import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {BluetoothSystemProperties, BluetoothSystemState, DeviceConnectionState, PairedBluetoothDeviceProperties} from 'chrome://resources/mojo/chromeos/ash/services/bluetooth_config/public/mojom/cros_bluetooth_config.mojom-webui.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {routes} from '../os_route.js'; import {RouteOriginMixin} from '../route_origin_mixin.js'; import {Route, Router} from '../router.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_remove_saved_device_dialog.ts b/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_remove_saved_device_dialog.ts index 40991e89..e4dd2bd 100644 --- a/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_remove_saved_device_dialog.ts +++ b/chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_remove_saved_device_dialog.ts
@@ -14,10 +14,9 @@ import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js'; import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js'; import {WebUiListenerMixin} from 'chrome://resources/cr_elements/web_ui_listener_mixin.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; - import {getTemplate} from './os_remove_saved_device_dialog.html.js'; import {FastPairSavedDevice} from './settings_fast_pair_constants.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/input_method_options_page.js b/chrome/browser/resources/settings/chromeos/os_languages_page/input_method_options_page.js index 741cfd11..096bf09a 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/input_method_options_page.js +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/input_method_options_page.js
@@ -13,11 +13,11 @@ import './os_japanese_clear_ime_data_dialog.js'; import './os_japanese_manage_user_dictionary_page.js'; -import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; import {assert, assertNotReached} from 'chrome://resources/ash/common/assert.js'; +import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {afterNextRender, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {routes} from '../os_route.js'; import {PrefsBehavior, PrefsBehaviorInterface} from '../prefs_behavior.js'; import {RouteObserverBehavior, RouteObserverBehaviorInterface} from '../route_observer_behavior.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/input_method_util.js b/chrome/browser/resources/settings/chromeos/os_languages_page/input_method_util.js index 176d2770..a63a552 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/input_method_util.js +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/input_method_util.js
@@ -2,19 +2,19 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import {assert, assertNotReached} from 'chrome://resources/ash/common/assert.js'; +/** + * @fileoverview constants related to input method options. + */ -import {loadTimeData} from '../../i18n_setup.js'; -import {Route} from '../router.js'; +import {assert, assertNotReached} from 'chrome://resources/ash/common/assert.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; + import {routes} from '../os_route.js'; +import {Route} from '../router.js'; import {getInputMethodSettings, SettingsType} from './input_method_settings.js'; import {JAPANESE_INPUT_MODE, JAPANESE_KEYMAP_STYLE, JAPANESE_PUNCTUATION_STYLE, JAPANESE_SECTION_SHORTCUT, JAPANESE_SHIFT_KEY_MODE_STYLE, JAPANESE_SPACE_INPUT_STYLE, JAPANESE_SYMBOL_STYLE} from './input_method_types.js'; - -/** - * @fileoverview constants related to input method options. - */ /** * The prefix string shared by all first party input method ID. * @private @const
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.js b/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.js index 95ac4b07..df769ae 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.js +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.js
@@ -20,19 +20,19 @@ import '../../settings_shared.css.js'; import '../os_settings_page/os_settings_animated_pages.js'; +import {assert} from 'chrome://resources/ash/common/assert.js'; import {focusWithoutInk} from 'chrome://resources/ash/common/focus_without_ink_js.js'; import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; -import {assert} from 'chrome://resources/ash/common/assert.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; -import {Route, Router} from '../router.js'; import {DeepLinkingBehavior, DeepLinkingBehaviorInterface} from '../deep_linking_behavior.js'; import {recordSettingChange} from '../metrics_recorder.js'; import {routes} from '../os_route.js'; import {PrefsBehavior, PrefsBehaviorInterface} from '../prefs_behavior.js'; import {RouteObserverBehavior, RouteObserverBehaviorInterface} from '../route_observer_behavior.js'; +import {Route, Router} from '../router.js'; import {hasOptionsPageInSettings} from './input_method_util.js'; import {getTemplate} from './input_page.html.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.js b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.js index 3a3092c..6ca1d00 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.js +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.js
@@ -22,19 +22,19 @@ import '../../controls/settings_toggle_button.js'; import '../../settings_shared.css.js'; +import {assert} from 'chrome://resources/ash/common/assert.js'; import {focusWithoutInk} from 'chrome://resources/ash/common/focus_without_ink_js.js'; import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; -import {assert} from 'chrome://resources/ash/common/assert.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; -import {Route, Router} from '../router.js'; import {DeepLinkingBehavior, DeepLinkingBehaviorInterface} from '../deep_linking_behavior.js'; import {recordSettingChange} from '../metrics_recorder.js'; import {routes} from '../os_route.js'; import {PrefsBehavior, PrefsBehaviorInterface} from '../prefs_behavior.js'; import {RouteObserverBehavior, RouteObserverBehaviorInterface} from '../route_observer_behavior.js'; +import {Route, Router} from '../router.js'; import {LanguagesMetricsProxy, LanguagesMetricsProxyImpl, LanguagesPageInteraction} from './languages_metrics_proxy.js'; import {LanguageHelper, LanguagesModel, LanguageState} from './languages_types.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_section.js b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_section.js index 7466e98..cea7449 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_section.js +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_section.js
@@ -22,16 +22,15 @@ import '../../settings_vars.css.js'; import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; -import {Router} from '../router.js'; import {routes} from '../os_route.js'; +import {Router} from '../router.js'; import {LanguageHelper, LanguagesModel} from './languages_types.js'; import {getTemplate} from './os_languages_section.html.js'; - // The IME ID for the Accessibility Common extension used by Dictation. /** @type {string} */ const ACCESSIBILITY_COMMON_IME_ID =
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/smart_inputs_page.js b/chrome/browser/resources/settings/chromeos/os_languages_page/smart_inputs_page.js index 7628a042..3934e5e 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/smart_inputs_page.js +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/smart_inputs_page.js
@@ -12,15 +12,15 @@ import '../../settings_shared.css.js'; import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; -import {Route} from '../router.js'; import {DeepLinkingBehavior, DeepLinkingBehaviorInterface} from '../deep_linking_behavior.js'; import {routes} from '../os_route.js'; import {PrefsBehavior, PrefsBehaviorInterface} from '../prefs_behavior.js'; import {RouteObserverBehavior, RouteObserverBehaviorInterface} from '../route_observer_behavior.js'; +import {Route} from '../router.js'; import {getTemplate} from './smart_inputs_page.html.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_people_page/account_manager.js b/chrome/browser/resources/settings/chromeos/os_people_page/account_manager.js index 8f9ec9f..4457440e 100644 --- a/chrome/browser/resources/settings/chromeos/os_people_page/account_manager.js +++ b/chrome/browser/resources/settings/chromeos/os_people_page/account_manager.js
@@ -19,9 +19,9 @@ import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/ash/common/web_ui_listener_behavior.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; import {DeepLinkingBehavior, DeepLinkingBehaviorInterface} from '../deep_linking_behavior.js'; import {getImage} from '../icon.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_people_page/lock_screen.js b/chrome/browser/resources/settings/chromeos/os_people_page/lock_screen.js index 5b3741a1..bc5f8254 100644 --- a/chrome/browser/resources/settings/chromeos/os_people_page/lock_screen.js +++ b/chrome/browser/resources/settings/chromeos/os_people_page/lock_screen.js
@@ -33,10 +33,10 @@ import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; import {LockScreenProgress, recordLockScreenProgress} from 'chrome://resources/ash/common/quick_unlock/lock_screen_constants.js'; import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/ash/common/web_ui_listener_behavior.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {AuthFactor, FactorObserverInterface, FactorObserverReceiver, ManagementType, RecoveryFactorEditor_ConfigureResult} from 'chrome://resources/mojo/chromeos/ash/services/auth_factor_config/public/mojom/auth_factor_config.mojom-webui.js'; import {afterNextRender, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; import {DeepLinkingBehavior, DeepLinkingBehaviorInterface} from '../deep_linking_behavior.js'; import {routes} from '../os_route.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_people_page/os_people_page.js b/chrome/browser/resources/settings/chromeos/os_people_page/os_people_page.js index 7a49fa4..6049036c 100644 --- a/chrome/browser/resources/settings/chromeos/os_people_page/os_people_page.js +++ b/chrome/browser/resources/settings/chromeos/os_people_page/os_people_page.js
@@ -32,9 +32,9 @@ import {focusWithoutInk} from 'chrome://resources/ash/common/focus_without_ink_js.js'; import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/ash/common/i18n_behavior.js'; import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/ash/common/web_ui_listener_behavior.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {afterNextRender, flush, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; import {ProfileInfoBrowserProxyImpl} from '../../people_page/profile_info_browser_proxy.js'; import {SyncBrowserProxyImpl} from '../../people_page/sync_browser_proxy.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_people_page/os_signout_dialog.ts b/chrome/browser/resources/settings/chromeos/os_people_page/os_signout_dialog.ts index 7abd79c..de454d85 100644 --- a/chrome/browser/resources/settings/chromeos/os_people_page/os_signout_dialog.ts +++ b/chrome/browser/resources/settings/chromeos/os_people_page/os_signout_dialog.ts
@@ -17,11 +17,11 @@ import {WebUiListenerMixin} from '//resources/cr_elements/web_ui_listener_mixin.js'; import {sanitizeInnerHtml} from '//resources/js/parse_html_subset.js'; import {microTask, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; -import {loadTimeData} from '../../i18n_setup.js'; +import {SyncBrowserProxyImpl, SyncStatus} from '../../people_page/sync_browser_proxy.js'; import {getTemplate} from './os_signout_dialog.html.js'; -import {SyncBrowserProxyImpl, SyncStatus} from '../../people_page/sync_browser_proxy.js'; export interface OsSettingsSignoutDialogElement { $: {
diff --git a/chrome/browser/resources/settings/chromeos/os_people_page/os_sync_page.ts b/chrome/browser/resources/settings/chromeos/os_people_page/os_sync_page.ts index bbc5df68..9411851 100644 --- a/chrome/browser/resources/settings/chromeos/os_people_page/os_sync_page.ts +++ b/chrome/browser/resources/settings/chromeos/os_people_page/os_sync_page.ts
@@ -33,9 +33,9 @@ import {IronCollapseElement} from '//resources/polymer/v3_0/iron-collapse/iron-collapse.js'; import {PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {FocusConfig} from '../../focus_config.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {PageStatus, StatusAction, SyncBrowserProxy, SyncBrowserProxyImpl, SyncPrefs, SyncStatus} from '../../people_page/sync_browser_proxy.js'; import {RouteObserverMixin} from '../route_observer_mixin.js'; import {Route, Router} from '../router.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_people_page/users_page.js b/chrome/browser/resources/settings/chromeos/os_people_page/users_page.js index e2099c3..bbe853ab 100644 --- a/chrome/browser/resources/settings/chromeos/os_people_page/users_page.js +++ b/chrome/browser/resources/settings/chromeos/os_people_page/users_page.js
@@ -18,9 +18,9 @@ import {assert} from 'chrome://resources/ash/common/assert.js'; import {focusWithoutInk} from 'chrome://resources/ash/common/focus_without_ink_js.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {afterNextRender, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Setting} from '../../mojom-webui/setting.mojom-webui.js'; import {DeepLinkingBehavior, DeepLinkingBehaviorInterface} from '../deep_linking_behavior.js'; import {routes} from '../os_route.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_manufacturer_model_dialog.ts b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_manufacturer_model_dialog.ts index 6f5153f..f909833 100644 --- a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_manufacturer_model_dialog.ts +++ b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_manufacturer_model_dialog.ts
@@ -15,10 +15,9 @@ import './cups_printer_shared.css.js'; import './cups_printers_browser_proxy.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; - import {getTemplate} from './cups_add_printer_manufacturer_model_dialog.html.js'; import {getBaseName, getErrorText, isPPDInfoValid} from './cups_printer_dialog_util.js'; import {CupsPrinterInfo, CupsPrintersBrowserProxy, CupsPrintersBrowserProxyImpl, ManufacturersInfo, ModelsInfo, PrinterSetupResult} from './cups_printers_browser_proxy.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers_entry.ts b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers_entry.ts index 823504f4..0401d3a1 100644 --- a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers_entry.ts +++ b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers_entry.ts
@@ -12,10 +12,9 @@ import './cups_printer_types.js'; import {FocusRowMixin} from 'chrome://resources/js/focus_row_mixin.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; - import {PrinterListEntry, PrinterType} from './cups_printer_types.js'; import {getTemplate} from './cups_printers_entry.html.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.js b/chrome/browser/resources/settings/chromeos/os_settings.js index 6744722..0a0c4f9d 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings.js +++ b/chrome/browser/resources/settings/chromeos/os_settings.js
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import '../strings.m.js'; import '../prefs/prefs.js'; import './device_page/audio.js'; import './device_page/cros_audio_config.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_main/os_settings_main.ts b/chrome/browser/resources/settings/chromeos/os_settings_main/os_settings_main.ts index 742aec5..58c892d0 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings_main/os_settings_main.ts +++ b/chrome/browser/resources/settings/chromeos/os_settings_main/os_settings_main.ts
@@ -17,9 +17,9 @@ import '../../settings_shared.css.js'; import '../../settings_vars.css.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {assertExists} from '../assert_extras.js'; import {OSPageVisibility} from '../os_page_visibility.js'; import {routes} from '../os_route.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_subpage.ts b/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_subpage.ts index d24a826..079ef11 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_subpage.ts +++ b/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_subpage.ts
@@ -25,8 +25,8 @@ import {IronResizableBehavior} from '//resources/polymer/v3_0/iron-resizable-behavior/iron-resizable-behavior.js'; import {afterNextRender, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {EventTracker} from 'chrome://resources/js/event_tracker.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {Constructor} from '../common/types.js'; import {RouteObserverMixin, RouteObserverMixinInterface} from '../route_observer_mixin.js'; import {Route, Router} from '../router.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_ui/os_settings_ui.ts b/chrome/browser/resources/settings/chromeos/os_settings_ui/os_settings_ui.ts index 8414780..4b6e234 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings_ui/os_settings_ui.ts +++ b/chrome/browser/resources/settings/chromeos/os_settings_ui/os_settings_ui.ts
@@ -26,10 +26,10 @@ import {CrDrawerElement} from 'chrome://resources/cr_elements/cr_drawer/cr_drawer.js'; import {FindShortcutMixin} from 'chrome://resources/cr_elements/find_shortcut_mixin.js'; import {assert} from 'chrome://resources/js/assert_ts.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {listenOnce} from 'chrome://resources/js/util_ts.js'; import {Debouncer, DomIf, microTask, PolymerElement, timeOut} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {SettingsPrefsElement} from '../../prefs/prefs.js'; import {castExists} from '../assert_extras.js'; import {setGlobalScrollTarget} from '../global_scroll_target_behavior.js';
diff --git a/chrome/browser/resources/settings/chromeos/parental_controls_page/parental_controls_page.ts b/chrome/browser/resources/settings/chromeos/parental_controls_page/parental_controls_page.ts index bfeba0c..641daaa8 100644 --- a/chrome/browser/resources/settings/chromeos/parental_controls_page/parental_controls_page.ts +++ b/chrome/browser/resources/settings/chromeos/parental_controls_page/parental_controls_page.ts
@@ -15,9 +15,9 @@ import {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js'; import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {loadTimeData} from '../../i18n_setup.js'; import {castExists} from '../assert_extras.js'; import {ParentalControlsBrowserProxy, ParentalControlsBrowserProxyImpl} from './parental_controls_browser_proxy.js';
diff --git a/chrome/browser/resources/settings/chromeos/router.js b/chrome/browser/resources/settings/chromeos/router.js index 333f476..89de8a777 100644 --- a/chrome/browser/resources/settings/chromeos/router.js +++ b/chrome/browser/resources/settings/chromeos/router.js
@@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import '../i18n_setup.js'; - import {assert} from 'chrome://resources/ash/common/assert.js'; import {loadTimeData} from 'chrome://resources/ash/common/load_time_data.m.js';
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/cloud_binary_upload_service.cc b/chrome/browser/safe_browsing/cloud_content_scanning/cloud_binary_upload_service.cc index e5d59d2..8e3bb2c 100644 --- a/chrome/browser/safe_browsing/cloud_content_scanning/cloud_binary_upload_service.cc +++ b/chrome/browser/safe_browsing/cloud_content_scanning/cloud_binary_upload_service.cc
@@ -698,11 +698,6 @@ } void CloudBinaryUploadService::Shutdown() { - if (!active_requests_.empty()) { - base::UmaHistogramCounts10000( - "SafeBrowsingCloudBinaryUploadService.ActiveRequestsAtShutdown", - active_requests_.size()); - } if (binary_fcm_service_) binary_fcm_service_->Shutdown(); }
diff --git a/chrome/browser/share/android/java/res/layout/qrcode_share_layout.xml b/chrome/browser/share/android/java/res/layout/qrcode_share_layout.xml index cdc5774..a5d38ba 100644 --- a/chrome/browser/share/android/java/res/layout/qrcode_share_layout.xml +++ b/chrome/browser/share/android/java/res/layout/qrcode_share_layout.xml
@@ -41,7 +41,8 @@ android:layout_gravity="center_horizontal" android:background="@drawable/qrcode_background" android:gravity="center_horizontal" - android:padding="16dp" /> + android:padding="16dp" + android:importantForAccessibility="no" /> <TextView android:id="@+id/error_message"
diff --git a/chrome/browser/share/android/java/res/layout/screenshot_share_sheet.xml b/chrome/browser/share/android/java/res/layout/screenshot_share_sheet.xml index a43c285..dbe52b1 100644 --- a/chrome/browser/share/android/java/res/layout/screenshot_share_sheet.xml +++ b/chrome/browser/share/android/java/res/layout/screenshot_share_sheet.xml
@@ -30,7 +30,8 @@ android:layout_height="match_parent" android:gravity="center_horizontal" android:layout_gravity="center_horizontal" - android:padding="16dp" /> + android:padding="16dp" + android:importantForAccessibility="no" /> </FrameLayout>
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 67ad377..acef408 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -2702,6 +2702,8 @@ "webui/ash/login/app_launch_splash_screen_handler.h", "webui/ash/login/arc_terms_of_service_screen_handler.cc", "webui/ash/login/arc_terms_of_service_screen_handler.h", + "webui/ash/login/arc_vm_data_migration_screen_handler.cc", + "webui/ash/login/arc_vm_data_migration_screen_handler.h", "webui/ash/login/assistant_optin_flow_screen_handler.cc", "webui/ash/login/assistant_optin_flow_screen_handler.h", "webui/ash/login/auto_enrollment_check_screen_handler.cc",
diff --git a/chrome/browser/ui/android/appmenu/internal/java/res/layout/menu_item.xml b/chrome/browser/ui/android/appmenu/internal/java/res/layout/menu_item.xml index 1c59b0c..2c70dff5 100644 --- a/chrome/browser/ui/android/appmenu/internal/java/res/layout/menu_item.xml +++ b/chrome/browser/ui/android/appmenu/internal/java/res/layout/menu_item.xml
@@ -28,5 +28,6 @@ android:layout_gravity="end" android:gravity="center_vertical" android:tint="@macro/default_icon_color_secondary" - android:duplicateParentState="true" /> + android:duplicateParentState="true" + android:importantForAccessibility="no" /> </LinearLayout>
diff --git a/chrome/browser/ui/android/appmenu/internal/java/res/layout/menu_item_start_with_icon.xml b/chrome/browser/ui/android/appmenu/internal/java/res/layout/menu_item_start_with_icon.xml index 37349f8..a8601eac 100644 --- a/chrome/browser/ui/android/appmenu/internal/java/res/layout/menu_item_start_with_icon.xml +++ b/chrome/browser/ui/android/appmenu/internal/java/res/layout/menu_item_start_with_icon.xml
@@ -6,11 +6,13 @@ --> <!-- Layout for each item in the menu popup --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" style="@style/AppMenuItem" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeightSmall" android:gravity="center_vertical" - android:orientation="horizontal" > + android:orientation="horizontal" + tools:ignore="UseCompoundDrawables"> <org.chromium.ui.widget.ChromeImageView android:id="@+id/menu_item_icon" @@ -19,7 +21,8 @@ android:gravity="center_vertical" android:tint="@color/default_icon_color_secondary_tint_list" android:tintMode="src_in" - android:duplicateParentState="true" /> + android:duplicateParentState="true" + android:importantForAccessibility="no" /> <TextView android:id="@+id/menu_item_text"
diff --git a/chrome/browser/ui/android/multiwindow/java/res/layout/instance_switcher_item.xml b/chrome/browser/ui/android/multiwindow/java/res/layout/instance_switcher_item.xml index 9ecb36a..74d77f2 100644 --- a/chrome/browser/ui/android/multiwindow/java/res/layout/instance_switcher_item.xml +++ b/chrome/browser/ui/android/multiwindow/java/res/layout/instance_switcher_item.xml
@@ -27,7 +27,8 @@ android:layout_height="8dp" android:layout_marginEnd="8dp" android:layout_marginVertical="28dp" - android:layout_gravity="center_vertical" /> + android:layout_gravity="center_vertical" + android:importantForAccessibility="no" /> <org.chromium.ui.widget.ChromeImageView android:id="@+id/favicon"
diff --git a/chrome/browser/ui/android/omnibox/java/res/layout/location_status_icon.xml b/chrome/browser/ui/android/omnibox/java/res/layout/location_status_icon.xml index abb6d51..dbcbb1d 100644 --- a/chrome/browser/ui/android/omnibox/java/res/layout/location_status_icon.xml +++ b/chrome/browser/ui/android/omnibox/java/res/layout/location_status_icon.xml
@@ -6,7 +6,7 @@ --> <merge xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:tools="http://schemas.android.com/tools"> <org.chromium.chrome.browser.omnibox.status.StatusIconView android:id="@+id/location_bar_status_icon_view" @@ -37,7 +37,8 @@ android:src="@android:color/transparent" android:visibility="visible" android:scaleType="center" - android:focusable="false" /> + android:focusable="false" + tools:ignore="ContentDescription" /> </FrameLayout>
diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/optional_button_layout.xml b/chrome/browser/ui/android/toolbar/java/res/layout/optional_button_layout.xml index 14606bf..0bc38d5 100644 --- a/chrome/browser/ui/android/toolbar/java/res/layout/optional_button_layout.xml +++ b/chrome/browser/ui/android/toolbar/java/res/layout/optional_button_layout.xml
@@ -17,7 +17,8 @@ android:scaleType="fitXY" android:id="@+id/swappable_icon_secondary_background" android:layout_gravity="center" - android:visibility="gone" /> + android:visibility="gone" + android:importantForAccessibility="no" /> <org.chromium.components.browser_ui.widget.listmenu.ListMenuButton android:layout_width="match_parent" android:layout_height="40dp" @@ -44,5 +45,6 @@ android:id="@+id/swappable_icon_animation_image" android:layout_gravity="center" android:visibility="gone" - style="@style/ToolbarButton" /> + style="@style/ToolbarButton" + android:importantForAccessibility="no" /> </org.chromium.chrome.browser.toolbar.optional_button.OptionalButtonView> \ No newline at end of file
diff --git a/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_account_item.xml b/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_account_item.xml index 1b2172b..b4d836c 100644 --- a/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_account_item.xml +++ b/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_account_item.xml
@@ -24,7 +24,8 @@ android:layout_width="@dimen/account_selection_account_avatar_size" android:layout_height="@dimen/account_selection_account_avatar_size" android:layout_marginEnd="16dp" - style="@style/ListItemStartIcon" /> + style="@style/ListItemStartIcon" + android:importantForAccessibility="no" /> <LinearLayout android:layout_width="0dp"
diff --git a/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_header_item.xml b/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_header_item.xml index a0e7973a..df8a5df 100644 --- a/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_header_item.xml +++ b/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_header_item.xml
@@ -30,7 +30,8 @@ android:layout_height="@dimen/account_selection_sheet_icon_size" android:layout_gravity="center_vertical" android:layout_marginEnd="16dp" - android:visibility="gone" /> + android:visibility="gone" + android:importantForAccessibility="no" /> <TextView android:id="@+id/header_title" android:layout_width="0dp"
diff --git a/chrome/browser/ui/webui/ash/login/arc_vm_data_migration_screen_handler.cc b/chrome/browser/ui/webui/ash/login/arc_vm_data_migration_screen_handler.cc new file mode 100644 index 0000000..70989c0 --- /dev/null +++ b/chrome/browser/ui/webui/ash/login/arc_vm_data_migration_screen_handler.cc
@@ -0,0 +1,38 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/webui/ash/login/arc_vm_data_migration_screen_handler.h" + +#include "chrome/browser/ash/login/screens/arc_vm_data_migration_screen.h" +#include "components/login/localized_values_builder.h" + +namespace ash { + +ArcVmDataMigrationScreenHandler::ArcVmDataMigrationScreenHandler() + : BaseScreenHandler(kScreenId) {} + +ArcVmDataMigrationScreenHandler::~ArcVmDataMigrationScreenHandler() = default; + +void ArcVmDataMigrationScreenHandler::DeclareLocalizedValues( + ::login::LocalizedValuesBuilder* builder) { + // TODO(b/258278176): Replace strings with l10n ones. + builder->Add("welcomeScreenTitle", u"Update your Chromebook"); + builder->Add("welcomeScreenDescriptionHeader", u"What to expect"); + builder->Add("welcomeScreenDescriptionBody", + u"This is a critical update. During the update you will not be " + u"able to use your device for up to 10 minutes. Please keep " + u"your device connected to a charger during the update."); + builder->Add("skipButtonLabel", u"Remind me later"); + builder->Add("updateButtonLabel", u"Next"); +} + +void ArcVmDataMigrationScreenHandler::Show() { + ShowInWebUI(); +} + +void ArcVmDataMigrationScreenHandler::SetUIState(UIState state) { + CallExternalAPI("setUIState", static_cast<int>(state)); +} + +} // namespace ash
diff --git a/chrome/browser/ui/webui/ash/login/arc_vm_data_migration_screen_handler.h b/chrome/browser/ui/webui/ash/login/arc_vm_data_migration_screen_handler.h new file mode 100644 index 0000000..9686b87 --- /dev/null +++ b/chrome/browser/ui/webui/ash/login/arc_vm_data_migration_screen_handler.h
@@ -0,0 +1,57 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_WEBUI_ASH_LOGIN_ARC_VM_DATA_MIGRATION_SCREEN_HANDLER_H_ +#define CHROME_BROWSER_UI_WEBUI_ASH_LOGIN_ARC_VM_DATA_MIGRATION_SCREEN_HANDLER_H_ + +#include "base/memory/weak_ptr.h" +#include "chrome/browser/ui/webui/ash/login/base_screen_handler.h" +#include "chrome/browser/ui/webui/ash/login/oobe_ui.h" +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace ash { + +// Interface for dependency injection between ArcVmDataMigrationScreen and its +// WebUI representation. +class ArcVmDataMigrationScreenView + : public base::SupportsWeakPtr<ArcVmDataMigrationScreenView> { + public: + inline constexpr static StaticOobeScreenId kScreenId{ + "arc-vm-data-migration", "ArcVmDataMigrationScreen"}; + + enum class UIState { + kWelcome = 0, + }; + + virtual ~ArcVmDataMigrationScreenView() = default; + + virtual void Show() = 0; + virtual void SetUIState(UIState state) = 0; +}; + +class ArcVmDataMigrationScreenHandler : public BaseScreenHandler, + public ArcVmDataMigrationScreenView { + public: + using TView = ArcVmDataMigrationScreenView; + + ArcVmDataMigrationScreenHandler(); + ~ArcVmDataMigrationScreenHandler() override; + ArcVmDataMigrationScreenHandler(const ArcVmDataMigrationScreenHandler&) = + delete; + ArcVmDataMigrationScreenHandler& operator=( + const ArcVmDataMigrationScreenHandler&) = delete; + + private: + // BaseScreenHandler override: + void DeclareLocalizedValues( + ::login::LocalizedValuesBuilder* builder) override; + + // ArcVmDataMigrationScreenView overrides: + void Show() override; + void SetUIState(UIState state) override; +}; + +} // namespace ash + +#endif // CHROME_BROWSER_UI_WEBUI_ASH_LOGIN_ARC_VM_DATA_MIGRATION_SCREEN_HANDLER_H_
diff --git a/chrome/browser/ui/webui/ash/login/oobe_ui.cc b/chrome/browser/ui/webui/ash/login/oobe_ui.cc index 19063049..dc5854bd 100644 --- a/chrome/browser/ui/webui/ash/login/oobe_ui.cc +++ b/chrome/browser/ui/webui/ash/login/oobe_ui.cc
@@ -10,6 +10,7 @@ #include <string> #include <utility> +#include "ash/components/arc/arc_features.h" #include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/public/cpp/esim_manager.h" @@ -44,6 +45,7 @@ #include "chrome/browser/ui/webui/ash/login/app_downloading_screen_handler.h" #include "chrome/browser/ui/webui/ash/login/app_launch_splash_screen_handler.h" #include "chrome/browser/ui/webui/ash/login/arc_terms_of_service_screen_handler.h" +#include "chrome/browser/ui/webui/ash/login/arc_vm_data_migration_screen_handler.h" #include "chrome/browser/ui/webui/ash/login/assistant_optin_flow_screen_handler.h" #include "chrome/browser/ui/webui/ash/login/auto_enrollment_check_screen_handler.h" #include "chrome/browser/ui/webui/ash/login/base_screen_handler.h" @@ -282,6 +284,9 @@ source->AddBoolean("isOobeFlow", is_oobe_flow); source->AddBoolean("isOobeJelly", features::IsOobeJellyEnabled()); source->AddBoolean("isChoobeEnabled", features::IsOobeChoobeEnabled()); + source->AddBoolean( + "isArcVmDataMigrationEnabled", + base::FeatureList::IsEnabled(arc::kEnableArcVmDataMigration)); // Configure shared resources AddProductLogoResources(source); @@ -392,6 +397,10 @@ AddScreenHandler(std::make_unique<ArcTermsOfServiceScreenHandler>()); + if (base::FeatureList::IsEnabled(arc::kEnableArcVmDataMigration)) { + AddScreenHandler(std::make_unique<ArcVmDataMigrationScreenHandler>()); + } + AddScreenHandler(std::make_unique<RecommendAppsScreenHandler>()); AddScreenHandler(std::make_unique<AppDownloadingScreenHandler>());
diff --git a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.cc b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.cc index acd6267a..7e5908b7 100644 --- a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.cc +++ b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.cc
@@ -10,6 +10,7 @@ #include "chrome/browser/cart/cart_handler.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search/background/ntp_custom_background_service_factory.h" +#include "chrome/browser/ui/webui/sanitized_image_source.h" #include "chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_page_handler.h" #include "chrome/browser/ui/webui/webui_util.h" #include "chrome/common/webui_url_constants.h" @@ -76,6 +77,9 @@ base::make_span(kSidePanelCustomizeChromeResources, kSidePanelCustomizeChromeResourcesSize), IDR_SIDE_PANEL_CUSTOMIZE_CHROME_CUSTOMIZE_CHROME_HTML); + + content::URLDataSource::Add(profile_, + std::make_unique<SanitizedImageSource>(profile_)); } CustomizeChromeUI::~CustomizeChromeUI() = default;
diff --git a/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.cc b/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.cc index 106345f0..2301028 100644 --- a/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.cc +++ b/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.cc
@@ -7,18 +7,13 @@ #include <string> #include <utility> -#include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/commerce/shopping_service_factory.h" #include "chrome/browser/feature_engagement/tracker_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/reading_list/reading_list_model_factory.h" #include "chrome/browser/ui/browser_element_identifiers.h" #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/webui/favicon_source.h" -#include "chrome/browser/ui/webui/sanitized_image_source.h" -#include "chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_page_handler.h" -#include "chrome/browser/ui/webui/side_panel/read_anything/read_anything_page_handler.h" #include "chrome/browser/ui/webui/side_panel/reading_list/reading_list_page_handler.h" #include "chrome/browser/ui/webui/webui_util.h" #include "chrome/common/pref_names.h" @@ -26,10 +21,6 @@ #include "chrome/grit/generated_resources.h" #include "chrome/grit/side_panel_resources.h" #include "chrome/grit/side_panel_resources_map.h" -#include "components/bookmarks/browser/bookmark_model.h" -#include "components/bookmarks/common/bookmark_pref_names.h" -#include "components/commerce/core/shopping_service.h" -#include "components/commerce/core/webui/shopping_list_handler.h" #include "components/favicon_base/favicon_url_parser.h" #include "components/prefs/pref_service.h" #include "components/reading_list/core/reading_list_model.h" @@ -51,113 +42,36 @@ profile, chrome::kChromeUIReadLaterHost); static constexpr webui::LocalizedString kLocalizedStrings[] = { {"addCurrentTab", IDS_READ_LATER_ADD_CURRENT_TAB}, - {"bookmarkCopied", IDS_BOOKMARK_MANAGER_TOAST_ITEM_COPIED}, - {"bookmarkDeleted", IDS_BOOKMARK_MANAGER_TOAST_ITEM_DELETED}, - {"bookmarkCreated", IDS_BOOKMARK_SCREEN_READER_CREATED}, - {"bookmarkReordered", IDS_BOOKMARK_SCREEN_READER_REORDERED}, - {"bookmarkMoved", IDS_BOOKMARK_SCREEN_READER_MOVED}, {"emptyStateAddFromDialogSubheader", IDS_READ_LATER_MENU_EMPTY_STATE_ADD_FROM_DIALOG_SUBHEADER}, {"emptyStateHeader", IDS_READ_LATER_MENU_EMPTY_STATE_HEADER}, {"emptyStateSubheader", IDS_READ_LATER_MENU_EMPTY_STATE_SUBHEADER}, {"markCurrentTabAsRead", IDS_READ_LATER_MARK_CURRENT_TAB_READ}, - {"readAnythingTabTitle", IDS_READ_ANYTHING_TITLE}, {"readHeader", IDS_READ_LATER_MENU_READ_HEADER}, {"title", IDS_READ_LATER_TITLE}, {"tooltipDelete", IDS_DELETE}, - {"tooltipMore", IDS_BOOKMARKS_EDIT_MORE}, {"tooltipMarkAsRead", IDS_READ_LATER_MENU_TOOLTIP_MARK_AS_READ}, {"tooltipMarkAsUnread", IDS_READ_LATER_MENU_TOOLTIP_MARK_AS_UNREAD}, {"unreadHeader", IDS_READ_LATER_MENU_UNREAD_HEADER}, - {"shoppingListFolderTitle", IDS_SIDE_PANEL_TRACKED_PRODUCTS}, - {"shoppingListTrackPriceButtonDescription", - IDS_PRICE_TRACKING_TRACK_PRODUCT_ACCESSIBILITY}, - {"shoppingListUntrackPriceButtonDescription", - IDS_PRICE_TRACKING_UNTRACK_PRODUCT_ACCESSIBILITY}, - {"sortByType", IDS_BOOKMARKS_SORT_BY_TYPE}, - {"allBookmarks", IDS_BOOKMARKS_ALL_BOOKMARKS}, - {"priceTrackingLabel", IDS_BOOKMARKS_LABEL_TRACKED_PRODUCTS}, - {"sortNewest", IDS_BOOKMARKS_SORT_NEWEST}, - {"sortOldest", IDS_BOOKMARKS_SORT_OLDEST}, - {"sortAlphabetically", IDS_BOOKMARKS_SORT_ALPHABETICALLY}, - {"sortReverseAlphabetically", IDS_BOOKMARKS_SORT_REVERSE_ALPHABETICALLY}, - {"visualView", IDS_BOOKMARKS_VISUAL_VIEW}, - {"compactView", IDS_BOOKMARKS_COMPACT_VIEW}, - {"sortMenuA11yLabel", IDS_BOOKMARKS_SORT_MENU_A11Y_LABEL}, - {"createNewFolderA11yLabel", IDS_BOOKMARKS_CREATE_NEW_FOLDER_A11Y_LABEL}, - {"editBookmarkListA11yLabel", - IDS_BOOKMARKS_EDIT_BOOKMARK_LIST_A11Y_LABEL}, {"cancelA11yLabel", IDS_CANCEL}, - {"bookmarkNameA11yLabel", IDS_BOOKMARK_AX_EDITOR_NAME_LABEL}, - {"emptyTitle", IDS_BOOKMARKS_EMPTY_STATE_TITLE}, - {"emptyBody", IDS_BOOKMARKS_EMPTY_STATE_BODY}, - {"emptyTitleGuest", IDS_BOOKMARKS_EMPTY_STATE_TITLE_GUEST}, - {"emptyBodyGuest", IDS_BOOKMARKS_EMPTY_STATE_BODY_GUEST}, - {"searchBookmarks", IDS_BOOKMARK_MANAGER_SEARCH_BUTTON}, - {"clearSearch", IDS_BOOKMARK_MANAGER_CLEAR_SEARCH}, - {"selectedBookmarkCount", IDS_BOOKMARK_MANAGER_ITEMS_SELECTED}, - {"menuOpenNewTab", IDS_BOOKMARK_MANAGER_MENU_OPEN_IN_NEW_TAB}, - {"menuOpenNewTabWithCount", - IDS_BOOKMARK_MANAGER_MENU_OPEN_ALL_WITH_COUNT}, - {"menuOpenNewWindow", IDS_BOOKMARK_MANAGER_MENU_OPEN_IN_NEW_WINDOW}, - {"menuOpenNewWindowWithCount", - IDS_BOOKMARK_MANAGER_MENU_OPEN_ALL_NEW_WINDOW_WITH_COUNT}, - {"menuOpenIncognito", IDS_BOOKMARK_MANAGER_MENU_OPEN_INCOGNITO}, - {"menuOpenIncognitoWithCount", - IDS_BOOKMARK_MANAGER_MENU_OPEN_ALL_INCOGNITO_WITH_COUNT}, - {"newFolderTitle", IDS_BOOKMARK_EDITOR_NEW_FOLDER_NAME}, }; for (const auto& str : kLocalizedStrings) webui::AddLocalizedString(source, str.name, str.id); source->AddBoolean("useRipples", views::PlatformStyle::kUseRipples); - PrefService* prefs = profile->GetPrefs(); - source->AddBoolean( - "bookmarksDragAndDropEnabled", - prefs->GetBoolean(bookmarks::prefs::kEditBookmarksEnabled)); - - bookmarks::BookmarkModel* bookmark_model = - BookmarkModelFactory::GetForBrowserContext(profile); - source->AddString( - "bookmarksBarId", - base::NumberToString( - bookmark_model ? bookmark_model->bookmark_bar_node()->id() : -1)); - source->AddString( - "otherBookmarksId", - base::NumberToString(bookmark_model ? bookmark_model->other_node()->id() - : -1)); - ReadingListModel* const reading_list_model = ReadingListModelFactory::GetForBrowserContext(profile); source->AddBoolean( "hasUnseenReadingListEntries", reading_list_model->loaded() ? reading_list_model->unseen_size() : false); - source->AddBoolean("readAnythingEnabled", features::IsReadAnythingEnabled()); - - source->AddBoolean("guestMode", profile->IsGuestSession()); - source->AddBoolean("incognitoMode", profile->IsIncognitoProfile()); - - source->AddBoolean( - "showPowerBookmarks", - base::FeatureList::IsEnabled(features::kPowerBookmarksSidePanel)); - - bool shouldShowBookmark = - prefs->GetBoolean(prefs::kShouldShowSidePanelBookmarkTab); - source->AddBoolean("shouldShowBookmark", shouldShowBookmark); - if (shouldShowBookmark) { - prefs->SetBoolean(prefs::kShouldShowSidePanelBookmarkTab, false); - } - content::URLDataSource::Add( profile, std::make_unique<FaviconSource>( profile, chrome::FaviconUrlFormat::kFavicon2)); webui::SetupWebUIDataSource( source, base::make_span(kSidePanelResources, kSidePanelResourcesSize), IDR_SIDE_PANEL_READING_LIST_READING_LIST_HTML); - content::URLDataSource::Add(profile, - std::make_unique<SanitizedImageSource>(profile)); } ReadingListUI::~ReadingListUI() = default; @@ -179,40 +93,6 @@ } void ReadingListUI::BindInterface( - mojo::PendingReceiver<side_panel::mojom::BookmarksPageHandlerFactory> - receiver) { - bookmarks_page_factory_receiver_.reset(); - bookmarks_page_factory_receiver_.Bind(std::move(receiver)); -} - -void ReadingListUI::CreateBookmarksPageHandler( - mojo::PendingReceiver<side_panel::mojom::BookmarksPageHandler> receiver) { - bookmarks_page_handler_ = - std::make_unique<BookmarksPageHandler>(std::move(receiver), this); -} - -void ReadingListUI::BindInterface( - mojo::PendingReceiver<read_anything::mojom::PageHandlerFactory> receiver) { - read_anything_page_factory_receiver_.reset(); - read_anything_page_factory_receiver_.Bind(std::move(receiver)); -} - -void ReadingListUI::CreatePageHandler( - mojo::PendingRemote<read_anything::mojom::Page> page, - mojo::PendingReceiver<read_anything::mojom::PageHandler> receiver) { - DCHECK(page); - read_anything_page_handler_ = std::make_unique<ReadAnythingPageHandler>( - std::move(page), std::move(receiver), web_ui()); -} - -void ReadingListUI::BindInterface( - mojo::PendingReceiver<shopping_list::mojom::ShoppingListHandlerFactory> - receiver) { - shopping_list_factory_receiver_.reset(); - shopping_list_factory_receiver_.Bind(std::move(receiver)); -} - -void ReadingListUI::BindInterface( mojo::PendingReceiver<help_bubble::mojom::HelpBubbleHandlerFactory> pending_receiver) { if (help_bubble_handler_factory_receiver_.is_bound()) @@ -231,21 +111,6 @@ }); } -void ReadingListUI::CreateShoppingListHandler( - mojo::PendingRemote<shopping_list::mojom::Page> page, - mojo::PendingReceiver<shopping_list::mojom::ShoppingListHandler> receiver) { - Profile* const profile = Profile::FromWebUI(web_ui()); - bookmarks::BookmarkModel* bookmark_model = - BookmarkModelFactory::GetForBrowserContext(profile); - commerce::ShoppingService* shopping_service = - commerce::ShoppingServiceFactory::GetForBrowserContext(profile); - feature_engagement::Tracker* const tracker = - feature_engagement::TrackerFactory::GetForBrowserContext(profile); - shopping_list_handler_ = std::make_unique<commerce::ShoppingListHandler>( - std::move(page), std::move(receiver), bookmark_model, shopping_service, - profile->GetPrefs(), tracker, g_browser_process->GetApplicationLocale()); -} - void ReadingListUI::SetActiveTabURL(const GURL& url) { if (page_handler_) page_handler_->SetActiveTabURL(url);
diff --git a/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h b/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h index c955718d..49d9e1b 100644 --- a/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h +++ b/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h
@@ -7,11 +7,8 @@ #include <memory> -#include "chrome/browser/ui/webui/side_panel/bookmarks/bookmarks.mojom.h" #include "chrome/browser/ui/webui/side_panel/reading_list/reading_list.mojom.h" #include "chrome/browser/ui/webui/webui_load_timer.h" -#include "chrome/common/accessibility/read_anything.mojom.h" -#include "components/commerce/core/mojom/shopping_list.mojom.h" #include "components/user_education/webui/help_bubble_handler.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" @@ -19,19 +16,10 @@ #include "ui/webui/mojo_bubble_web_ui_controller.h" #include "ui/webui/resources/cr_components/help_bubble/help_bubble.mojom.h" -class BookmarksPageHandler; -class ReadAnythingPageHandler; class ReadingListPageHandler; -namespace commerce { -class ShoppingListHandler; -} - class ReadingListUI : public ui::MojoBubbleWebUIController, public reading_list::mojom::PageHandlerFactory, - public side_panel::mojom::BookmarksPageHandlerFactory, - public read_anything::mojom::PageHandlerFactory, - public shopping_list::mojom::ShoppingListHandlerFactory, public help_bubble::mojom::HelpBubbleHandlerFactory { public: explicit ReadingListUI(content::WebUI* web_ui); @@ -45,17 +33,6 @@ mojo::PendingReceiver<reading_list::mojom::PageHandlerFactory> receiver); void BindInterface( - mojo::PendingReceiver<side_panel::mojom::BookmarksPageHandlerFactory> - receiver); - - void BindInterface( - mojo::PendingReceiver<read_anything::mojom::PageHandlerFactory> receiver); - - void BindInterface( - mojo::PendingReceiver<shopping_list::mojom::ShoppingListHandlerFactory> - receiver); - - void BindInterface( mojo::PendingReceiver<help_bubble::mojom::HelpBubbleHandlerFactory> pending_receiver); @@ -67,23 +44,6 @@ mojo::PendingReceiver<reading_list::mojom::PageHandler> receiver) override; - // side_panel::mojom::BookmarksPageHandlerFactory: - void CreateBookmarksPageHandler( - mojo::PendingReceiver<side_panel::mojom::BookmarksPageHandler> receiver) - override; - - // read_anything::mojom::PageHandlerFactory: - void CreatePageHandler( - mojo::PendingRemote<read_anything::mojom::Page> page, - mojo::PendingReceiver<read_anything::mojom::PageHandler> receiver) - override; - - // shopping_list::mojom::ShoppingListHandlerFactory: - void CreateShoppingListHandler( - mojo::PendingRemote<shopping_list::mojom::Page> page, - mojo::PendingReceiver<shopping_list::mojom::ShoppingListHandler> receiver) - override; - // help_bubble::mojom::HelpBubbleHandlerFactory: void CreateHelpBubbleHandler( mojo::PendingRemote<help_bubble::mojom::HelpBubbleClient> client, @@ -94,18 +54,6 @@ mojo::Receiver<reading_list::mojom::PageHandlerFactory> page_factory_receiver_{this}; - std::unique_ptr<BookmarksPageHandler> bookmarks_page_handler_; - mojo::Receiver<side_panel::mojom::BookmarksPageHandlerFactory> - bookmarks_page_factory_receiver_{this}; - - std::unique_ptr<ReadAnythingPageHandler> read_anything_page_handler_; - mojo::Receiver<read_anything::mojom::PageHandlerFactory> - read_anything_page_factory_receiver_{this}; - - std::unique_ptr<commerce::ShoppingListHandler> shopping_list_handler_; - mojo::Receiver<shopping_list::mojom::ShoppingListHandlerFactory> - shopping_list_factory_receiver_{this}; - std::unique_ptr<user_education::HelpBubbleHandler> help_bubble_handler_; mojo::Receiver<help_bubble::mojom::HelpBubbleHandlerFactory> help_bubble_handler_factory_receiver_{this};
diff --git a/chrome/browser/web_applications/BUILD.gn b/chrome/browser/web_applications/BUILD.gn index 08ad384..5b43ac9 100644 --- a/chrome/browser/web_applications/BUILD.gn +++ b/chrome/browser/web_applications/BUILD.gn
@@ -25,6 +25,8 @@ "commands/install_from_info_command.h", "commands/install_from_sync_command.cc", "commands/install_from_sync_command.h", + "commands/install_placeholder_command.cc", + "commands/install_placeholder_command.h", "commands/manifest_update_data_fetch_command.cc", "commands/manifest_update_data_fetch_command.h", "commands/manifest_update_finalize_command.cc", @@ -567,6 +569,7 @@ "commands/fetch_installability_for_chrome_management_unittest.cc", "commands/fetch_manifest_and_install_command_unittest.cc", "commands/install_from_sync_command_unittest.cc", + "commands/install_placeholder_command_unittest.cc", "commands/manifest_update_data_fetch_command_unittest.cc", "commands/manifest_update_finalize_command_unittest.cc", "commands/os_integration_synchronize_command_unittest.cc",
diff --git a/chrome/browser/web_applications/commands/install_placeholder_command.cc b/chrome/browser/web_applications/commands/install_placeholder_command.cc new file mode 100644 index 0000000..b246d40 --- /dev/null +++ b/chrome/browser/web_applications/commands/install_placeholder_command.cc
@@ -0,0 +1,207 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/web_applications/commands/install_placeholder_command.h" + +#include <utility> + +#include "base/strings/utf_string_conversions.h" +#include "chrome/browser/web_applications/external_install_options.h" +#include "chrome/browser/web_applications/install_bounce_metric.h" +#include "chrome/browser/web_applications/locks/app_lock.h" +#include "chrome/browser/web_applications/web_app_data_retriever.h" +#include "chrome/browser/web_applications/web_app_helpers.h" +#include "chrome/browser/web_applications/web_app_install_finalizer.h" +#include "chrome/browser/web_applications/web_app_install_params.h" +#include "chrome/browser/web_applications/web_app_install_utils.h" +#include "components/webapps/browser/install_result_code.h" +#include "content/public/browser/web_contents.h" + +namespace web_app { + +namespace { +// How often we retry to download a custom icon, not counting the first attempt. +const int MAX_ICON_DOWNLOAD_RETRIES = 1; +const base::TimeDelta ICON_DOWNLOAD_RETRY_DELAY = base::Seconds(5); +} // namespace + +InstallPlaceholderCommand::InstallPlaceholderCommand( + const ExternalInstallOptions& install_options, + OnceInstallCallback callback, + base::WeakPtr<content::WebContents> web_contents, + std::unique_ptr<WebAppDataRetriever> data_retriever) + : WebAppCommandTemplate<AppLock>("InstallFromInfoCommand"), + app_id_(GenerateAppId(/*manifest_id=*/"", install_options.install_url)), + lock_description_( + std::make_unique<AppLockDescription, base::flat_set<AppId>>( + {app_id_})), + install_options_(install_options), + callback_(std::move(callback)), + web_contents_(web_contents), + data_retriever_(std::move(data_retriever)) { + debug_value_.Set("external_install_options", install_options.AsDebugValue()); + debug_value_.Set("app_id", app_id_); +} + +InstallPlaceholderCommand::~InstallPlaceholderCommand() = default; + +void InstallPlaceholderCommand::StartWithLock(std::unique_ptr<AppLock> lock) { + lock_ = std::move(lock); + if (install_options_.override_icon_url) { + FetchCustomIcon(install_options_.override_icon_url.value(), + MAX_ICON_DOWNLOAD_RETRIES); + return; + } + + FinalizeInstall(/*bitmaps=*/absl::nullopt); +} + +LockDescription& InstallPlaceholderCommand::lock_description() const { + return *lock_description_; +} + +base::Value InstallPlaceholderCommand::ToDebugValue() const { + return base::Value(debug_value_.Clone()); +} + +void InstallPlaceholderCommand::OnSyncSourceRemoved() {} + +void InstallPlaceholderCommand::OnShutdown() { + Abort(webapps::InstallResultCode::kCancelledOnWebAppProviderShuttingDown); +} + +void InstallPlaceholderCommand::Abort(webapps::InstallResultCode code) { + if (!callback_) { + return; + } + debug_value_.Set("result_code", base::StreamableToString(code)); + webapps::InstallableMetrics::TrackInstallResult(false); + SignalCompletionAndSelfDestruct( + CommandResult::kFailure, + base::BindOnce(std::move(callback_), app_id_, code)); +} + +void InstallPlaceholderCommand::FetchCustomIcon(const GURL& url, + int retries_left) { + if (!web_contents_ || web_contents_->IsBeingDestroyed()) { + Abort(webapps::InstallResultCode::kWebContentsDestroyed); + return; + } + + data_retriever_->GetIcons( + web_contents_.get(), {url}, /*skip_page_favicons=*/true, + base::BindOnce(&InstallPlaceholderCommand::OnCustomIconFetched, + weak_factory_.GetWeakPtr(), url, retries_left)); +} + +void InstallPlaceholderCommand::OnCustomIconFetched( + const GURL& image_url, + int retries_left, + IconsDownloadedResult result, + IconsMap icons_map, + DownloadedIconsHttpResults icons_http_results) { + auto bitmaps_it = icons_map.find(image_url); + if (bitmaps_it != icons_map.end() && !bitmaps_it->second.empty()) { + // Download succeeded. + debug_value_.Set("custom_icon_download_success", true); + FinalizeInstall(bitmaps_it->second); + return; + } + if (retries_left <= 0) { + // Download failed. + debug_value_.Set("custom_icon_download_success", false); + FinalizeInstall(absl::nullopt); + return; + } + // Retry download. + base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask( + FROM_HERE, + base::BindOnce(&InstallPlaceholderCommand::FetchCustomIcon, + weak_factory_.GetWeakPtr(), image_url, retries_left - 1), + ICON_DOWNLOAD_RETRY_DELAY); +} + +void InstallPlaceholderCommand::FinalizeInstall( + absl::optional<std::reference_wrapper<const std::vector<SkBitmap>>> + bitmaps) { + WebAppInstallInfo web_app_info; + +#if defined(CHROMEOS) + web_app_info.title = + install_options_.override_name + ? base::UTF8ToUTF16(install_options_.override_name.value()) + : install_options_.fallback_app_name + ? base::UTF8ToUTF16(install_options_.fallback_app_name.value()) + : base::UTF8ToUTF16(install_options_.install_url.spec()); + + if (bitmaps) { + IconsMap icons_map; + icons_map.emplace(GURL(install_options_.override_icon_url.value()), + bitmaps.value()); + PopulateProductIcons(&web_app_info, &icons_map); + } + +#else // defined(CHROMEOS) + web_app_info.title = + install_options_.fallback_app_name + ? base::UTF8ToUTF16(install_options_.fallback_app_name.value()) + : base::UTF8ToUTF16(install_options_.install_url.spec()); +#endif // defined(CHROMEOS) + + web_app_info.start_url = install_options_.install_url; + web_app_info.install_url = install_options_.install_url; + + web_app_info.user_display_mode = install_options_.user_display_mode; + + WebAppInstallFinalizer::FinalizeOptions options( + ConvertExternalInstallSourceToInstallSource( + install_options_.install_source)); + // Overwrite fields if we are doing a forced reinstall, because some + // values (custom name or icon) might have changed. + options.overwrite_existing_manifest_fields = install_options_.force_reinstall; + + options.add_to_applications_menu = install_options_.add_to_applications_menu; + options.add_to_desktop = install_options_.add_to_desktop; + options.add_to_quick_launch_bar = install_options_.add_to_quick_launch_bar; + + web_app_info.is_placeholder = true; + + lock_->install_finalizer().FinalizeInstall( + web_app_info, options, + base::BindOnce(&InstallPlaceholderCommand::OnInstallFinalized, + weak_factory_.GetWeakPtr())); +} + +void InstallPlaceholderCommand::OnInstallFinalized( + const AppId& app_id, + webapps::InstallResultCode code, + OsHooksErrors os_hooks_errors) { + debug_value_.Set("result_code", base::StreamableToString(code)); + + if (!web_contents_ || web_contents_->IsBeingDestroyed()) { + Abort(webapps::InstallResultCode::kWebContentsDestroyed); + return; + } + + if (code != webapps::InstallResultCode::kSuccessNewInstall) { + Abort(code); + return; + } + + RecordWebAppInstallationTimestamp( + Profile::FromBrowserContext(web_contents_->GetBrowserContext()) + ->GetPrefs(), + app_id, + (ConvertExternalInstallSourceToInstallSource( + install_options_.install_source))); + + RecordAppBanner(web_contents_.get(), install_options_.install_url); + + webapps::InstallableMetrics::TrackInstallResult(webapps::IsSuccess(code)); + SignalCompletionAndSelfDestruct( + CommandResult::kSuccess, + base::BindOnce(std::move(callback_), app_id, code)); +} + +} // namespace web_app
diff --git a/chrome/browser/web_applications/commands/install_placeholder_command.h b/chrome/browser/web_applications/commands/install_placeholder_command.h new file mode 100644 index 0000000..2daf24cf --- /dev/null +++ b/chrome/browser/web_applications/commands/install_placeholder_command.h
@@ -0,0 +1,83 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_WEB_APPLICATIONS_COMMANDS_INSTALL_PLACEHOLDER_COMMAND_H_ +#define CHROME_BROWSER_WEB_APPLICATIONS_COMMANDS_INSTALL_PLACEHOLDER_COMMAND_H_ + +#include <memory> + +#include "base/values.h" +#include "chrome/browser/web_applications/commands/web_app_command.h" +#include "chrome/browser/web_applications/external_install_options.h" +#include "chrome/browser/web_applications/os_integration/os_integration_manager.h" +#include "chrome/browser/web_applications/web_app_install_params.h" + +namespace content { +class WebContents; +} + +namespace web_app { + +class AppLock; +class AppLockDescription; +class LockDescription; +class WebAppDataRetriever; + +// This is used during externally managed app install flow to install a +// placeholder app instead of the target app when the app's install_url fails to +// load. +class InstallPlaceholderCommand : public WebAppCommandTemplate<AppLock> { + public: + InstallPlaceholderCommand( + const ExternalInstallOptions& install_options, + OnceInstallCallback callback, + base::WeakPtr<content::WebContents> web_contents, + std::unique_ptr<WebAppDataRetriever> data_retriever); + + ~InstallPlaceholderCommand() override; + + void StartWithLock(std::unique_ptr<AppLock> lock) override; + + LockDescription& lock_description() const override; + + base::Value ToDebugValue() const override; + + void OnSyncSourceRemoved() override; + void OnShutdown() override; + + private: + void Abort(webapps::InstallResultCode code); + void FetchCustomIcon(const GURL& url, int retries_left); + + void OnCustomIconFetched(const GURL& image_url, + int retries_left, + IconsDownloadedResult result, + IconsMap icons_map, + DownloadedIconsHttpResults icons_http_results); + + void FinalizeInstall( + absl::optional<std::reference_wrapper<const std::vector<SkBitmap>>> + bitmaps); + + void OnInstallFinalized(const AppId& app_id, + webapps::InstallResultCode code, + OsHooksErrors os_hooks_errors); + + const AppId app_id_; + std::unique_ptr<AppLockDescription> lock_description_; + std::unique_ptr<AppLock> lock_; + + const ExternalInstallOptions install_options_; + OnceInstallCallback callback_; + base::WeakPtr<content::WebContents> web_contents_; + std::unique_ptr<WebAppDataRetriever> data_retriever_; + + base::Value::Dict debug_value_; + + base::WeakPtrFactory<InstallPlaceholderCommand> weak_factory_{this}; +}; + +} // namespace web_app + +#endif // CHROME_BROWSER_WEB_APPLICATIONS_COMMANDS_INSTALL_PLACEHOLDER_COMMAND_H_
diff --git a/chrome/browser/web_applications/commands/install_placeholder_command_unittest.cc b/chrome/browser/web_applications/commands/install_placeholder_command_unittest.cc new file mode 100644 index 0000000..199ac6c --- /dev/null +++ b/chrome/browser/web_applications/commands/install_placeholder_command_unittest.cc
@@ -0,0 +1,116 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/web_applications/commands/install_placeholder_command.h" + +#include <memory> + +#include "base/test/gmock_callback_support.h" +#include "base/test/test_future.h" +#include "chrome/browser/web_applications/external_install_options.h" +#include "chrome/browser/web_applications/mojom/user_display_mode.mojom.h" +#include "chrome/browser/web_applications/os_integration/os_integration_manager.h" +#include "chrome/browser/web_applications/test/fake_os_integration_manager.h" +#include "chrome/browser/web_applications/test/fake_web_app_provider.h" +#include "chrome/browser/web_applications/test/mock_data_retriever.h" +#include "chrome/browser/web_applications/test/web_app_install_test_utils.h" +#include "chrome/browser/web_applications/test/web_app_test.h" +#include "chrome/browser/web_applications/web_app_command_manager.h" +#include "chrome/browser/web_applications/web_app_command_scheduler.h" +#include "chrome/browser/web_applications/web_app_constants.h" +#include "chrome/browser/web_applications/web_app_id.h" +#include "chrome/browser/web_applications/web_app_provider.h" +#include "chrome/browser/web_applications/web_app_registrar.h" +#include "components/webapps/browser/install_result_code.h" +#include "content/public/browser/web_contents.h" +#include "net/http/http_status_code.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" + +namespace web_app { +namespace { + +class InstallPlaceholderCommandTest : public WebAppTest { + public: + const int kIconSize = 96; + const GURL kInstallUrl = GURL("https://example.com"); + + void SetUp() override { + WebAppTest::SetUp(); + + test::AwaitStartWebAppProviderAndSubsystems(profile()); + } + + WebAppProvider* provider() { return WebAppProvider::GetForTest(profile()); } + FakeOsIntegrationManager& fake_os_integration_manager() { + return static_cast<FakeOsIntegrationManager&>( + provider()->os_integration_manager()); + } +}; + +TEST_F(InstallPlaceholderCommandTest, InstallPlaceholder) { + ExternalInstallOptions options(kInstallUrl, mojom::UserDisplayMode::kBrowser, + ExternalInstallSource::kExternalPolicy); + base::test::TestFuture<const AppId&, webapps::InstallResultCode> future; + provider()->scheduler().InstallPlaceholder(options, future.GetCallback(), + web_contents()->GetWeakPtr()); + EXPECT_EQ(future.Get<webapps::InstallResultCode>(), + webapps::InstallResultCode::kSuccessNewInstall); + const AppId app_id = future.Get<AppId>(); + EXPECT_TRUE(provider()->registrar_unsafe().IsPlaceholderApp( + app_id, WebAppManagement::kPolicy)); + EXPECT_EQ(fake_os_integration_manager().num_create_shortcuts_calls(), 1u); + if (AreOsIntegrationSubManagersEnabled()) { + absl::optional<proto::WebAppOsIntegrationState> os_state = + provider()->registrar_unsafe().GetAppCurrentOsIntegrationState(app_id); + ASSERT_TRUE(os_state.has_value()); + EXPECT_TRUE(os_state->has_shortcut()); + } +} + +TEST_F(InstallPlaceholderCommandTest, InstallPlaceholderWithOverrideIconUrl) { + ExternalInstallOptions options(kInstallUrl, mojom::UserDisplayMode::kBrowser, + ExternalInstallSource::kExternalPolicy); + const GURL icon_url("https://example.com/test.png"); + options.override_icon_url = icon_url; + base::test::TestFuture<const AppId&, webapps::InstallResultCode> future; + + auto data_retriever = + std::make_unique<testing::StrictMock<MockDataRetriever>>(); + + bool skip_page_favicons = true; + SkBitmap bitmap; + std::vector<gfx::Size> icon_sizes(1, gfx::Size(kIconSize, kIconSize)); + bitmap.allocN32Pixels(kIconSize, kIconSize); + bitmap.eraseColor(SK_ColorRED); + IconsMap icons = {{icon_url, {bitmap}}}; + DownloadedIconsHttpResults http_result = { + {icon_url, net::HttpStatusCode::HTTP_OK}}; + EXPECT_CALL(*data_retriever, + GetIcons(testing::_, testing::ElementsAre(icon_url), + skip_page_favicons, base::test::IsNotNullCallback())) + .WillOnce(base::test::RunOnceCallback<3>( + IconsDownloadedResult::kCompleted, std::move(icons), http_result)); + + auto command = std::make_unique<InstallPlaceholderCommand>( + options, future.GetCallback(), web_contents()->GetWeakPtr(), + std::move(data_retriever)); + provider()->command_manager().ScheduleCommand(std::move(command)); + + EXPECT_EQ(future.Get<webapps::InstallResultCode>(), + webapps::InstallResultCode::kSuccessNewInstall); + const AppId app_id = future.Get<AppId>(); + EXPECT_TRUE(provider()->registrar_unsafe().IsPlaceholderApp( + app_id, WebAppManagement::kPolicy)); + EXPECT_EQ(fake_os_integration_manager().num_create_shortcuts_calls(), 1u); + if (AreOsIntegrationSubManagersEnabled()) { + absl::optional<proto::WebAppOsIntegrationState> os_state = + provider()->registrar_unsafe().GetAppCurrentOsIntegrationState(app_id); + ASSERT_TRUE(os_state.has_value()); + EXPECT_TRUE(os_state->has_shortcut()); + } +} + +} // namespace +} // namespace web_app
diff --git a/chrome/browser/web_applications/externally_managed_app_install_task.cc b/chrome/browser/web_applications/externally_managed_app_install_task.cc index c3beb01..f0e7186 100644 --- a/chrome/browser/web_applications/externally_managed_app_install_task.cc +++ b/chrome/browser/web_applications/externally_managed_app_install_task.cc
@@ -41,12 +41,6 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/web_contents.h" -namespace { -// How often we retry to download a custom icon, not counting the first attempt. -const int MAX_ICON_DOWNLOAD_RETRIES = 1; -const base::TimeDelta ICON_DOWNLOAD_RETRY_DELAY = base::Seconds(5); -} // namespace - namespace web_app { ExternallyManagedAppInstallTask::ExternallyManagedAppInstallTask( @@ -269,110 +263,12 @@ return; } - if (install_options_.override_icon_url) { - FetchCustomIcon(install_options_.override_icon_url.value(), web_contents, - MAX_ICON_DOWNLOAD_RETRIES, std::move(callback)); - return; - } - - FinalizePlaceholderInstall(std::move(callback), absl::nullopt); -} - -void ExternallyManagedAppInstallTask::FetchCustomIcon( - const GURL& url, - content::WebContents* web_contents, - int retries_left, - ResultCallback callback) { - web_contents->DownloadImage( - url, - /*is_favicon, whether to not sent/accept cookies*/ true, gfx::Size(), - /*max_bitmap_size, 0=unlimited*/ 0, - /*bypass_cache*/ false, - base::BindOnce(&ExternallyManagedAppInstallTask::OnCustomIconFetched, - weak_ptr_factory_.GetWeakPtr(), retries_left, web_contents, - std::move(callback))); -} - -void ExternallyManagedAppInstallTask::OnCustomIconFetched( - int retries_left, - content::WebContents* web_contents, - ResultCallback callback, - int id, - int http_status_code, - const GURL& image_url, - const std::vector<SkBitmap>& bitmaps, - const std::vector<gfx::Size>& sizes) { - if (bitmaps.size() > 0) { - // Download succeeded. - FinalizePlaceholderInstall(std::move(callback), bitmaps); - return; - } - if (retries_left <= 0) { - // Download failed. - FinalizePlaceholderInstall(std::move(callback), absl::nullopt); - return; - } - // Retry download. - base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask( - FROM_HERE, - base::BindOnce(&ExternallyManagedAppInstallTask::FetchCustomIcon, - weak_ptr_factory_.GetWeakPtr(), image_url, web_contents, - retries_left - 1, std::move(callback)), - ICON_DOWNLOAD_RETRY_DELAY); -} - -void ExternallyManagedAppInstallTask::FinalizePlaceholderInstall( - ResultCallback callback, - absl::optional<std::reference_wrapper<const std::vector<SkBitmap>>> - bitmaps) { - WebAppInstallInfo web_app_info; - -#if defined(CHROMEOS) - web_app_info.title = - install_options_.override_name - ? base::UTF8ToUTF16(install_options_.override_name.value()) - : install_options_.fallback_app_name - ? base::UTF8ToUTF16(install_options_.fallback_app_name.value()) - : base::UTF8ToUTF16(install_options_.install_url.spec()); - - if (bitmaps) { - IconsMap icons_map; - icons_map.emplace(GURL(install_options_.override_icon_url.value()), - bitmaps.value()); - PopulateProductIcons(&web_app_info, &icons_map); - } - -#else // defined(CHROMEOS) - web_app_info.title = - install_options_.fallback_app_name - ? base::UTF8ToUTF16(install_options_.fallback_app_name.value()) - : base::UTF8ToUTF16(install_options_.install_url.spec()); -#endif // defined(CHROMEOS) - - web_app_info.start_url = install_options_.install_url; - web_app_info.install_url = install_options_.install_url; - - web_app_info.user_display_mode = install_options_.user_display_mode; - - WebAppInstallFinalizer::FinalizeOptions options( - ConvertExternalInstallSourceToInstallSource( - install_options_.install_source)); - // Overwrite fields if we are doing a forced reinstall, because some - // values (custom name or icon) might have changed. - options.overwrite_existing_manifest_fields = install_options_.force_reinstall; - - options.add_to_applications_menu = install_options_.add_to_applications_menu; - options.add_to_desktop = install_options_.add_to_desktop; - options.add_to_quick_launch_bar = install_options_.add_to_quick_launch_bar; - - web_app_info.is_placeholder = true; - - install_finalizer_->FinalizeInstall( - web_app_info, options, - base::BindOnce( - &ExternallyManagedAppInstallTask::OnWebAppInstalledWithHooksErrors, - weak_ptr_factory_.GetWeakPtr(), /*is_placeholder=*/true, - /*offline_install=*/false, std::move(callback))); + command_scheduler_->InstallPlaceholder( + install_options_, + base::BindOnce(&ExternallyManagedAppInstallTask::OnWebAppInstalled, + weak_ptr_factory_.GetWeakPtr(), /*is_placeholder=*/true, + /*offline_install=*/false, std::move(callback)), + web_contents->GetWeakPtr()); } void ExternallyManagedAppInstallTask::OnWebAppInstalled( @@ -381,18 +277,6 @@ ResultCallback result_callback, const AppId& app_id, webapps::InstallResultCode code) { - OnWebAppInstalledWithHooksErrors(is_placeholder, offline_install, - std::move(result_callback), app_id, code, - OsHooksErrors()); -} - -void ExternallyManagedAppInstallTask::OnWebAppInstalledWithHooksErrors( - bool is_placeholder, - bool offline_install, - ResultCallback result_callback, - const AppId& app_id, - webapps::InstallResultCode code, - OsHooksErrors os_hooks_errors) { if (!IsNewInstall(code)) { std::move(result_callback) .Run(ExternallyManagedAppManager::InstallResult(code));
diff --git a/chrome/browser/web_applications/externally_managed_app_install_task.h b/chrome/browser/web_applications/externally_managed_app_install_task.h index 5c09c28..223a7144 100644 --- a/chrome/browser/web_applications/externally_managed_app_install_task.h +++ b/chrome/browser/web_applications/externally_managed_app_install_task.h
@@ -93,25 +93,6 @@ ResultCallback result_callback, absl::optional<AppId> app_id); - void FetchCustomIcon(const GURL& url, - content::WebContents* web_contents, - int retries_left, - ResultCallback callback); - - void OnCustomIconFetched(int retries_left, - content::WebContents* web_contents, - ResultCallback callback, - int id, - int http_status_code, - const GURL& image_url, - const std::vector<SkBitmap>& bitmaps, - const std::vector<gfx::Size>& sizes); - - void FinalizePlaceholderInstall( - ResultCallback callback, - absl::optional<std::reference_wrapper<const std::vector<SkBitmap>>> - bitmaps); - void UninstallPlaceholderApp(content::WebContents* web_contents, ResultCallback result_callback, absl::optional<AppId> app_id); @@ -125,12 +106,6 @@ ResultCallback result_callback, const AppId& app_id, webapps::InstallResultCode code); - void OnWebAppInstalledWithHooksErrors(bool is_placeholder, - bool offline_install, - ResultCallback result_callback, - const AppId& app_id, - webapps::InstallResultCode code, - OsHooksErrors os_hooks_errors); void TryAppInfoFactoryOnFailure( ResultCallback result_callback, ExternallyManagedAppManager::InstallResult result);
diff --git a/chrome/browser/web_applications/web_app_command_scheduler.cc b/chrome/browser/web_applications/web_app_command_scheduler.cc index b81cf4c..4037efbd 100644 --- a/chrome/browser/web_applications/web_app_command_scheduler.cc +++ b/chrome/browser/web_applications/web_app_command_scheduler.cc
@@ -22,6 +22,7 @@ #include "chrome/browser/web_applications/commands/install_app_locally_command.h" #include "chrome/browser/web_applications/commands/install_from_info_command.h" #include "chrome/browser/web_applications/commands/install_from_sync_command.h" +#include "chrome/browser/web_applications/commands/install_placeholder_command.h" #include "chrome/browser/web_applications/commands/manifest_update_data_fetch_command.h" #include "chrome/browser/web_applications/commands/manifest_update_finalize_command.h" #include "chrome/browser/web_applications/commands/os_integration_synchronize_command.h" @@ -159,6 +160,24 @@ std::move(data_retriever))); } +void WebAppCommandScheduler::InstallPlaceholder( + const ExternalInstallOptions& install_options, + OnceInstallCallback callback, + base::WeakPtr<content::WebContents> web_contents) { + if (IsShuttingDown()) { + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(callback), AppId(), + webapps::InstallResultCode:: + kCancelledOnWebAppProviderShuttingDown)); + return; + } + + provider_->command_manager().ScheduleCommand( + std::make_unique<InstallPlaceholderCommand>( + install_options, std::move(callback), web_contents, + std::make_unique<WebAppDataRetriever>())); +} + void WebAppCommandScheduler::PersistFileHandlersUserChoice( const AppId& app_id, bool allowed,
diff --git a/chrome/browser/web_applications/web_app_command_scheduler.h b/chrome/browser/web_applications/web_app_command_scheduler.h index 225c174..57b2fc3d 100644 --- a/chrome/browser/web_applications/web_app_command_scheduler.h +++ b/chrome/browser/web_applications/web_app_command_scheduler.h
@@ -85,13 +85,19 @@ OnceInstallCallback install_callback, const WebAppInstallParams& install_params); - // Install web apps managed by `ExternallyInstalledAppsManager`. + // Install web apps managed by `ExternallyManagedAppManager`. void InstallExternallyManagedApp( const ExternalInstallOptions& external_install_options, OnceInstallCallback callback, base::WeakPtr<content::WebContents> contents, std::unique_ptr<WebAppDataRetriever> data_retriever); + // Install a placeholder app, this is used during externally managed install + // flow when url load fails. + void InstallPlaceholder(const ExternalInstallOptions& install_options, + OnceInstallCallback callback, + base::WeakPtr<content::WebContents> web_contents); + void PersistFileHandlersUserChoice(const AppId& app_id, bool allowed, base::OnceClosure callback);
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index ce00940..21284b4f 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1672855058-73b4b6b55cddd9be774573d3b30eb6fad51dc68b.profdata +chrome-linux-main-1672897988-86407c85ec111363be130e082b41ba1d1df37f9c.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index f4b4ae3..157557b 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1672855058-17ae3f6a67b0615e9c788d63fd3ab82e3fff6168.profdata +chrome-mac-arm-main-1672897988-7cf3f66a5a22353b2a74c703f3435d6b47fe5eaa.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index ac0ab9a..c41008ff 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1672855058-a33ac3ea4ff5a456f12437ad8eddcafb050b74bd.profdata +chrome-mac-main-1672876610-974d091b3bf7dd857f31b5522458c75d4bd89bf1.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 5f86480..738bcb3 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1672855058-1b8a6bf57738b2b9a3f8a89ca50fde02bf6af581.profdata +chrome-win32-main-1672887546-e26006804449950336a5e379867479750ac9b1ff.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 9097e41..1b0a0a2 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1672855058-7b17cc3642a176b312e8c9b59c1c4159a711ab77.profdata +chrome-win64-main-1672876610-fd0f1c9ea385065c13479bfebade47409c97c352.profdata
diff --git a/chrome/chrome_cleaner/test/cleaner_test.cc b/chrome/chrome_cleaner/test/cleaner_test.cc index a61c626..601c2678 100644 --- a/chrome/chrome_cleaner/test/cleaner_test.cc +++ b/chrome/chrome_cleaner/test/cleaner_test.cc
@@ -22,6 +22,7 @@ #include "base/task/thread_pool.h" #include "base/test/task_environment.h" #include "base/test/test_timeouts.h" +#include "base/win/windows_version.h" #include "chrome/chrome_cleaner/buildflags.h" #include "chrome/chrome_cleaner/constants/chrome_cleaner_switches.h" #include "chrome/chrome_cleaner/ipc/chrome_prompt_test_util.h" @@ -549,6 +550,13 @@ } TEST_P(CleanerTest, NoUnsanitizedPaths) { + // Fails on Windows7/8/8.1 + // TODO(crbug/1405033): This is temporary while we disable these tests in + // pre-M110 branches. + if (base::win::GetVersion() <= base::win::Version::WIN8_1) { + return; + } + CreateRemovableUwS(); base::CommandLine command_line = BuildCommandLine(kCleanerExecutable);
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_gif.js b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_gif.js index 290c486..b577638 100644 --- a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_gif.js +++ b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_gif.js
@@ -9,7 +9,8 @@ import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {assertFalse, assertTrue} from 'chrome://webui-test/chromeos/chai_assert.js'; -import {deepQuerySelector, timeout, waitForCondition} from './emoji_picker_test_util.js'; +import {deepQuerySelector, waitForCondition} from './emoji_picker_test_util.js'; +import {TestEmojiPickerApiProxyImpl} from './test_emoji_picker_api_proxy.js'; const ACTIVE_CATEGORY_BUTTON = 'category-button-active'; @@ -36,6 +37,8 @@ document.body.innerHTML = ''; window.localStorage.clear(); + EmojiPickerApiProxyImpl.setInstance(new TestEmojiPickerApiProxyImpl()); + // Set default incognito state to False. EmojiPickerApiProxyImpl.getInstance().isIncognitoTextField = () => new Promise((resolve) => resolve({incognito: false})); @@ -47,7 +50,7 @@ ], 'emoticon': ['/emoticon_test_ordering.json'], 'symbol': ['/symbol_test_ordering.json'], - 'gif': ['/gif_test_ordering.json'], + 'gif': [], }, }); @@ -105,13 +108,14 @@ .map(item => item.shadowRoot.querySelector('cr-icon-button')); const categoryButton = allCategoryButtons[categoryIndex]; categoryButton.click(); - waitForCondition( - () => isCategoryButtonActive(categoryButton) && - allCategoryButtons.every( - (categoryButtonItem, index) => - (index === categoryIndex || - isCategoryButtonActive(categoryButtonItem))), + await waitForCondition( + () => isCategoryButtonActive(categoryButton), 'gif section failed to be active', 5000); + allCategoryButtons.forEach((categoryButtonItem, index) => { + if (index !== categoryIndex) { + assertFalse(isCategoryButtonActive(categoryButtonItem)); + } + }); }); }); }
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/test_emoji_picker_api_proxy.js b/chrome/test/data/webui/chromeos/emoji_picker/test_emoji_picker_api_proxy.js new file mode 100644 index 0000000..3c16b44 --- /dev/null +++ b/chrome/test/data/webui/chromeos/emoji_picker/test_emoji_picker_api_proxy.js
@@ -0,0 +1,59 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import {EmojiPickerApiProxyImpl} from 'chrome://emoji-picker/emoji_picker_api_proxy.js'; + +export class TestEmojiPickerApiProxyImpl extends EmojiPickerApiProxyImpl { + constructor() { + super(); + this.gifs = { + next: '', + results: [ + { + url: { + gif: + 'https://media.tenor.com/TSzcha4Ohi0AAAAC/youre-a-star-star.gif', + gifpreview: + 'https://media.tenor.com/TSzcha4Ohi0AAAAd/youre-a-star-star.gif', + }, + previewDims: { + width: 640, + height: 640, + }, + contentDescription: 'Youre A Star Star GIF', + }, + ], + }; + } + + getCategories() { + return new Promise((resolve) => { + resolve({ + categories: [ + {name: '#EXCITED'}, + {name: '#ANGRY'}, + {name: '#CRY'}, + {name: '#CHILL OUT'}, + {name: '#KISS'}, + ], + }); + }); + } + + getFeaturedGifs(pos) { + return new Promise((resolve) => { + resolve({ + featured: this.gifs, + }); + }); + } + + searchGifs(query, pos) { + return new Promise((resolve) => { + resolve({ + gifs: this.gifs, + }); + }); + } +}
diff --git a/chrome/test/data/webui/chromeos/shortcut_customization/accelerator_lookup_manager_test.ts b/chrome/test/data/webui/chromeos/shortcut_customization/accelerator_lookup_manager_test.ts index 48aa433..5a10042 100644 --- a/chrome/test/data/webui/chromeos/shortcut_customization/accelerator_lookup_manager_test.ts +++ b/chrome/test/data/webui/chromeos/shortcut_customization/accelerator_lookup_manager_test.ts
@@ -5,7 +5,7 @@ import 'chrome://webui-test/mojo_webui_test_support.js'; import {AcceleratorLookupManager} from 'chrome://shortcut-customization/js/accelerator_lookup_manager.js'; -import {fakeAcceleratorConfig, fakeLayoutInfo} from 'chrome://shortcut-customization/js/fake_data.js'; +import {fakeAcceleratorConfig, fakeAmbientConfig, fakeLayoutInfo} from 'chrome://shortcut-customization/js/fake_data.js'; import {FakeShortcutProvider} from 'chrome://shortcut-customization/js/fake_shortcut_provider.js'; import {Accelerator, AcceleratorCategory, AcceleratorSource, AcceleratorState, Modifier, MojoAccelerator, MojoAcceleratorInfo, StandardAcceleratorInfo} from 'chrome://shortcut-customization/js/shortcut_types.js'; import {areAcceleratorsEqual, createEmptyAccelInfoFromAccel} from 'chrome://shortcut-customization/js/shortcut_utils.js'; @@ -84,7 +84,7 @@ } for (const [action, configAccelInfoArr] of Object.entries(accelMap)) { const managerAccelInfoArr = - getManager().getAcceleratorInfos(source, action); + getManager().getStandardAcceleratorInfos(source, action); // The AcceleratorLookupManager processes the MojoAcceleratorConfig // into an AcceleratorConfig. Since the Mojo types (MojoAccelerator, // MojoAcceleratorInfo) have different properties from the non-Mojo @@ -192,7 +192,7 @@ createEmptyAccelInfoFromAccel(expectedNewAccel)); // Check that the accelerator got updated in the lookup. - let lookup = getManager().getAcceleratorInfos( + let lookup = getManager().getStandardAcceleratorInfos( AcceleratorSource.kAsh, expectedAction); // Replacing a default shortcut should not remove the default. Expect // a new accelerator to be added instead. @@ -217,7 +217,7 @@ createEmptyAccelInfoFromAccel(expectedNewDefaultAccel)); // Check that the accelerator got updated in the lookup. - lookup = getManager().getAcceleratorInfos( + lookup = getManager().getStandardAcceleratorInfos( AcceleratorSource.kAsh, expectedAction); // Expect only one accelerator since the previous accelerator has been // removed but the default accelerator has been re-enabled. @@ -254,7 +254,7 @@ createEmptyAccelInfoFromAccel(overridenAccel)); // Verify that the New Desk shortcut now has the ALT + ']' accelerator. - const newDeskLookup = getManager().getAcceleratorInfos( + const newDeskLookup = getManager().getStandardAcceleratorInfos( AcceleratorSource.kAsh, newDeskAction); assertEquals(2, newDeskLookup.length); assertTrue(areAcceleratorsEqual( @@ -263,7 +263,7 @@ // There should still be 1 accelerator for snapWindowRight, but the // default should be disabled. - const snapWindowRightLookup = getManager().getAcceleratorInfos( + const snapWindowRightLookup = getManager().getStandardAcceleratorInfos( AcceleratorSource.kAsh, snapWindowRightAction); assertEquals(1, snapWindowRightLookup.length); assertEquals( @@ -296,7 +296,7 @@ createEmptyAccelInfoFromAccel(expectedNewAccel)); // Check that the accelerator got updated in the lookup. - const lookup = getManager().getAcceleratorInfos( + const lookup = getManager().getStandardAcceleratorInfos( AcceleratorSource.kAsh, expectedAction); assertEquals(2, lookup.length); assertTrue(areAcceleratorsEqual( @@ -330,7 +330,7 @@ createEmptyAccelInfoFromAccel(overridenAccel)); // Verify that the New Desk shortcut now has the ALT + ']' accelerator. - const newDeskLookup = getManager().getAcceleratorInfos( + const newDeskLookup = getManager().getStandardAcceleratorInfos( AcceleratorSource.kAsh, newDeskAction); assertEquals(2, newDeskLookup.length); assertTrue(areAcceleratorsEqual( @@ -339,7 +339,7 @@ // Replacing a default accelerator should not remove it but rather disable // it. - const snapWindowRightLookup = getManager().getAcceleratorInfos( + const snapWindowRightLookup = getManager().getStandardAcceleratorInfos( AcceleratorSource.kAsh, snapWindowRightAction); assertEquals(1, snapWindowRightLookup.length); assertEquals( @@ -358,7 +358,7 @@ const expectedAction = 1; // Initially there is only one accelerator for Snap Window Right. - const lookup = getManager().getAcceleratorInfos( + const lookup = getManager().getStandardAcceleratorInfos( AcceleratorSource.kAsh, expectedAction); assertEquals(1, lookup.length); @@ -390,7 +390,7 @@ const expectedAction = 1; // Initially there is only one accelerator for Snap Window Right. - const lookup = getManager().getAcceleratorInfos( + const lookup = getManager().getStandardAcceleratorInfos( AcceleratorSource.kAsh, expectedAction); assertEquals(1, lookup.length); @@ -429,4 +429,25 @@ getManager().getAcceleratorIdFromReverseLookup(removedAccelerator)); }); }); + + test('AcceleratorsAddedToCorrectLookupMap', () => { + getProvider().setFakeAcceleratorConfig(fakeAmbientConfig); + return getProvider().getAccelerators().then((result) => { + assertDeepEquals(fakeAmbientConfig, result.config); + + getManager().setAcceleratorLookup(result.config); + // New tab accelerator from kAmbient[0]!. + const expectedNewTabAction = 0; + // Cycle tabs accelerator from kAmbient[1]!. + const expectedCycleTabsAction = 1; + + const standardLookup = getManager().getStandardAcceleratorInfos( + AcceleratorSource.kAmbient, expectedNewTabAction); + assertEquals(1, standardLookup.length); + + const textLookup = getManager().getTextAcceleratorInfos( + AcceleratorSource.kAmbient, expectedCycleTabsAction); + assertEquals(1, textLookup.length); + }); + }); }); \ No newline at end of file
diff --git a/chrome/test/data/webui/settings/chromeos/cups_printer_entry_tests.js b/chrome/test/data/webui/settings/chromeos/cups_printer_entry_tests.js index e668df1..4fb9bad 100644 --- a/chrome/test/data/webui/settings/chromeos/cups_printer_entry_tests.js +++ b/chrome/test/data/webui/settings/chromeos/cups_printer_entry_tests.js
@@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'chrome://os-settings/chromeos/lazy_load.js'; - import {PrinterType} from 'chrome://os-settings/chromeos/lazy_load.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chrome/test/data/webui/settings/chromeos/os_privacy_page_test.js b/chrome/test/data/webui/settings/chromeos/os_privacy_page_test.js index 0385fb3..ea30682 100644 --- a/chrome/test/data/webui/settings/chromeos/os_privacy_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/os_privacy_page_test.js
@@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'chrome://os-settings/chromeos/lazy_load.js'; - import {PrivacyHubBrowserProxyImpl} from 'chrome://os-settings/chromeos/lazy_load.js'; import {DataAccessPolicyState, PeripheralDataAccessBrowserProxyImpl, Router, routes, SecureDnsMode} from 'chrome://os-settings/chromeos/os_settings.js'; import {assert} from 'chrome://resources/ash/common/assert.js';
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index ec51362..6ce1d18 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -15301.0.0 \ No newline at end of file +15303.0.0 \ No newline at end of file
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_helper.cc b/chromeos/ash/components/browser_context_helper/browser_context_helper.cc index aa0e43c3..39744d5 100644 --- a/chromeos/ash/components/browser_context_helper/browser_context_helper.cc +++ b/chromeos/ash/components/browser_context_helper/browser_context_helper.cc
@@ -114,6 +114,25 @@ return delegate_->GetUserDataDir()->Append(kSigninBrowserContextBaseName); } +content::BrowserContext* BrowserContextHelper::GetSigninBrowserContext() { + content::BrowserContext* browser_context = + delegate_->GetBrowserContextByPath(GetSigninBrowserContextPath()); + if (!browser_context) { + return nullptr; + } + return delegate_->GetOrCreatePrimaryOTRBrowserContext(browser_context); +} + +content::BrowserContext* +BrowserContextHelper::DeprecatedGetOrCreateSigninBrowserContext() { + content::BrowserContext* browser_context = + delegate_->DeprecatedGetBrowserContext(GetSigninBrowserContextPath()); + if (!browser_context) { + return nullptr; + } + return delegate_->GetOrCreatePrimaryOTRBrowserContext(browser_context); +} + base::FilePath BrowserContextHelper::GetLockScreenAppBrowserContextPath() const { return delegate_->GetUserDataDir()->Append( @@ -124,4 +143,13 @@ return delegate_->GetUserDataDir()->Append(kLockScreenBrowserContextBaseName); } +content::BrowserContext* BrowserContextHelper::GetLockScreenBrowserContext() { + content::BrowserContext* browser_context = + delegate_->GetBrowserContextByPath(GetLockScreenBrowserContextPath()); + if (!browser_context) { + return nullptr; + } + return delegate_->GetOrCreatePrimaryOTRBrowserContext(browser_context); +} + } // namespace ash
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_helper.h b/chromeos/ash/components/browser_context_helper/browser_context_helper.h index 5425971..b96cf95 100644 --- a/chromeos/ash/components/browser_context_helper/browser_context_helper.h +++ b/chromeos/ash/components/browser_context_helper/browser_context_helper.h
@@ -42,6 +42,11 @@ virtual content::BrowserContext* DeprecatedGetBrowserContext( const base::FilePath& path) = 0; + // Returns the primary off-the-record BrowserContext instance corresponding + // to the given `browser_context`. If there is not, creates the one. + virtual content::BrowserContext* GetOrCreatePrimaryOTRBrowserContext( + content::BrowserContext* browser_context) = 0; + // Returns the path to the user data directory. // If the system is not initialized, returns nullptr (for unittests). virtual const base::FilePath* GetUserDataDir() = 0; @@ -98,12 +103,25 @@ // Returns the path of signin browser context. base::FilePath GetSigninBrowserContextPath() const; + // Returns signin browser context instance. If not yet created, returns + // nullptr. Note that returned instance is off-the-record one. + content::BrowserContext* GetSigninBrowserContext(); + + // DEPRECATED. Please use GetSinginBrowserContext() instead. + // Similar to GetSigninBrowserContext, but if not yet created, + // this loads the BrowserContext instance, instead of returning nullptr. + content::BrowserContext* DeprecatedGetOrCreateSigninBrowserContext(); + // Returns the path of lock-screen-app browser context. base::FilePath GetLockScreenAppBrowserContextPath() const; // Returns the path of lock-screen browser context. base::FilePath GetLockScreenBrowserContextPath() const; + // Returns lock-screen browser context instance. If not yet created, + // returns nullptr. Note that returned instance is off-the-record one. + content::BrowserContext* GetLockScreenBrowserContext(); + private: // This is only for graceful migration. // TODO(crbug.com/1325210): Remove this when migration is done.
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc b/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc index 310061e..98c2f87 100644 --- a/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc +++ b/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc
@@ -14,19 +14,60 @@ class FakeBrowserContextHelperDelegate : public BrowserContextHelper::Delegate { public: + FakeBrowserContextHelperDelegate() { + CHECK(user_data_dir_.CreateUniqueTempDir()); + } + + content::BrowserContext* CreateBrowserContext(const base::FilePath& path, + bool is_off_the_record) { + auto browser_context = std::make_unique<content::TestBrowserContext>(path); + browser_context->set_is_off_the_record(is_off_the_record); + auto* browser_context_ptr = browser_context.get(); + browser_context_list_.push_back(std::move(browser_context)); + return browser_context_ptr; + } + + // BrowserContextHelper::Delegate overrides. content::BrowserContext* GetBrowserContextByPath( const base::FilePath& path) override { + for (auto& candidate : browser_context_list_) { + if (candidate->GetPath() == path && !candidate->IsOffTheRecord()) { + return candidate.get(); + } + } return nullptr; } + content::BrowserContext* DeprecatedGetBrowserContext( const base::FilePath& path) override { - return nullptr; + auto* browser_context = GetBrowserContextByPath(path); + if (browser_context) { + return nullptr; + } + + return CreateBrowserContext(path, /*is_off_the_record=*/false); } - const base::FilePath* GetUserDataDir() override { return &user_data_dir_; } + content::BrowserContext* GetOrCreatePrimaryOTRBrowserContext( + content::BrowserContext* browser_context) override { + const auto& path = browser_context->GetPath(); + for (auto& candidate : browser_context_list_) { + if (candidate.get() != browser_context && candidate->GetPath() == path && + candidate->IsOffTheRecord()) { + return candidate.get(); + } + } + return CreateBrowserContext(path, /*is_off_the_record=*/true); + } + + const base::FilePath* GetUserDataDir() override { + return &user_data_dir_.GetPath(); + } private: - base::FilePath user_data_dir_{"user_data_dir"}; + base::ScopedTempDir user_data_dir_; + std::vector<std::unique_ptr<content::TestBrowserContext>> + browser_context_list_; }; class BrowserContextHelperTest : public testing::Test { @@ -91,16 +132,76 @@ } TEST_F(BrowserContextHelperTest, GetBrowserContextPathByUserIdHash) { - BrowserContextHelper helper( - std::make_unique<FakeBrowserContextHelperDelegate>()); + auto delegate = std::make_unique<FakeBrowserContextHelperDelegate>(); + auto* delegate_ptr = delegate.get(); + BrowserContextHelper helper(std::move(delegate)); + // u- prefix is expected. See GetUserBrowserContextDirName for details. - EXPECT_EQ(base::FilePath("user_data_dir/u-0123456789"), + EXPECT_EQ(delegate_ptr->GetUserDataDir()->Append("u-0123456789"), helper.GetBrowserContextPathByUserIdHash("0123456789")); // Special use name case. - EXPECT_EQ(base::FilePath("user_data_dir/user"), + EXPECT_EQ(delegate_ptr->GetUserDataDir()->Append("user"), helper.GetBrowserContextPathByUserIdHash("user")); - EXPECT_EQ(base::FilePath("user_data_dir/test-user"), + EXPECT_EQ(delegate_ptr->GetUserDataDir()->Append("test-user"), helper.GetBrowserContextPathByUserIdHash("test-user")); } +TEST_F(BrowserContextHelperTest, GetSigninBrowserContext) { + auto delegate = std::make_unique<FakeBrowserContextHelperDelegate>(); + auto* delegate_ptr = delegate.get(); + BrowserContextHelper helper(std::move(delegate)); + + // If not yet loaded, GetSigninBrowserContext() should return nullptr. + EXPECT_FALSE(helper.GetSigninBrowserContext()); + + // Load the signin browser context. + delegate_ptr->CreateBrowserContext( + delegate_ptr->GetUserDataDir()->Append( + BrowserContextHelper::kSigninBrowserContextBaseName), + /*is_off_the_record=*/false); + + // Then it should start returning the instance. + auto* signin_browser_context = helper.GetSigninBrowserContext(); + ASSERT_TRUE(signin_browser_context); + EXPECT_EQ(BrowserContextHelper::kSigninBrowserContextBaseName, + signin_browser_context->GetPath().BaseName().value()); + EXPECT_TRUE(signin_browser_context->IsOffTheRecord()); +} + +TEST_F(BrowserContextHelperTest, DeprecatedGetOrCreateSigninBrowserContext) { + BrowserContextHelper helper( + std::make_unique<FakeBrowserContextHelperDelegate>()); + + // DeprecatedGetOrCreateSigninBrowserContext() should create the instance, + // if it is not yet. + auto* signin_browser_context = + helper.DeprecatedGetOrCreateSigninBrowserContext(); + ASSERT_TRUE(signin_browser_context); + // Other than that, it should work in the same way with + // GetSigninBrowserContext(). + EXPECT_EQ(helper.GetSigninBrowserContext(), signin_browser_context); +} + +TEST_F(BrowserContextHelperTest, GetLockScreenBrowserContext) { + auto delegate = std::make_unique<FakeBrowserContextHelperDelegate>(); + auto* delegate_ptr = delegate.get(); + BrowserContextHelper helper(std::move(delegate)); + + // If not yet loaded, GetLockScreenBrowserContext() should return nullptr. + EXPECT_FALSE(helper.GetLockScreenBrowserContext()); + + // Load the lock screen browser context. + delegate_ptr->CreateBrowserContext( + delegate_ptr->GetUserDataDir()->Append( + BrowserContextHelper::kLockScreenBrowserContextBaseName), + /*is_off_the_record=*/false); + + // Then it should start returning the instance. + auto* lock_screen_browser_context = helper.GetLockScreenBrowserContext(); + ASSERT_TRUE(lock_screen_browser_context); + EXPECT_EQ(BrowserContextHelper::kLockScreenBrowserContextBaseName, + lock_screen_browser_context->GetPath().BaseName().value()); + EXPECT_TRUE(lock_screen_browser_context->IsOffTheRecord()); +} + } // namespace ash
diff --git a/chromeos/ash/components/drivefs/drivefs_pin_manager.cc b/chromeos/ash/components/drivefs/drivefs_pin_manager.cc index fa059068..5a3de27 100644 --- a/chromeos/ash/components/drivefs/drivefs_pin_manager.cc +++ b/chromeos/ash/components/drivefs/drivefs_pin_manager.cc
@@ -124,6 +124,22 @@ << ")"; } +std::ostream& operator<<(std::ostream& out, Quoter<mojom::FileChange::Type> q) { + using Type = mojom::FileChange::Type; + switch (q.value) { +#define PRINT(s) \ + case Type::k##s: \ + return out << #s; + PRINT(Create) + PRINT(Delete) + PRINT(Modify) +#undef PRINT + } + + return out << "FileChange::Type(" + << static_cast<std::underlying_type_t<Type>>(q.value) << ")"; +} + std::ostream& operator<<(std::ostream& out, Quoter<mojom::FileMetadata> q) { const mojom::FileMetadata& md = q.value; return out << "{type: " << Quote(md.type) @@ -142,6 +158,13 @@ << ", bytes_to_transfer: " << e.bytes_to_transfer << "}"; } +std::ostream& operator<<(std::ostream& out, Quoter<mojom::FileChange> q) { + const mojom::FileChange& change = q.value; + return out << "{path: " << Quote(change.path) + << ", type: " << Quote(change.type) + << ", stable_id: " << change.stable_id << "}"; +} + constexpr int64_t kAverageHostedFileSizeInBytes = 7800; bool CanPinItem(const mojom::FileMetadata& metadata, @@ -212,7 +235,6 @@ PRINT(CannotRetrieveSearchResults) PRINT(CannotPinItem) PRINT(NotEnoughSpace) - PRINT(SearchQueryNotBound) #undef PRINT } @@ -267,30 +289,29 @@ int64_t DriveFsPinManager::InProgressSyncingItems::RemoveItem( const std::string& path, - const int64_t total_bytes) { + const int64_t bytes_transferred) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK_GE(total_bytes, 0) << " for " << Quote(path); + DCHECK_GE(bytes_transferred, 0) << " for " << Quote(path); - const auto it = in_progress_items_.find(path); - if (it == in_progress_items_.end()) { - // TODO(b/261530520): Items can end up in this flow when a removal is - // attempted on an item that wasn't tracked via an explicit pin operation. - // In this case, gracefully degrade by responding with the total bytes - // transferred. This should ideally fail as all syncing operations should be - // identified as they affect disk space. - VLOG(2) << "[InProgressSyncingItems] Cannot remove " << Quote(path); + const InProgressMap::node_type node = in_progress_items_.extract(path); + if (!node) { + VLOG(2) << "[InProgressSyncingItems] Ignored untracked " << Quote(path) + << " with size " << HumanReadableSize(bytes_transferred); return total_bytes_transferred_; } - DCHECK_EQ(it->first, path); - const Progress& progress = it->second; - LOG_IF(ERROR, progress.transferred > total_bytes) + DCHECK_EQ(node.key(), path); + const Progress& progress = node.mapped(); + LOG_IF(ERROR, progress.transferred > bytes_transferred) << "[InProgressSyncingItems] Progress went backwards from " << HumanReadableSize(progress.transferred) << " to " - << HumanReadableSize(total_bytes) << " for " << Quote(path); - total_bytes_transferred_ += total_bytes - progress.transferred; - in_progress_items_.erase(it); - VLOG(3) << "[InProgressSyncingItems] Successfully removed " << Quote(path); + << HumanReadableSize(bytes_transferred) << " for " << Quote(path); + total_bytes_transferred_ += bytes_transferred - progress.transferred; + LOG_IF(ERROR, progress.total != 0 && progress.total != bytes_transferred) + << "[InProgressSyncingItems] Expected final progress " + << HumanReadableSize(progress.total) << " instead of " + << HumanReadableSize(bytes_transferred) << " for " << Quote(path); + VLOG(3) << "[InProgressSyncingItems] Stopped tracking " << Quote(path); return total_bytes_transferred_; } @@ -469,11 +490,8 @@ return Complete(SetupError::kNotEnoughSpace); } - if (!search_query_.is_bound()) { - return Complete(SetupError::kSearchQueryNotBound); - } - NotifyProgress(); + DCHECK(search_query_); search_query_->GetNextPage( base::BindOnce(&DriveFsPinManager::OnSearchResultForSizeCalculation, weak_ptr_factory_.GetWeakPtr())); @@ -569,12 +587,8 @@ return; } - if (!search_query_.is_bound()) { - return Complete(SetupError::kSearchQueryNotBound); - } - - VLOG(1) << "All items in current batch are already pinned"; VLOG(1) << "Getting next batch of items..."; + DCHECK(search_query_); search_query_->GetNextPage( base::BindOnce(&DriveFsPinManager::OnSearchResultsForPinning, weak_ptr_factory_.GetWeakPtr())); @@ -585,6 +599,10 @@ if (status != drive::FILE_ERROR_OK) { LOG(ERROR) << "Cannot pin " << Quote(path) << ": " << status; state_.progress.error_count++; + syncing_items_.AsyncCall(&InProgressSyncingItems::RemoveItem) + .WithArgs(path, 0) + .Then(base::BindOnce(&DriveFsPinManager::ReportTotalBytesTransferred, + weak_ptr_factory_.GetWeakPtr())); return; } @@ -651,11 +669,9 @@ } void DriveFsPinManager::MaybeStartSearch(size_t remaining_items) { - if (!search_query_.is_bound()) { - return Complete(SetupError::kSearchQueryNotBound); - } - if (remaining_items == 0) { + VLOG(1) << "Getting next batch of items..."; + DCHECK(search_query_); search_query_->GetNextPage( base::BindOnce(&DriveFsPinManager::OnSearchResultsForPinning, weak_ptr_factory_.GetWeakPtr())); @@ -664,7 +680,11 @@ void DriveFsPinManager::OnUnmounted() {} void DriveFsPinManager::OnFilesChanged( - const std::vector<mojom::FileChange>& changes) {} + const std::vector<mojom::FileChange>& changes) { + for (const auto& change : changes) { + VLOG(2) << " Got OnFilesChanged event: " << Quote(change); + } +} void DriveFsPinManager::OnError(const mojom::DriveError& error) { LOG(ERROR) << "DriveFS error " << error.type << " with " << Quote(error.path); @@ -731,24 +751,30 @@ const mojom::FileMetadataPtr metadata) { if (error != drive::FILE_ERROR_OK) { LOG(ERROR) << "Cannot get metadata of " << Quote(path) << ": " << error; + syncing_items_.AsyncCall(&InProgressSyncingItems::RemoveItem) + .WithArgs(path, 0) + .Then(base::BindOnce(&DriveFsPinManager::ReportTotalBytesTransferred, + weak_ptr_factory_.GetWeakPtr())); return; } DCHECK(metadata); VLOG(2) << "path: " << Quote(path) << ", metadata: " << Quote(*metadata); - if (metadata->available_offline || metadata->size == 0) { + if (!metadata->pinned || metadata->available_offline || metadata->size == 0) { const int64_t file_size = - (metadata->type == mojom::FileMetadata::Type::kHosted) + metadata->type == mojom::FileMetadata::Type::kHosted ? kAverageHostedFileSizeInBytes : metadata->size; + VLOG_IF(2, !metadata->pinned) + << "Skipped " << Quote(path) << ": Not pinned"; VLOG_IF(2, metadata->available_offline) << "Skipped " << Quote(path) << ": Already available offline"; VLOG_IF(2, metadata->size == 0) << "Skipped " << Quote(path) << ": Empty file"; syncing_items_.AsyncCall(&InProgressSyncingItems::RemoveItem) - .WithArgs(std::move(path), file_size) + .WithArgs(path, file_size) .Then(base::BindOnce(&DriveFsPinManager::ReportTotalBytesTransferred, weak_ptr_factory_.GetWeakPtr())); }
diff --git a/chromeos/ash/components/drivefs/drivefs_pin_manager.h b/chromeos/ash/components/drivefs/drivefs_pin_manager.h index 59df693..5df94c5 100644 --- a/chromeos/ash/components/drivefs/drivefs_pin_manager.h +++ b/chromeos/ash/components/drivefs/drivefs_pin_manager.h
@@ -51,7 +51,6 @@ kCannotRetrieveSearchResults, kCannotPinItem, kNotEnoughSpace, - kSearchQueryNotBound, }; COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_DRIVEFS) @@ -186,12 +185,12 @@ // Adds an item to the map. void AddItem(const std::string& path); - // Removes an item from the map, if the item doesn't exist ignores the - // removal. Returns the total bytes transferred on every removal. - int64_t RemoveItem(const std::string& path, int64_t total_bytes); + // Removes an item from the map. Does nothing if the item is not in the map. + // Updates and returns the total number of bytes transferred so far. + int64_t RemoveItem(const std::string& path, int64_t bytes_transferred); // Adds or updates the item keyed at `path` with the new progress bytes. - // Returns the total bytes transferred on every update. + // Updates and returns the total number of bytes transferred so far. int64_t UpdateItem(const std::string& path, int64_t bytes_transferred, int64_t bytes_to_transfer);
diff --git a/chromeos/ash/components/memory/memory.cc b/chromeos/ash/components/memory/memory.cc index 4604eb7..7ed63ea 100644 --- a/chromeos/ash/components/memory/memory.cc +++ b/chromeos/ash/components/memory/memory.cc
@@ -21,79 +21,6 @@ namespace ash { -BASE_FEATURE(kCrOSLockMainProgramText, - "CrOSLockMainProgramText", - base::FEATURE_DISABLED_BY_DEFAULT); -// The maximum number of bytes that the browser will attempt to lock. -const base::FeatureParam<int> kCrOSLockMainProgramTextMaxSize{ - &kCrOSLockMainProgramText, "CrOSLockMainProgramTextMaxSize", -1}; - -namespace { - -int ParseElfHeaderAndMlockBinaryText(struct dl_phdr_info* info, - size_t size, - void* data) { - // From dl_iterate_phdr's man page: "The first object visited by callback is - // the main program. For the main program, the dlpi_name field will be an - // empty string." Hence, no "is this the Chrome we're looking for?" checks are - // necessary. - for (int i = 0; i < info->dlpi_phnum; i++) { - if (info->dlpi_phdr[i].p_type == PT_LOAD && - info->dlpi_phdr[i].p_flags == (PF_R | PF_X)) { - void* vaddr = - base::bit_cast<void*>(info->dlpi_addr + info->dlpi_phdr[i].p_vaddr); - size_t segsize = info->dlpi_phdr[i].p_filesz; - - ssize_t max_lockable_size = kCrOSLockMainProgramTextMaxSize.Get(); - if (max_lockable_size > -1) { - // Note mlock/mlock2 do not require a page multiple. - segsize = std::min(static_cast<ssize_t>(segsize), max_lockable_size); - } - - PLOG_IF(ERROR, !MlockMapping(vaddr, segsize)) - << "Unable to lock memory region " << vaddr; - return 1; - } - } - - return -1; -} - -// MlockAllText will attempt to lock the memory associated with the main -// program. -void MlockAllText() { - int res = dl_iterate_phdr(ParseElfHeaderAndMlockBinaryText, nullptr); - LOG_IF(ERROR, res == -1) - << "Unable to lock main program text unable to find entry."; -} - -} // namespace - -// MlockMapping will attempt to lock a mapping using the newer mlock2 (if -// available on kernels 4.4+) with the MLOCK_ONFAULT flag, if the kernel does -// not support it then it will fall back to mlock. -bool MlockMapping(void* addr, size_t size) { -#if defined(__NR_mlock2) - int res = mlock2(addr, size, MLOCK_ONFAULT); - if (res == 0) { - return true; - } - - // If the kernel returns ENOSYS it doesn't support mlock2 (pre v4.4) so just - // fall back to mlock. - if (res == -1 && errno != ENOSYS) { - return false; - } -#endif - return mlock(addr, size) == 0; -} - -COMPONENT_EXPORT(ASH_MEMORY) void LockMainProgramText() { - if (base::FeatureList::IsEnabled(kCrOSLockMainProgramText)) { - MlockAllText(); - } -} - COMPONENT_EXPORT(ASH_MEMORY) void UpdateMemoryParameters() { ConfigureSwap(); }
diff --git a/chromeos/ash/components/memory/memory.h b/chromeos/ash/components/memory/memory.h index 172fc989..92f77d062c 100644 --- a/chromeos/ash/components/memory/memory.h +++ b/chromeos/ash/components/memory/memory.h
@@ -18,23 +18,6 @@ namespace ash { -// MlockMaping will attempt to mlock a mapping using the newer mlock2 syscall -// if available using the MLOCK_ONFAULT option. This will allow pages to be -// locked as they are faulted in. If the running kernel does not support -// mlock2, it was added in kernel 4.4, it will fall back to mlock where it -// will lock all pages immediately by faulting them in. -COMPONENT_EXPORT(ASH_MEMORY) bool MlockMapping(void* addr, size_t length); - -// A feature which controls the locking the main program text. -BASE_DECLARE_FEATURE(kCrOSLockMainProgramText); - -// The maximum number of bytes that the browser will attempt to lock, -1 will -// disable the max size and is the default option. -extern const base::FeatureParam<int> kCrOSLockMainProgramTextMaxSize; - -// Lock main program text segments fully. -COMPONENT_EXPORT(ASH_MEMORY) void LockMainProgramText(); - // It should be called when some memory configuration is changed. COMPONENT_EXPORT(ASH_MEMORY) void UpdateMemoryParameters();
diff --git a/codelabs/BUILD.gn b/codelabs/BUILD.gn index 882fc39c..8b1cd33 100644 --- a/codelabs/BUILD.gn +++ b/codelabs/BUILD.gn
@@ -2,6 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/config/dcheck_always_on.gni") + group("codelabs") { testonly = true deps = [ @@ -10,7 +12,15 @@ ":codelab_hello_world", ":codelab_mojo", ":codelab_sleep", + + # threading_and_scheduling examples: + ":codelab_multiple_threads", + ":codelab_single_task_queue", + ":codelab_task_queue_priorities", ] + if (is_debug || dcheck_always_on) { + deps += [ ":codelab_randomized_task_queues" ] + } } executable("codelab_hello_world") { @@ -52,3 +62,25 @@ "//mojo/public/cpp/base", ] } + +executable("codelab_single_task_queue") { + sources = [ "threading_and_scheduling/01-single-task-queue.cc" ] + deps = [ "//base" ] +} + +executable("codelab_task_queue_priorities") { + sources = [ "threading_and_scheduling/02-task-queue-priorities.cc" ] + deps = [ "//base" ] +} + +if (is_debug || dcheck_always_on) { + executable("codelab_randomized_task_queues") { + sources = [ "threading_and_scheduling/03-randomized-task-queues.cc" ] + deps = [ "//base" ] + } +} + +executable("codelab_multiple_threads") { + sources = [ "threading_and_scheduling/04-multiple-threads.cc" ] + deps = [ "//base" ] +}
diff --git a/codelabs/OWNERS b/codelabs/OWNERS index aa911409..cf890cc 100644 --- a/codelabs/OWNERS +++ b/codelabs/OWNERS
@@ -1,4 +1,6 @@ * -# Primary +# For `cpp101/` asully@chromium.org +# For examples outside of `cpp101/` +dom@chromium.org
diff --git a/codelabs/README.md b/codelabs/README.md index def37a73..d5ff5c2 100644 --- a/codelabs/README.md +++ b/codelabs/README.md
@@ -3,6 +3,9 @@ See the `cpp101/` directory for the Chromium C++ codelab, including example solutions. +See the `threading_and_scheduling/` directory for more elaborate usages of the +threading and scheduling primitives in Chromium. + ## Motivation The goal of this codelab is to introduce new Chromium developers to both the
diff --git a/codelabs/threading_and_scheduling/01-single-task-queue.cc b/codelabs/threading_and_scheduling/01-single-task-queue.cc new file mode 100644 index 0000000..c9c3ceab --- /dev/null +++ b/codelabs/threading_and_scheduling/01-single-task-queue.cc
@@ -0,0 +1,79 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/logging.h" +#include "base/message_loop/message_pump.h" +#include "base/run_loop.h" +#include "base/task/sequence_manager/sequence_manager.h" +#include "base/task/sequence_manager/task_queue.h" + +// See the documentation below. +enum class TaskType : unsigned char { + kMain = 1, +}; + +void RunTaskAndQuit(base::OnceClosure quit_closure) { + LOG(INFO) << "Whoah, we're doing a task! Now let's quit"; + std::move(quit_closure).Run(); +} + +int main() { + base::PlatformThread::SetName("SchedulingDemoMain"); + + // Create MessagePump that drives the SequenceManager that gets bound to this + // thread further down. This pump's type is "default", which is a really + // simple kind of platform-agtnostic message pump that only has the ability to + // listen for tasks (possibly with delays) and run them; it can't, for + // example: + // 1.) Watch file descriptors or native sockets + // 2.) Listen to platform-specific UI events, such as WM_PAINT on Windows or + // `NSEvent*`s on macOS. + std::unique_ptr<base::MessagePump> pump = + base::MessagePump::Create(base::MessagePumpType::DEFAULT); + + // Create the thread's SequenceManager. + // + // What this really does is: + // 1.) Creates an unbound SequenceManager (the default) + // 2.) Immediately "binds" it to the current thread + // What (2) really means is that we invoke + // `SequenceManagerImpl::CompleteInitializationOnBoundThread()`, which sets + // the thread-local storage SequenceManager to `sequence_manager` below. + // That's important so that `RunLoop` objects that have no direct access to + // `sequence_manager` know which manager to tell to "run" later on. + std::unique_ptr<base::sequence_manager::SequenceManager> sequence_manager = + base::sequence_manager::CreateSequenceManagerOnCurrentThreadWithPump( + std::move(pump), + base::sequence_manager::SequenceManager::Settings::Builder().Build()); + + // Create a default TaskQueue that feeds into the SequenceManager. Inside a + // SequenceManager, TaskQueue is the basic unit of scheduling... + scoped_refptr<base::sequence_manager::TaskQueue> default_task_queue = + sequence_manager->CreateTaskQueue(base::sequence_manager::TaskQueue::Spec( + base::sequence_manager::QueueName::DEFAULT_TQ)); + + // ... and from a TaskQueue you can get an arbitrary number of TaskRunners, + // which actually let you post tasks to the underlying/internal queue. + // + // Why do we even have this distinction? Why even have multiple TaskRunners + // associated with the same underlying queue? Answer: this is for task + // attribution purposes, so you can query metrics to see which TaskRunners + // (used by different places in your code) are posting what kind of tasks + // and get other interesting information about them. + scoped_refptr<base::SingleThreadTaskRunner> task_runner = + default_task_queue->CreateTaskRunner(static_cast<int>(TaskType::kMain)); + sequence_manager->SetDefaultTaskRunner(task_runner); + + // Now that this thread has a bound sequence manager set up, we can: + // 1.) Start posting tasks to its queues which are not yet being processed + // 2.) Start processing tasks from the queues by "running" the loop, which + // runs the sequence manager's underlying message pump. + base::RunLoop run_loop; + task_runner->PostTask( + FROM_HERE, base::BindOnce(&RunTaskAndQuit, run_loop.QuitClosure())); + // This synchronously blocks (by running this thread's loop) until the quit + // closure is called. + run_loop.Run(); + return 0; +}
diff --git a/codelabs/threading_and_scheduling/02-task-queue-priorities.cc b/codelabs/threading_and_scheduling/02-task-queue-priorities.cc new file mode 100644 index 0000000..f12a078 --- /dev/null +++ b/codelabs/threading_and_scheduling/02-task-queue-priorities.cc
@@ -0,0 +1,92 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/logging.h" +#include "base/message_loop/message_pump.h" +#include "base/rand_util.h" +#include "base/run_loop.h" +#include "base/strings/string_piece.h" +#include "base/task/sequence_manager/sequence_manager.h" +#include "base/task/sequence_manager/task_queue.h" + +enum class TaskType : unsigned char { + kSource1 = 1, + kSource2 = 2, +}; + +void Task(base::StringPiece tq, int task_number) { + if (tq == "A") { + LOG(INFO) << "TaskQueue(" << tq << "): " << task_number; + } else { + LOG(INFO) << " TaskQueue(" << tq << "): " << task_number; + } +} + +void QuitTask(base::OnceClosure quit_closure) { + LOG(INFO) << "Quittin' time!"; + std::move(quit_closure).Run(); +} + +int main() { + base::PlatformThread::SetName("SchedulingDemoMain"); + + std::unique_ptr<base::MessagePump> pump = + base::MessagePump::Create(base::MessagePumpType::DEFAULT); + + // Create the main thread's SequenceManager; it will choose which of the two + // below TaskQueues will be served at each spin of the loop, based on their + // priority. + std::unique_ptr<base::sequence_manager::SequenceManager> sequence_manager = + base::sequence_manager::CreateSequenceManagerOnCurrentThreadWithPump( + std::move(pump), + base::sequence_manager::SequenceManager::Settings::Builder().Build()); + + // Create two TaskQueues that feed into the main thread's SequenceManager, + // each with a different priority to demonstrate that TaskQueue is the + // principal unit of ordering, and that tasks across queues don't have to run + // in posting-order, while non-delayed tasks posted to the same queue are + // always run in FIFO order. + scoped_refptr<base::sequence_manager::TaskQueue> tq_a = + sequence_manager->CreateTaskQueue(base::sequence_manager::TaskQueue::Spec( + base::sequence_manager::QueueName::TEST_TQ)); + tq_a->SetQueuePriority( + base::sequence_manager::TaskQueue::QueuePriority::kNormalPriority); + scoped_refptr<base::sequence_manager::TaskQueue> tq_b = + sequence_manager->CreateTaskQueue(base::sequence_manager::TaskQueue::Spec( + base::sequence_manager::QueueName::TEST2_TQ)); + tq_b->SetQueuePriority( + base::sequence_manager::TaskQueue::QueuePriority::kHighPriority); + + // Get TaskRunners for both TaskQueues. + scoped_refptr<base::SingleThreadTaskRunner> a_runner_1 = + tq_a->CreateTaskRunner(static_cast<int>(TaskType::kSource1)); + sequence_manager->SetDefaultTaskRunner(a_runner_1); + scoped_refptr<base::SingleThreadTaskRunner> a_runner_2 = + tq_a->CreateTaskRunner(static_cast<int>(TaskType::kSource2)); + scoped_refptr<base::SingleThreadTaskRunner> b_runner = + tq_b->CreateTaskRunner(static_cast<int>(TaskType::kSource2)); + + base::RunLoop run_loop; + + // This example shows that the TaskRunner you choose to post a task with to a + // TaskQueue doesn't affect the ordering of the tasks in the queue. It is + // TaskQueue that is the principal unit of ordering, not TaskRunner; all tasks + // in a queue run in FIFO order with respect to each other, but tasks *across* + // queues are run in queue priority order. We post all of the tasks to `tq_a` + // before posting any to `tq_b`, but observe that `tq_b` tasks run first due + // to priority. + for (int i = 1; i <= 20;) { + a_runner_1->PostTask(FROM_HERE, base::BindOnce(&Task, "A", i++)); + a_runner_2->PostTask(FROM_HERE, base::BindOnce(&Task, "A", i++)); + } + for (int i = 1; i <= 20; ++i) { + b_runner->PostTask(FROM_HERE, base::BindOnce(&Task, "B", i)); + } + + a_runner_1->PostDelayedTask(FROM_HERE, + base::BindOnce(&QuitTask, run_loop.QuitClosure()), + base::Seconds(1)); + run_loop.Run(); + return 0; +}
diff --git a/codelabs/threading_and_scheduling/03-randomized-task-queues.cc b/codelabs/threading_and_scheduling/03-randomized-task-queues.cc new file mode 100644 index 0000000..1b73f7a --- /dev/null +++ b/codelabs/threading_and_scheduling/03-randomized-task-queues.cc
@@ -0,0 +1,80 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/logging.h" +#include "base/message_loop/message_pump.h" +#include "base/rand_util.h" +#include "base/run_loop.h" +#include "base/strings/string_piece.h" +#include "base/task/sequence_manager/sequence_manager.h" +#include "base/task/sequence_manager/task_queue.h" + +enum class TaskType : unsigned char { + kSource1 = 1, +}; + +void Task(base::StringPiece tq, int task_number) { + if (tq == "A") { + LOG(INFO) << "TaskQueue(" << tq << "): " << task_number; + } else { + LOG(INFO) << " TaskQueue(" << tq << "): " << task_number; + } +} + +void QuitTask(base::OnceClosure quit_closure) { + LOG(INFO) << "Quittin' time!"; + std::move(quit_closure).Run(); +} + +int main() { + base::PlatformThread::SetName("SchedulingDemoMain"); + + std::unique_ptr<base::MessagePump> pump = + base::MessagePump::Create(base::MessagePumpType::DEFAULT); + + // Create the main thread's SequenceManager; it will choose at random which of + // the two below TaskQueues will be served at each spin of the loop, despite + // them being the same priority. + std::unique_ptr<base::sequence_manager::SequenceManager> sequence_manager = + base::sequence_manager::CreateSequenceManagerOnCurrentThreadWithPump( + std::move(pump), + base::sequence_manager::SequenceManager::Settings::Builder() + .SetRandomTaskSelectionSeed(base::RandUint64()) + .Build()); + + // Create two same-priority TaskQueues that feed into the main thread's + // SequenceManager. + scoped_refptr<base::sequence_manager::TaskQueue> tq_a = + sequence_manager->CreateTaskQueue(base::sequence_manager::TaskQueue::Spec( + base::sequence_manager::QueueName::TEST_TQ)); + scoped_refptr<base::sequence_manager::TaskQueue> tq_b = + sequence_manager->CreateTaskQueue(base::sequence_manager::TaskQueue::Spec( + base::sequence_manager::QueueName::TEST2_TQ)); + + // Get TaskRunners for both TaskQueues. + scoped_refptr<base::SingleThreadTaskRunner> a_runner_1 = + tq_a->CreateTaskRunner(static_cast<int>(TaskType::kSource1)); + sequence_manager->SetDefaultTaskRunner(a_runner_1); + scoped_refptr<base::SingleThreadTaskRunner> b_runner = + tq_b->CreateTaskRunner(static_cast<int>(TaskType::kSource1)); + + base::RunLoop run_loop; + + // Like the last example, this shows that TaskQueue is the principal unit of + // ordering. All non-delayed tasks posted to the same queue run in FIFO order, + // but tasks *across* queues in this case run in random order, as directed by + // the SequenceManager that multiplexes them. + for (int i = 1; i <= 20; ++i) { + a_runner_1->PostTask(FROM_HERE, base::BindOnce(&Task, "A", i)); + } + for (int i = 0; i < 20; ++i) { + b_runner->PostTask(FROM_HERE, base::BindOnce(&Task, "B", i)); + } + + a_runner_1->PostDelayedTask(FROM_HERE, + base::BindOnce(&QuitTask, run_loop.QuitClosure()), + base::Seconds(1)); + run_loop.Run(); + return 0; +}
diff --git a/codelabs/threading_and_scheduling/04-multiple-threads.cc b/codelabs/threading_and_scheduling/04-multiple-threads.cc new file mode 100644 index 0000000..e2c7bf8 --- /dev/null +++ b/codelabs/threading_and_scheduling/04-multiple-threads.cc
@@ -0,0 +1,122 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/logging.h" +#include "base/message_loop/message_pump.h" +#include "base/run_loop.h" +#include "base/task/sequence_manager/sequence_manager.h" +#include "base/task/sequence_manager/sequence_manager_impl.h" // For IOThreadDelegate. +#include "base/task/sequence_manager/task_queue.h" +#include "base/threading/thread.h" + +// For this example, these are global so that each task running on each thread +// can easily grab the *other* thread's task runner to post continuation tasks +// to. +static scoped_refptr<base::SingleThreadTaskRunner> g_main_thread_task_runner; +static scoped_refptr<base::SingleThreadTaskRunner> g_io_thread_task_runner; + +void RunOnIOThread(); + +void RunOnUIThread() { + LOG(INFO) << "RunOnUIThread()"; + g_io_thread_task_runner->PostDelayedTask( + FROM_HERE, base::BindOnce(&RunOnIOThread), base::Seconds(1)); +} + +void RunOnIOThread() { + LOG(INFO) << "RunOnIOThread()"; + g_main_thread_task_runner->PostDelayedTask( + FROM_HERE, base::BindOnce(&RunOnUIThread), base::Seconds(1)); +} + +// In this example we're simulating Chromium's UI/IO thread architecture in a +// simplified way. The `IOThreadDelegate` represents the physical "IO" thread +// that each Chromium process has, running alongside the main thread. It is +// similar to `content::BrowserIOThreadDelegate`, for example. +class IOThreadDelegate : public base::Thread::Delegate { + public: + IOThreadDelegate() { + // Create an unbound SequenceManager{Impl}. It will be bound in + // `BindToCurrentThread()` on the new physical thread, once it starts + // running. + owned_sequence_manager_ = + base::sequence_manager::CreateUnboundSequenceManager(); + task_queue_ = owned_sequence_manager_->CreateTaskQueue( + base::sequence_manager::TaskQueue::Spec( + base::sequence_manager::TaskQueue::Spec( + base::sequence_manager::QueueName::IO_DEFAULT_TQ))); + default_task_runner_ = task_queue_->task_runner(); + owned_sequence_manager_->SetDefaultTaskRunner(default_task_runner_); + // Set the global TaskRunner-to-this-thread, so that the main thread can + // post tasks to the IO thread. + g_io_thread_task_runner = default_task_runner_; + } + + // base::Thread::Delegate implementation. + // This is similar to i.e., + // `content::BrowserIOThreadDelegate::BindToCurrentThread()`, and is the first + // function to run on the new physical thread. + void BindToCurrentThread(base::TimerSlack timer_slack) override { + owned_sequence_manager_->BindToMessagePump( + base::MessagePump::Create(base::MessagePumpType::IO)); + owned_sequence_manager_->SetTimerSlack(timer_slack); + owned_sequence_manager_->SetDefaultTaskRunner(GetDefaultTaskRunner()); + } + scoped_refptr<base::SingleThreadTaskRunner> GetDefaultTaskRunner() override { + return default_task_runner_; + } + + private: + std::unique_ptr<base::sequence_manager::SequenceManager> + owned_sequence_manager_; + scoped_refptr<base::sequence_manager::TaskQueue> task_queue_; + scoped_refptr<base::SingleThreadTaskRunner> default_task_runner_; +}; + +int main() { + base::PlatformThread::SetName("SchedulingDemoMain"); + + std::unique_ptr<base::MessagePump> pump = + base::MessagePump::Create(base::MessagePumpType::UI); + + std::unique_ptr<base::sequence_manager::SequenceManager> sequence_manager = + base::sequence_manager::CreateSequenceManagerOnCurrentThreadWithPump( + std::move(pump)); + + // Create a default TaskQueue that feeds into the SequenceManager. + scoped_refptr<base::sequence_manager::TaskQueue> main_task_queue = + sequence_manager + ->CreateTaskQueueWithType<base::sequence_manager::TaskQueue>( + base::sequence_manager::TaskQueue::Spec( + base::sequence_manager::TaskQueue::Spec( + base::sequence_manager::QueueName::DEFAULT_TQ))); + + // Get a default TaskRunner for the main (UI) thread. + scoped_refptr<base::SingleThreadTaskRunner> default_task_runner = + main_task_queue->task_runner(); + sequence_manager->SetDefaultTaskRunner(default_task_runner); + + // Set the global TaskRunner-to-this-thread, so that the IO thread can post + // tasks to the main thread. + g_main_thread_task_runner = default_task_runner; + + // Create an IO thread to run alongside the main thread. + std::unique_ptr<IOThreadDelegate> delegate = + std::make_unique<IOThreadDelegate>(); + base::Thread io_thread("IOThread"); + base::Thread::Options options; + options.delegate = std::move(delegate); + if (!io_thread.StartWithOptions(std::move(options))) { + LOG(FATAL) << "The thread failed to start!"; + } + // END create a new thread. + + base::RunLoop run_loop; + g_main_thread_task_runner->PostTask(FROM_HERE, + base::BindOnce(&RunOnUIThread)); + g_main_thread_task_runner->PostDelayedTask(FROM_HERE, run_loop.QuitClosure(), + base::Seconds(10)); + run_loop.Run(); + return 0; +}
diff --git a/codelabs/threading_and_scheduling/README.md b/codelabs/threading_and_scheduling/README.md new file mode 100644 index 0000000..82f6231e --- /dev/null +++ b/codelabs/threading_and_scheduling/README.md
@@ -0,0 +1,82 @@ +# Threading & scheduling + +This directory contains three examples of threading & primitives in Chromium's +`//base` library that build off of the basic `cpp101` [threading and task runner +introduction][1]. In particular, these examples aim to give more insight into +how task scheduling works by introducing `TaskQueue` as the basic unit of +scheduling, and showing how multiple `TaskQueue`s can interact within the same +thread and across threads. + +Additionally, these examples show direct usage of some of the foundational +scheduling primitives in `//base` as they would be used in any program, to +demystify their usage and help illustrate how core pieces of Chromium work under +the hood. + +These examples offer a deep dive into the threading & scheduling machinery that +Chromium developers will rarely interact with directly. In practice, much of +Chromium's threading & scheduling is exposed through things like +`base::ThreadPool`, `base::SequencedTaskRunner::GetCurrentDefault()`, or +`ExecutionContext::GetTaskRunner()` in Blink, etc. + +## 01-single-task-queue + +This first example is the simplest, but illustrates direct usage of the +following task scheduling primitives: + + - `SequenceManager(Impl)` + - `MessagePump` + - `TaskQueue` / `TaskRunner` + - `RunLoop` + +This example goes further than the ones in `cpp101/`, as those defer the setup +of the main thread scheduling infra to `base::test::TaskEnvironment`, whereas +this example shows how to manually use such infrastructure and customize it +accordingly. + +## 02-task-queue-priorities + +This example shows how `TaskQueue`s allow a thread to multiplex many sources of +tasks. This effectively means that each `TaskQueue` is a "sequence", allowing +the same physical thread to host multiple sequences that can be scheduled +independently. This is an inversion from the standard usage of "sequence", which +often involves a sequential ordering of tasks that may opaquely span multiple +physical threads. + +This example works by creating two `TaskQueue`s with different priorities to +show that the ordering _across_ queues is not guaranteed, while the ordering of +non-delayed tasks _within_ a queue — regardless of which `TaskRunner` is +used to post the task — is always FIFO order. + +## 03-randomized-task-queues + +(Requires DCHECKs to be enabled to build. Either set `is_debug = true` or +`dcheck_always_enabled = true` in your gn args). + +This example is similar to the previous one, however we schedule two +identical-priority `TaskQueue`s independently from each other using a +[randomized task selection seed option][2] exposed via the `SequenceManager` +API. This shows that in our contrived example, ordering _across_ queues of the +same priority is not guaranteed to be in FIFO task posting order, while the +ordering of non-delayed tasks _within_ the same queue is _still_ always FIFO +order. + +Note that in practice and by default, the ordering of tasks _across_ task queues +with the same priority _is_ in fact guaranteed to be in FIFO posting-order +because legacy code has come to depend on this behavior, although it should not +be relied upon, as queues can dynamically [change priority][3] and get +[frozen][4]/unfrozen arbitrarily. + +## 04-multiple-threads + +So far the threading and task posting examples have been either single-threaded, +or utilize the thread pool. But in Chromium, especially in renderer processes, +it's common to post tasks on specific threads that the platform maintains. +That's exactly what the scenario that this example reproduces. First we setup +the main thread task scheduling infra, and then spin up a new `base::Thread` +which represents a new physical thread. Then we explicitly post tasks back and +forth between the main and secondary thread, via a cross-thread `TaskRunner`. + +[1]: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/codelabs/cpp101/codelab.md#part-3_threads-and-task-runners +[2]: https://source.chromium.org/chromium/chromium/src/+/main:base/task/sequence_manager/sequence_manager.h;l=122-125;drc=c70927109b0861ba4642416cb4689b4bf9d25ad0 +[3]: https://source.chromium.org/chromium/chromium/src/+/main:base/task/sequence_manager/task_queue.cc;l=246;drc=566a5d280c3f78e073c435a5218021ce15d1f004 +[4]: https://source.chromium.org/chromium/chromium/src/+/main:base/task/sequence_manager/task_queue_impl.cc;l=1132;drc=74e2db96056dd0265b7e527a58b50036c07d7031
diff --git a/components/autofill/core/browser/payments/legal_message_line.cc b/components/autofill/core/browser/payments/legal_message_line.cc index fa3ba5e..aeca609 100644 --- a/components/autofill/core/browser/payments/legal_message_line.cc +++ b/components/autofill/core/browser/payments/legal_message_line.cc
@@ -87,8 +87,9 @@ for (const base::Value& single_line : *lines_list) { lines.emplace_back(); if (!single_line.is_dict() || - !lines.back().ParseLine(single_line, escape_apostrophes)) + !lines.back().ParseLine(single_line.GetDict(), escape_apostrophes)) { return false; + } } out->swap(lines); @@ -96,34 +97,32 @@ return true; } -bool LegalMessageLine::ParseLine(const base::Value& line, +bool LegalMessageLine::ParseLine(const base::Value::Dict& line, bool escape_apostrophes) { DCHECK(text_.empty()); DCHECK(links_.empty()); - DCHECK(line.is_dict()); // |display_texts| elements are the strings that will be substituted for // "{0}", "{1}", etc. in the template string. std::vector<std::u16string> display_texts; // Process all the template parameters. - const base::Value* template_parameters = - line.FindKeyOfType("template_parameter", base::Value::Type::LIST); + const base::Value::List* template_parameters = + line.FindList("template_parameter"); if (template_parameters) { - const base::Value::List& template_parameters_view = - template_parameters->GetList(); - display_texts.reserve(template_parameters_view.size()); - links_.reserve(template_parameters_view.size()); + display_texts.reserve(template_parameters->size()); + links_.reserve(template_parameters->size()); - for (const base::Value& parameter : template_parameters_view) { + for (const base::Value& parameter : *template_parameters) { if (!parameter.is_dict()) return false; - const std::string* display_text = parameter.FindStringKey("display_text"); + const std::string* display_text = + parameter.GetDict().FindString("display_text"); if (!display_text) return false; - const std::string* url = parameter.FindStringKey("url"); + const std::string* url = parameter.GetDict().FindString("url"); if (!url) return false; @@ -134,7 +133,7 @@ // Read the template string. It's a small subset of the ICU message format // syntax. - const std::string* template_icu_utf8 = line.FindStringKey("template"); + const std::string* template_icu_utf8 = line.FindString("template"); if (!template_icu_utf8) return false;
diff --git a/components/autofill/core/browser/payments/legal_message_line.h b/components/autofill/core/browser/payments/legal_message_line.h index 9fa590dd..f7aa164 100644 --- a/components/autofill/core/browser/payments/legal_message_line.h +++ b/components/autofill/core/browser/payments/legal_message_line.h
@@ -74,7 +74,7 @@ private: friend class TestLegalMessageLine; - bool ParseLine(const base::Value& line, bool escape_apostrophes); + bool ParseLine(const base::Value::Dict& line, bool escape_apostrophes); std::u16string text_; Links links_;
diff --git a/components/autofill/core/browser/payments/payments_requests/get_unmask_details_request.cc b/components/autofill/core/browser/payments/payments_requests/get_unmask_details_request.cc index 900875f..254ef82 100644 --- a/components/autofill/core/browser/payments/payments_requests/get_unmask_details_request.cc +++ b/components/autofill/core/browser/payments/payments_requests/get_unmask_details_request.cc
@@ -35,17 +35,15 @@ } std::string GetUnmaskDetailsRequest::GetRequestContent() { - base::Value request_dict(base::Value::Type::DICTIONARY); - base::Value context(base::Value::Type::DICTIONARY); - context.SetKey("language_code", base::Value(app_locale_)); - context.SetKey("billable_service", - base::Value(kUnmaskCardBillableServiceNumber)); - request_dict.SetKey("context", std::move(context)); + base::Value::Dict request_dict; + base::Value::Dict context; + context.Set("language_code", app_locale_); + context.Set("billable_service", kUnmaskCardBillableServiceNumber); + request_dict.Set("context", std::move(context)); - base::Value chrome_user_context(base::Value::Type::DICTIONARY); - chrome_user_context.SetKey("full_sync_enabled", - base::Value(full_sync_enabled_)); - request_dict.SetKey("chrome_user_context", std::move(chrome_user_context)); + base::Value::Dict chrome_user_context; + chrome_user_context.Set("full_sync_enabled", full_sync_enabled_); + request_dict.Set("chrome_user_context", std::move(chrome_user_context)); std::string request_content; base::JSONWriter::Write(request_dict, &request_content); @@ -67,8 +65,7 @@ const absl::optional<bool> offer_fido_opt_in = response.FindBool("offer_fido_opt_in"); - unmask_details_.offer_fido_opt_in = - offer_fido_opt_in.has_value() && *offer_fido_opt_in; + unmask_details_.offer_fido_opt_in = offer_fido_opt_in.value_or(false); const base::Value::Dict* dictionary_value = response.FindDict("fido_request_options");
diff --git a/components/autofill/core/browser/payments/payments_requests/migrate_cards_request.cc b/components/autofill/core/browser/payments/payments_requests/migrate_cards_request.cc index 13584b2..9ddd7d8 100644 --- a/components/autofill/core/browser/payments/payments_requests/migrate_cards_request.cc +++ b/components/autofill/core/browser/payments/payments_requests/migrate_cards_request.cc
@@ -97,8 +97,8 @@ std::make_unique<std::unordered_map<std::string, std::string>>(); for (const base::Value& result : *found_list) { if (result.is_dict()) { - const std::string* unique_id = result.FindStringKey("unique_id"); - const std::string* status = result.FindStringKey("status"); + const std::string* unique_id = result.GetDict().FindString("unique_id"); + const std::string* status = result.GetDict().FindString("status"); save_result_->insert( std::make_pair(unique_id ? *unique_id : std::string(), status ? *status : std::string()));
diff --git a/components/autofill/core/common/autofill_payments_features.cc b/components/autofill/core/common/autofill_payments_features.cc index ad55ee10..3c6c6c1 100644 --- a/components/autofill/core/common/autofill_payments_features.cc +++ b/components/autofill/core/common/autofill_payments_features.cc
@@ -85,7 +85,7 @@ // out. BASE_FEATURE(kAutofillEnableMerchantOptOutErrorDialog, "AutofillEnableMerchantOptOutErrorDialog", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); // When enabled, a notification will be displayed on page navigation if the // domain has an eligible merchant promo code offer or reward.
diff --git a/components/browser_ui/contacts_picker/android/java/res/layout/contacts_list_item_view.xml b/components/browser_ui/contacts_picker/android/java/res/layout/contacts_list_item_view.xml index cf3495c..465d6c3 100644 --- a/components/browser_ui/contacts_picker/android/java/res/layout/contacts_list_item_view.xml +++ b/components/browser_ui/contacts_picker/android/java/res/layout/contacts_list_item_view.xml
@@ -11,7 +11,8 @@ <org.chromium.ui.widget.ChromeImageView android:id="@+id/icon_view" - style="@style/ListItemStartIcon" /> + style="@style/ListItemStartIcon" + android:importantForAccessibility="no" /> <LinearLayout android:layout_width="0dp"
diff --git a/components/browser_ui/widget/android/java/res/layout/list_menu_item.xml b/components/browser_ui/widget/android/java/res/layout/list_menu_item.xml index 25171b9..fe0686a 100644 --- a/components/browser_ui/widget/android/java/res/layout/list_menu_item.xml +++ b/components/browser_ui/widget/android/java/res/layout/list_menu_item.xml
@@ -19,7 +19,8 @@ android:id="@+id/menu_item_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - app:tint="@color/default_icon_color_secondary_tint_list" /> + app:tint="@color/default_icon_color_secondary_tint_list" + android:importantForAccessibility="no" /> <TextView android:id="@+id/menu_item_text" @@ -35,6 +36,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" - app:tint="@color/default_icon_color_secondary_tint_list" /> + app:tint="@color/default_icon_color_secondary_tint_list" + android:importantForAccessibility="no" /> </LinearLayout>
diff --git a/components/browser_ui/widget/android/java/res/layout/modern_list_item_view.xml b/components/browser_ui/widget/android/java/res/layout/modern_list_item_view.xml index 02e14bb6..d6bed9c 100644 --- a/components/browser_ui/widget/android/java/res/layout/modern_list_item_view.xml +++ b/components/browser_ui/widget/android/java/res/layout/modern_list_item_view.xml
@@ -12,7 +12,8 @@ <org.chromium.ui.widget.ChromeImageView android:id="@+id/start_icon" - style="@style/ListItemStartIcon" /> + style="@style/ListItemStartIcon" + android:importantForAccessibility="no" /> <!-- Common title/description shared between list item views. --> <include layout="@layout/title_and_description_layout" />
diff --git a/components/browser_ui/widget/android/java/res/layout/radio_button_with_description.xml b/components/browser_ui/widget/android/java/res/layout/radio_button_with_description.xml index 95265194..bc2d0d3 100644 --- a/components/browser_ui/widget/android/java/res/layout/radio_button_with_description.xml +++ b/components/browser_ui/widget/android/java/res/layout/radio_button_with_description.xml
@@ -35,7 +35,8 @@ android:layout_centerVertical="true" android:scaleType="fitCenter" android:tint="@macro/default_icon_color" - android:visibility="gone" /> + android:visibility="gone" + android:importantForAccessibility="no" /> <TextView android:id="@+id/primary"
diff --git a/components/download/OWNERS b/components/download/OWNERS index c13a0fe..89e6508 100644 --- a/components/download/OWNERS +++ b/components/download/OWNERS
@@ -1,3 +1,5 @@ dtrainor@chromium.org qinmin@chromium.org shaktisahu@chromium.org +xinghuilu@chromium.org +
diff --git a/components/exo/text_input.cc b/components/exo/text_input.cc index 52b4e0c..89bb8e7 100644 --- a/components/exo/text_input.cc +++ b/components/exo/text_input.cc
@@ -132,7 +132,9 @@ bool should_do_learning) { if (!input_method_) return; - bool changed = (input_type_ != type); + bool changed = (input_type_ != type) || (input_mode_ != mode) || + (flags_ != flags) || + (should_do_learning_ != should_do_learning); input_type_ = type; input_mode_ = mode; flags_ = flags;
diff --git a/components/exo/wayland/zaura_shell.cc b/components/exo/wayland/zaura_shell.cc index e6e970a..b6e3252 100644 --- a/components/exo/wayland/zaura_shell.cc +++ b/components/exo/wayland/zaura_shell.cc
@@ -348,6 +348,7 @@ if (surface_) { surface_->RemoveSurfaceObserver(this); surface_->SetProperty(kSurfaceHasAuraSurfaceKey, false); + wm::SetTooltipText(surface_->window(), nullptr); } }
diff --git a/components/history_clusters/core/BUILD.gn b/components/history_clusters/core/BUILD.gn index ce49bed55..e157bc6 100644 --- a/components/history_clusters/core/BUILD.gn +++ b/components/history_clusters/core/BUILD.gn
@@ -44,6 +44,8 @@ "history_clusters_service_task_get_most_recent_clusters.h", "history_clusters_service_task_get_most_recent_clusters_for_ui.cc", "history_clusters_service_task_get_most_recent_clusters_for_ui.h", + "history_clusters_service_task_update_cluster_triggerability.cc", + "history_clusters_service_task_update_cluster_triggerability.h", "history_clusters_service_task_update_clusters.cc", "history_clusters_service_task_update_clusters.h", "history_clusters_types.cc",
diff --git a/components/history_clusters/core/config.cc b/components/history_clusters/core/config.cc index 01e7722..79baeb3 100644 --- a/components/history_clusters/core/config.cc +++ b/components/history_clusters/core/config.cc
@@ -384,6 +384,12 @@ internal::kHistoryClustersNavigationContextClustering, "persist_context_clusters_at_navigation", persist_context_clusters_at_navigation); + + cluster_triggerability_cutoff_duration = + base::Minutes(GetFieldTrialParamByFeatureAsInt( + internal::kHistoryClustersNavigationContextClustering, + "cluster_triggerability_cutoff_duration_minutes", + cluster_triggerability_cutoff_duration.InMinutes())); } // Lonely features without child params.
diff --git a/components/history_clusters/core/config.h b/components/history_clusters/core/config.h index 5c5ca450..679124a 100644 --- a/components/history_clusters/core/config.h +++ b/components/history_clusters/core/config.h
@@ -364,6 +364,10 @@ // navigation time. bool persist_context_clusters_at_navigation = false; + // The duration since the most recent visit for which a context cluster is + // considered to be fully frozen and triggerability can be finalized. + base::TimeDelta cluster_triggerability_cutoff_duration = base::Minutes(120); + // Lonely features without child params. // Enables debug info in non-user-visible surfaces, like Chrome Inspector.
diff --git a/components/history_clusters/core/history_clusters_debug_jsons.cc b/components/history_clusters/core/history_clusters_debug_jsons.cc index 20ffb2d1..cded27f 100644 --- a/components/history_clusters/core/history_clusters_debug_jsons.cc +++ b/components/history_clusters/core/history_clusters_debug_jsons.cc
@@ -97,6 +97,8 @@ std::move(debug_keyword_to_data_map)); debug_cluster.Set("should_show_on_prominent_ui_surfaces", cluster.should_show_on_prominent_ui_surfaces); + debug_cluster.Set("triggerability_calculated", + cluster.triggerability_calculated); base::Value::List debug_visits; for (const auto& visit : cluster.visits) {
diff --git a/components/history_clusters/core/history_clusters_service.cc b/components/history_clusters/core/history_clusters_service.cc index 697271f..16f0a38 100644 --- a/components/history_clusters/core/history_clusters_service.cc +++ b/components/history_clusters/core/history_clusters_service.cc
@@ -26,6 +26,7 @@ #include "components/history_clusters/core/file_clustering_backend.h" #include "components/history_clusters/core/history_clusters_debug_jsons.h" #include "components/history_clusters/core/history_clusters_service_task_get_most_recent_clusters_for_ui.h" +#include "components/history_clusters/core/history_clusters_service_task_update_cluster_triggerability.h" #include "components/history_clusters/core/history_clusters_service_task_update_clusters.h" #include "components/history_clusters/core/history_clusters_types.h" #include "components/history_clusters/core/history_clusters_util.h" @@ -254,10 +255,18 @@ // Reset the timer. update_clusters_timer_ = {}; - update_clusters_task_ = - std::make_unique<HistoryClustersServiceTaskUpdateClusters>( - weak_ptr_factory_.GetWeakPtr(), incomplete_visit_context_annotations_, - backend_.get(), history_service_, base::DoNothing()); + if (GetConfig().use_navigation_context_clusters) { + update_clusters_task_ = + std::make_unique<HistoryClustersServiceTaskUpdateClusterTriggerability>( + weak_ptr_factory_.GetWeakPtr(), backend_.get(), history_service_, + base::DoNothing()); + } else { + update_clusters_task_ = + std::make_unique<HistoryClustersServiceTaskUpdateClusters>( + weak_ptr_factory_.GetWeakPtr(), + incomplete_visit_context_annotations_, backend_.get(), + history_service_, base::DoNothing()); + } } absl::optional<history::ClusterKeywordData>
diff --git a/components/history_clusters/core/history_clusters_service_task_update_cluster_triggerability.cc b/components/history_clusters/core/history_clusters_service_task_update_cluster_triggerability.cc new file mode 100644 index 0000000..dec686f --- /dev/null +++ b/components/history_clusters/core/history_clusters_service_task_update_cluster_triggerability.cc
@@ -0,0 +1,142 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/history_clusters/core/history_clusters_service_task_update_cluster_triggerability.h" + +#include <utility> + +#include "base/bind.h" +#include "base/metrics/histogram_functions.h" +#include "base/strings/stringprintf.h" +#include "components/history/core/browser/history_service.h" +#include "components/history_clusters/core/clustering_backend.h" +#include "components/history_clusters/core/config.h" +#include "components/history_clusters/core/history_clusters_debug_jsons.h" +#include "components/history_clusters/core/history_clusters_service.h" + +namespace history_clusters { + +HistoryClustersServiceTaskUpdateClusterTriggerability:: + HistoryClustersServiceTaskUpdateClusterTriggerability( + base::WeakPtr<HistoryClustersService> weak_history_clusters_service, + ClusteringBackend* const backend, + history::HistoryService* const history_service, + base::OnceClosure callback) + : weak_history_clusters_service_(std::move(weak_history_clusters_service)), + backend_(backend), + history_service_(history_service), + callback_(std::move(callback)), + task_created_time_(base::Time::Now()) { + DCHECK(weak_history_clusters_service_); + DCHECK(history_service_); + DCHECK(backend_); + + continuation_time_ = task_created_time_; + Start(); +} + +HistoryClustersServiceTaskUpdateClusterTriggerability:: + ~HistoryClustersServiceTaskUpdateClusterTriggerability() = default; + +void HistoryClustersServiceTaskUpdateClusterTriggerability::Start() { + history_service_->GetMostRecentClusters( + base::Time::Min(), continuation_time_, + GetConfig().max_persisted_clusters_to_fetch, + GetConfig().max_persisted_cluster_visits_to_fetch_soft_cap, + base::BindOnce(&HistoryClustersServiceTaskUpdateClusterTriggerability:: + OnGotPersistedClusters, + weak_ptr_factory_.GetWeakPtr()), + /*include_keywords_and_duplicates=*/false, &task_tracker_); +} + +void HistoryClustersServiceTaskUpdateClusterTriggerability:: + OnGotPersistedClusters(std::vector<history::Cluster> clusters) { + if (!weak_history_clusters_service_) { + return; + } + + if (weak_history_clusters_service_->ShouldNotifyDebugMessage()) { + weak_history_clusters_service_->NotifyDebugMessage(base::StringPrintf( + "UPDATE CLUSTER TRIGGERABILITY TASK - PERSISTED CLUSTERS %zu:", + clusters.size())); + weak_history_clusters_service_->NotifyDebugMessage( + GetDebugJSONForClusters(clusters)); + } + + // TODO(b/259466296): Record metrics. + + if (clusters.empty()) { + // TODO(manukh): If the most recent cluster is invalid (due to DB + // corruption), `GetMostRecentClusters()` will return no clusters. We + // should handle this case and not assume we've exhausted history. + done_ = true; + std::move(callback_).Run(); + return; + } + continuation_time_ = + clusters.back().GetMostRecentVisit().annotated_visit.visit_row.visit_time; + + std::vector<history::Cluster> filtered_clusters; + base::ranges::copy_if(clusters, std::back_inserter(filtered_clusters), + [&](const history::Cluster& cluster) { + return !cluster.triggerability_calculated; + }); + + if (filtered_clusters.empty()) { + // Get more persisted clusters and see if the clusters need to be updated if + // visits have not been exhausted yet. + Start(); + return; + } + + backend_->GetClusterTriggerability( + base::BindOnce(&HistoryClustersServiceTaskUpdateClusterTriggerability:: + OnGotModelClusters, + weak_ptr_factory_.GetWeakPtr()), + std::move(filtered_clusters)); +} + +void HistoryClustersServiceTaskUpdateClusterTriggerability::OnGotModelClusters( + std::vector<history::Cluster> clusters) { + if (!weak_history_clusters_service_) { + return; + } + + // TODO(b/259466296): Record metrics. + + if (weak_history_clusters_service_->ShouldNotifyDebugMessage()) { + weak_history_clusters_service_->NotifyDebugMessage(base::StringPrintf( + "UPDATE CLUSTER TRIGGERABILITY TASK - MODEL CLUSTERS %zu:", + clusters.size())); + weak_history_clusters_service_->NotifyDebugMessage( + GetDebugJSONForClusters(clusters)); + } + + // Override the triggerability persistence if the most recent visit is within + // the cutoff period. + for (auto& cluster : clusters) { + base::Time cluster_most_recent_visit_time = + cluster.GetMostRecentVisit().annotated_visit.visit_row.visit_time; + if (task_created_time_ - cluster_most_recent_visit_time < + GetConfig().cluster_triggerability_cutoff_duration) { + cluster.triggerability_calculated = false; + } + } + + history_service_->UpdateClusterTriggerability( + clusters, + base::BindOnce(&HistoryClustersServiceTaskUpdateClusterTriggerability:: + OnPersistedClusterTriggerability, + weak_ptr_factory_.GetWeakPtr()), + &task_tracker_); +} + +void HistoryClustersServiceTaskUpdateClusterTriggerability:: + OnPersistedClusterTriggerability() { + // TODO(b/259466296): Record metrics. + + Start(); +} + +} // namespace history_clusters
diff --git a/components/history_clusters/core/history_clusters_service_task_update_cluster_triggerability.h b/components/history_clusters/core/history_clusters_service_task_update_cluster_triggerability.h new file mode 100644 index 0000000..2c7e4bb --- /dev/null +++ b/components/history_clusters/core/history_clusters_service_task_update_cluster_triggerability.h
@@ -0,0 +1,100 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_HISTORY_CLUSTERS_CORE_HISTORY_CLUSTERS_SERVICE_TASK_UPDATE_CLUSTER_TRIGGERABILITY_H_ +#define COMPONENTS_HISTORY_CLUSTERS_CORE_HISTORY_CLUSTERS_SERVICE_TASK_UPDATE_CLUSTER_TRIGGERABILITY_H_ + +#include <vector> + +#include "base/memory/raw_ptr.h" +#include "base/memory/weak_ptr.h" +#include "base/task/cancelable_task_tracker.h" +#include "base/time/time.h" +#include "components/history/core/browser/history_types.h" +#include "components/history_clusters/core/clustering_backend.h" +#include "components/history_clusters/core/history_clusters_service_task.h" +#include "components/history_clusters/core/history_clusters_types.h" + +namespace history { +class HistoryService; +} // namespace history + +namespace history_clusters { + +class HistoryClustersService; + +// `HistoryClustersServiceTaskUpdateClusterTriggerability` gets the most recent +// persisted clusters and updates their triggering metadata. It continues doing +// so, moving the threshold forward 1 day each time, until reaching today. +class HistoryClustersServiceTaskUpdateClusterTriggerability + : public HistoryClustersServiceTask { + public: + HistoryClustersServiceTaskUpdateClusterTriggerability( + base::WeakPtr<HistoryClustersService> weak_history_clusters_service, + ClusteringBackend* const backend, + history::HistoryService* const history_service, + base::OnceClosure callback); + ~HistoryClustersServiceTaskUpdateClusterTriggerability() override; + + private: + // When there remain clusters without their triggerability calculated, + // calculate them and persist the new values: + // Start() -> + // OnGotPersistedClusters() -> + // OnGotModelClusters() -> + // OnPersistedClusterTriggerability() -> + // Start() + + // When neither clusters were fetched nor was history exhausted: + // Start() -> + // OnGotPersistedClusters() -> + // Start() + + // Invoked syncly during construction, after `OnGotPersistedClusters()` + // receives no clusters while history isn't exhuasted, and after + // `OnPersistedClusterTriggerability()` records metrics. This fetches + // persisted clusters. + void Start(); + + // Invoked after `Start()` asyncly fetches clusters. May syncly invoke + // `callback_` if no clusters were returned. If clusters are returned, this + // will filter for clusters that do not have their triggerability calculated + // yet so that triggerability metadata can be calculated. Otherwise, it + // invokes `Start()` to fetch more clusters. + void OnGotPersistedClusters(std::vector<history::Cluster> clusters); + + // Invoked after `OnGotPersistedClusters()` asyncly obtains clusters. + void OnGotModelClusters(std::vector<history::Cluster> clusters); + + // Invoked after `OnGotModelClusters()` asyncly persists clusters. Will syncly + // invoke `Start()` to initiate the next iteration. + void OnPersistedClusterTriggerability(); + + // Never nullptr. + base::WeakPtr<HistoryClustersService> weak_history_clusters_service_; + // Non-owning pointer, but never nullptr. + const raw_ptr<ClusteringBackend> backend_; + // Non-owning pointer, but never nullptr. + const raw_ptr<history::HistoryService> history_service_; + + // Used to make requests to `HistoryService`. + base::Time continuation_time_; + base::CancelableTaskTracker task_tracker_; + + // Invoked after `OnGotPersistedClusters()` when all clusters have been + // exhausted. + base::OnceClosure callback_; + + // Tracks the time `this` was created to use for the max time we should update + // clusters for. + base::Time task_created_time_; + + // Used for async callbacks. + base::WeakPtrFactory<HistoryClustersServiceTaskUpdateClusterTriggerability> + weak_ptr_factory_{this}; +}; + +} // namespace history_clusters + +#endif // COMPONENTS_HISTORY_CLUSTERS_CORE_HISTORY_CLUSTERS_SERVICE_TASK_UPDATE_CLUSTER_TRIGGERABILITY_H_
diff --git a/components/omnibox/browser/autocomplete_scoring_model_executor.cc b/components/omnibox/browser/autocomplete_scoring_model_executor.cc index 8cdaf79..7149719 100644 --- a/components/omnibox/browser/autocomplete_scoring_model_executor.cc +++ b/components/omnibox/browser/autocomplete_scoring_model_executor.cc
@@ -4,7 +4,11 @@ #include "components/omnibox/browser/autocomplete_scoring_model_executor.h" +#include <vector> + #include "base/check_op.h" +#include "base/notreached.h" +#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/tflite/src/tensorflow/lite/c/common.h" #include "third_party/tflite_support/src/tensorflow_lite_support/cc/task/core/task_utils.h"
diff --git a/components/omnibox/browser/autocomplete_scoring_model_executor.h b/components/omnibox/browser/autocomplete_scoring_model_executor.h index dc1c472..9abc360 100644 --- a/components/omnibox/browser/autocomplete_scoring_model_executor.h +++ b/components/omnibox/browser/autocomplete_scoring_model_executor.h
@@ -5,7 +5,11 @@ #ifndef COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_SCORING_MODEL_EXECUTOR_H_ #define COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_SCORING_MODEL_EXECUTOR_H_ +#include <vector> + #include "components/optimization_guide/core/base_model_executor.h" +#include "third_party/abseil-cpp/absl/types/optional.h" +#include "third_party/tflite/src/tensorflow/lite/c/common.h" // Implements BaseModelExecutor to execute models with float vector input and // output. Input represents scoring signals associated one autocomplete match @@ -36,4 +40,4 @@ const std::vector<const TfLiteTensor*>& output_tensors) override; }; -#endif // COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_SCORING_MODEL_EXECUTOR_H_ \ No newline at end of file +#endif // COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_SCORING_MODEL_EXECUTOR_H_
diff --git a/components/omnibox/browser/autocomplete_scoring_model_handler.cc b/components/omnibox/browser/autocomplete_scoring_model_handler.cc index 196dedc..7feb8bc 100644 --- a/components/omnibox/browser/autocomplete_scoring_model_handler.cc +++ b/components/omnibox/browser/autocomplete_scoring_model_handler.cc
@@ -4,9 +4,15 @@ #include "components/omnibox/browser/autocomplete_scoring_model_handler.h" -#include "components/optimization_guide/core/model_executor.h" +#include <memory> + +#include "base/memory/scoped_refptr.h" +#include "base/task/sequenced_task_runner.h" +#include "components/omnibox/browser/autocomplete_scoring_model_executor.h" #include "components/optimization_guide/core/model_handler.h" #include "components/optimization_guide/core/optimization_guide_model_provider.h" +#include "components/optimization_guide/proto/models.pb.h" +#include "third_party/abseil-cpp/absl/types/optional.h" using ModelInput = AutocompleteScoringModelExecutor::ModelInput; using ModelOutput = AutocompleteScoringModelExecutor::ModelOutput;
diff --git a/components/omnibox/browser/autocomplete_scoring_model_handler.h b/components/omnibox/browser/autocomplete_scoring_model_handler.h index 8d0690e..90b7295 100644 --- a/components/omnibox/browser/autocomplete_scoring_model_handler.h +++ b/components/omnibox/browser/autocomplete_scoring_model_handler.h
@@ -5,10 +5,12 @@ #ifndef COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_SCORING_MODEL_HANDLER_H_ #define COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_SCORING_MODEL_HANDLER_H_ +#include "base/task/sequenced_task_runner.h" #include "components/omnibox/browser/autocomplete_scoring_model_executor.h" #include "components/optimization_guide/core/model_handler.h" - -class OptimizationGuideModelProvider; +#include "components/optimization_guide/core/optimization_guide_model_provider.h" +#include "components/optimization_guide/proto/models.pb.h" +#include "third_party/abseil-cpp/absl/types/optional.h" // Implements optimization_guide::ModelHandler for autocomplete scoring. // Keeps scoring model in memory. @@ -31,4 +33,4 @@ const AutocompleteScoringModelHandler&) = delete; }; -#endif // COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_SCORING_MODEL_HANDLER_H_ \ No newline at end of file +#endif // COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_SCORING_MODEL_HANDLER_H_
diff --git a/components/omnibox/browser/autocomplete_scoring_model_service.cc b/components/omnibox/browser/autocomplete_scoring_model_service.cc index 0502b75..53629eb 100644 --- a/components/omnibox/browser/autocomplete_scoring_model_service.cc +++ b/components/omnibox/browser/autocomplete_scoring_model_service.cc
@@ -4,9 +4,16 @@ #include "components/omnibox/browser/autocomplete_scoring_model_service.h" -#include "base/task/sequenced_task_runner.h" -#include "components/omnibox/browser/autocomplete_match.h" +#include <utility> + +#include "base/functional/callback.h" +#include "base/task/task_traits.h" +#include "base/task/thread_pool.h" +#include "components/omnibox/browser/autocomplete_scoring_model_executor.h" +#include "components/omnibox/browser/autocomplete_scoring_model_handler.h" #include "components/optimization_guide/core/optimization_guide_model_provider.h" +#include "components/optimization_guide/proto/models.pb.h" +#include "third_party/abseil-cpp/absl/types/optional.h" AutocompleteScoringModelService::AutocompleteScoringModelService( optimization_guide::OptimizationGuideModelProvider* model_provider) {
diff --git a/components/omnibox/browser/autocomplete_scoring_model_service.h b/components/omnibox/browser/autocomplete_scoring_model_service.h index d54c4cd8..c9e93b5b 100644 --- a/components/omnibox/browser/autocomplete_scoring_model_service.h +++ b/components/omnibox/browser/autocomplete_scoring_model_service.h
@@ -7,11 +7,13 @@ #include <memory> +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "components/keyed_service/core/keyed_service.h" #include "components/omnibox/browser/autocomplete_scoring_model_executor.h" #include "components/omnibox/browser/autocomplete_scoring_model_handler.h" #include "components/optimization_guide/core/optimization_guide_model_provider.h" +#include "third_party/abseil-cpp/absl/types/optional.h" // Autocomplete scoring service using machine learning models via // OptimizationGuide's model handler.
diff --git a/components/segmentation_platform/internal/segmentation_platform_service_impl.cc b/components/segmentation_platform/internal/segmentation_platform_service_impl.cc index cf283a24..ea3afa1 100644 --- a/components/segmentation_platform/internal/segmentation_platform_service_impl.cc +++ b/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
@@ -96,19 +96,8 @@ &SegmentationPlatformServiceImpl::OnModelRefreshNeeded, weak_ptr_factory_.GetWeakPtr())); - std::map<std::string, std::unique_ptr<SegmentResultProvider>> - result_providers; - for (const auto& config : configs_) { - result_providers[config->segmentation_key] = SegmentResultProvider::Create( - storage_service_->segment_info_database(), - storage_service_->signal_storage_config(), - storage_service_->default_model_manager(), &execution_service_, clock_, - platform_options_.force_refresh_results); - } - // Central class to delegate the client requests. - request_dispatcher_ = std::make_unique<RequestDispatcher>( - configs_, std::move(result_providers)); + request_dispatcher_ = std::make_unique<RequestDispatcher>(configs_); for (const auto& config : configs_) { segment_selectors_[config->segmentation_key] = @@ -254,7 +243,18 @@ selector.second->OnPlatformInitialized(&execution_service_); } - request_dispatcher_->OnPlatformInitialized(success); + std::map<std::string, std::unique_ptr<SegmentResultProvider>> + result_providers; + for (const auto& config : configs_) { + result_providers[config->segmentation_key] = SegmentResultProvider::Create( + storage_service_->segment_info_database(), + storage_service_->signal_storage_config(), + storage_service_->default_model_manager(), &execution_service_, clock_, + platform_options_.force_refresh_results); + } + + request_dispatcher_->OnPlatformInitialized(success, &execution_service_, + std::move(result_providers)); // Run any method calls that were received during initialization. while (!pending_actions_.empty()) {
diff --git a/components/segmentation_platform/internal/selection/request_dispatcher.cc b/components/segmentation_platform/internal/selection/request_dispatcher.cc index a550160..007f163d 100644 --- a/components/segmentation_platform/internal/selection/request_dispatcher.cc +++ b/components/segmentation_platform/internal/selection/request_dispatcher.cc
@@ -14,21 +14,27 @@ namespace segmentation_platform { RequestDispatcher::RequestDispatcher( - const std::vector<std::unique_ptr<Config>>& configs, - std::map<std::string, std::unique_ptr<SegmentResultProvider>> - result_providers) - : configs_(configs) { - for (const auto& config : configs_) { - request_handlers_[config->segmentation_key] = RequestHandler::Create( - *config, std::move(result_providers[config->segmentation_key])); - } -} + const std::vector<std::unique_ptr<Config>>& configs) + : configs_(configs) {} RequestDispatcher::~RequestDispatcher() = default; -void RequestDispatcher::OnPlatformInitialized(bool success) { +void RequestDispatcher::OnPlatformInitialized( + bool success, + ExecutionService* execution_service, + std::map<std::string, std::unique_ptr<SegmentResultProvider>> + result_providers) { storage_init_status_ = success; + // Only set request handlers if it has not been set for testing already. + if (request_handlers_.empty()) { + for (const auto& config : configs_) { + request_handlers_[config->segmentation_key] = RequestHandler::Create( + *config, std::move(result_providers[config->segmentation_key]), + execution_service); + } + } + // Run any method calls that were received during initialization. while (!pending_actions_.empty()) { auto callback = std::move(pending_actions_.front());
diff --git a/components/segmentation_platform/internal/selection/request_dispatcher.h b/components/segmentation_platform/internal/selection/request_dispatcher.h index 3bf8c8a..85b953f 100644 --- a/components/segmentation_platform/internal/selection/request_dispatcher.h +++ b/components/segmentation_platform/internal/selection/request_dispatcher.h
@@ -28,10 +28,8 @@ // 2. Dispatching requests to client specific request handlers. class RequestDispatcher { public: - RequestDispatcher( - const std::vector<std::unique_ptr<Config>>& configs, - std::map<std::string, std::unique_ptr<SegmentResultProvider>> - result_providers); + explicit RequestDispatcher( + const std::vector<std::unique_ptr<Config>>& configs); ~RequestDispatcher(); // Disallow copy/assign. @@ -39,7 +37,11 @@ RequestDispatcher& operator=(RequestDispatcher&) = delete; // Called when platform and database initializations are completed. - void OnPlatformInitialized(bool success); + void OnPlatformInitialized( + bool success, + ExecutionService* execution_service, + std::map<std::string, std::unique_ptr<SegmentResultProvider>> + result_providers); // Client API. See `SegmentationPlatformService::GetClassificationResult`. void GetClassificationResult(const std::string& segmentation_key,
diff --git a/components/segmentation_platform/internal/selection/request_dispatcher_unittest.cc b/components/segmentation_platform/internal/selection/request_dispatcher_unittest.cc index bef502b..98c405b 100644 --- a/components/segmentation_platform/internal/selection/request_dispatcher_unittest.cc +++ b/components/segmentation_platform/internal/selection/request_dispatcher_unittest.cc
@@ -55,10 +55,8 @@ configs_.emplace_back(CreateTestConfig(kTestClient1)); configs_.emplace_back(CreateTestConfig(kTestClient2)); - std::map<std::string, std::unique_ptr<SegmentResultProvider>> - result_providers; - request_dispatcher_ = std::make_unique<RequestDispatcher>( - configs_, std::move(result_providers)); + + request_dispatcher_ = std::make_unique<RequestDispatcher>(configs_); auto handler1 = std::make_unique<MockRequestHandler>(); request_handler1_ = handler1.get(); @@ -106,7 +104,11 @@ // Finish platform initialization with failure. The request queue is flushed // and callbacks are invoked with empty results. - request_dispatcher_->OnPlatformInitialized(false); + std::map<std::string, std::unique_ptr<SegmentResultProvider>> + result_providers; + ExecutionService execution_service; + request_dispatcher_->OnPlatformInitialized(false, &execution_service, + std::move(result_providers)); loop.Run(); EXPECT_EQ(0, request_dispatcher_->get_pending_actions_size_for_testing()); } @@ -152,7 +154,11 @@ // Finish platform initialization with success. The request queue is flushed, // and the request handler is invoked. - request_dispatcher_->OnPlatformInitialized(true); + std::map<std::string, std::unique_ptr<SegmentResultProvider>> + result_providers; + ExecutionService execution_service; + request_dispatcher_->OnPlatformInitialized(true, &execution_service, + std::move(result_providers)); loop.Run(); EXPECT_EQ(0, request_dispatcher_->get_pending_actions_size_for_testing()); } @@ -163,7 +169,11 @@ options.on_demand_execution = true; // Init platform. - request_dispatcher_->OnPlatformInitialized(true); + std::map<std::string, std::unique_ptr<SegmentResultProvider>> + result_providers; + ExecutionService execution_service; + request_dispatcher_->OnPlatformInitialized(true, &execution_service, + std::move(result_providers)); // Request from client 1. ClassificationResult result1(PredictionStatus::kSucceeded);
diff --git a/components/segmentation_platform/internal/selection/request_handler.cc b/components/segmentation_platform/internal/selection/request_handler.cc index aac19f3..f25406c 100644 --- a/components/segmentation_platform/internal/selection/request_handler.cc +++ b/components/segmentation_platform/internal/selection/request_handler.cc
@@ -34,7 +34,8 @@ class RequestHandlerImpl : public RequestHandler { public: RequestHandlerImpl(const Config& config, - std::unique_ptr<SegmentResultProvider> result_provider); + std::unique_ptr<SegmentResultProvider> result_provider, + ExecutionService* execution_service); ~RequestHandlerImpl() override; // Disallow copy/assign. @@ -52,6 +53,7 @@ SegmentResultProvider::SegmentResultCallback callback); void OnGetModelResultForClassification( + scoped_refptr<InputContext> input_context, ClassificationResultCallback classification_callback, std::unique_ptr<SegmentResultProvider::SegmentResult> result); @@ -62,13 +64,19 @@ // the model or getting results from the cache as necessary. std::unique_ptr<SegmentResultProvider> result_provider_; + // Pointer to the execution service. + const raw_ptr<ExecutionService> execution_service_{}; + base::WeakPtrFactory<RequestHandlerImpl> weak_ptr_factory_{this}; }; RequestHandlerImpl::RequestHandlerImpl( const Config& config, - std::unique_ptr<SegmentResultProvider> result_provider) - : config_(config), result_provider_(std::move(result_provider)) {} + std::unique_ptr<SegmentResultProvider> result_provider, + ExecutionService* execution_service) + : config_(config), + result_provider_(std::move(result_provider)), + execution_service_(execution_service) {} RequestHandlerImpl::~RequestHandlerImpl() = default; @@ -80,7 +88,8 @@ GetModelResult( options, input_context, base::BindOnce(&RequestHandlerImpl::OnGetModelResultForClassification, - weak_ptr_factory_.GetWeakPtr(), std::move(callback))); + weak_ptr_factory_.GetWeakPtr(), input_context, + std::move(callback))); } void RequestHandlerImpl::GetModelResult( @@ -101,6 +110,7 @@ } void RequestHandlerImpl::OnGetModelResultForClassification( + scoped_refptr<InputContext> input_context, ClassificationResultCallback classification_callback, std::unique_ptr<SegmentResultProvider::SegmentResult> result) { PostProcessor post_processor; @@ -109,6 +119,14 @@ if (result) { ordered_labels = post_processor.GetClassifierResults(result->result); status = ResultStateToPredictionStatus(result->state); + + // Collect training data. The execution service and training data collector + // might be null in testing. + if (execution_service_ && execution_service_->training_data_collector()) { + execution_service_->training_data_collector()->OnDecisionTime( + config_.segments.begin()->first, input_context, + proto::TrainingOutputs::TriggerConfig::ONDEMAND); + } } ClassificationResult classification_result(status); classification_result.ordered_labels = ordered_labels; @@ -122,9 +140,10 @@ // static std::unique_ptr<RequestHandler> RequestHandler::Create( const Config& config, - std::unique_ptr<SegmentResultProvider> result_provider) { - return std::make_unique<RequestHandlerImpl>(config, - std::move(result_provider)); + std::unique_ptr<SegmentResultProvider> result_provider, + ExecutionService* execution_service) { + return std::make_unique<RequestHandlerImpl>( + config, std::move(result_provider), execution_service); } } // namespace segmentation_platform
diff --git a/components/segmentation_platform/internal/selection/request_handler.h b/components/segmentation_platform/internal/selection/request_handler.h index c61cb38..d7b413c 100644 --- a/components/segmentation_platform/internal/selection/request_handler.h +++ b/components/segmentation_platform/internal/selection/request_handler.h
@@ -7,6 +7,8 @@ #include "base/callback_helpers.h" #include "base/memory/scoped_refptr.h" +#include "components/segmentation_platform/internal/data_collection/training_data_collector.h" +#include "components/segmentation_platform/internal/scheduler/execution_service.h" #include "components/segmentation_platform/internal/selection/segment_result_provider.h" #include "components/segmentation_platform/public/input_context.h" #include "components/segmentation_platform/public/result.h" @@ -26,7 +28,8 @@ // Creates the instance. static std::unique_ptr<RequestHandler> Create( const Config& config, - std::unique_ptr<SegmentResultProvider> result_provider); + std::unique_ptr<SegmentResultProvider> result_provider, + ExecutionService* execution_service); // Client API. See `SegmentationPlatformService::GetClassificationResult`. virtual void GetClassificationResult(
diff --git a/components/segmentation_platform/internal/selection/request_handler_unittest.cc b/components/segmentation_platform/internal/selection/request_handler_unittest.cc index 999a4c8..5256aea 100644 --- a/components/segmentation_platform/internal/selection/request_handler_unittest.cc +++ b/components/segmentation_platform/internal/selection/request_handler_unittest.cc
@@ -64,7 +64,8 @@ config_ = CreateTestConfig(); auto provider = std::make_unique<MockResultProvider>(); result_provider_ = provider.get(); - request_handler_ = RequestHandler::Create(*config_, std::move(provider)); + request_handler_ = + RequestHandler::Create(*config_, std::move(provider), nullptr); } void OnGetClassificationResult(base::RepeatingClosure closure,
diff --git a/components/translate/content/android/java/res/layout/translate_menu_item_checked.xml b/components/translate/content/android/java/res/layout/translate_menu_item_checked.xml index 93cebc2..a44f650 100644 --- a/components/translate/content/android/java/res/layout/translate_menu_item_checked.xml +++ b/components/translate/content/android/java/res/layout/translate_menu_item_checked.xml
@@ -17,7 +17,8 @@ <LinearLayout style="@style/AppMenuItem" android:layout_width="match_parent" - android:layout_height="wrap_content" > + android:layout_height="wrap_content" + tools:ignore="UseCompoundDrawables"> <TextView android:id="@+id/menu_item_text" @@ -37,7 +38,8 @@ android:layout_height="match_parent" android:layout_gravity="end" android:gravity="center_vertical" - app:tint="@color/default_icon_color_tint_list" /> + app:tint="@color/default_icon_color_tint_list" + android:importantForAccessibility="no" /> </LinearLayout> @@ -49,4 +51,3 @@ android:visibility="gone" /> </LinearLayout> -
diff --git a/components/translate/core/browser/translate_infobar_delegate.cc b/components/translate/core/browser/translate_infobar_delegate.cc index fbf4386..e270c236 100644 --- a/components/translate/core/browser/translate_infobar_delegate.cc +++ b/components/translate/core/browser/translate_infobar_delegate.cc
@@ -123,6 +123,10 @@ return language_name_at(ui_delegate_.GetSourceLanguageIndex()); } +std::u16string TranslateInfoBarDelegate::initial_source_language_name() const { + return language_name_at(ui_delegate_.GetInitialSourceLanguageIndex()); +} + std::u16string TranslateInfoBarDelegate::target_language_name() const { return language_name_at(ui_delegate_.GetTargetLanguageIndex()); }
diff --git a/components/translate/core/browser/translate_infobar_delegate.h b/components/translate/core/browser/translate_infobar_delegate.h index f3db7d91..587c80e1 100644 --- a/components/translate/core/browser/translate_infobar_delegate.h +++ b/components/translate/core/browser/translate_infobar_delegate.h
@@ -102,6 +102,8 @@ virtual std::u16string source_language_name() const; + virtual std::u16string initial_source_language_name() const; + virtual std::u16string unknown_language_name() const; virtual void UpdateSourceLanguage(const std::string& language_code);
diff --git a/components/translate/core/browser/translate_ui_delegate.h b/components/translate/core/browser/translate_ui_delegate.h index 41dea2c..793339b 100644 --- a/components/translate/core/browser/translate_ui_delegate.h +++ b/components/translate/core/browser/translate_ui_delegate.h
@@ -61,6 +61,11 @@ // Returns the source language index. size_t GetSourceLanguageIndex() const { return source_language_index_; } + // Returns the initial source language index. + size_t GetInitialSourceLanguageIndex() const { + return initial_source_language_index_; + } + // Returns the source language code. std::string GetSourceLanguageCode() const;
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index a00f476..854ec92 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -4273,7 +4273,7 @@ // happens, delete the frame and both the new and old documents. Unload // handlers aren't guaranteed to run here. if (is_waiting_for_unload_ack_) { - parent_->RemoveChild(frame_tree_node_); + parent_->RemoveChild(GetFrameTreeNodeForUnload()); return; } @@ -4304,7 +4304,7 @@ // descendant frames to execute unload handlers. Start executing those // handlers now. StartPendingDeletionOnSubtree(PendingDeletionReason::kFrameDetach); - frame_tree()->FrameUnloading(frame_tree_node_); + frame_tree()->FrameUnloading(GetFrameTreeNodeForUnload()); // Some children with no unload handler may be eligible for immediate // deletion. Cut the dead branches now. This is a performance optimization. @@ -4827,7 +4827,7 @@ // Start pending deletion on this frame and its children. DeleteRenderFrame(mojom::FrameDeleteIntention::kNotMainFrame); StartPendingDeletionOnSubtree(PendingDeletionReason::kFrameDetach); - frame_tree()->FrameUnloading(frame_tree_node_); + frame_tree()->FrameUnloading(GetFrameTreeNodeForUnload()); // Some children with no unload handler may be eligible for immediate // deletion. Cut the dead branches now. This is a performance optimization. @@ -5072,7 +5072,8 @@ } bool deleted = - frame_tree_node_->render_manager()->DeleteFromPendingList(this); + GetFrameTreeNodeForUnload()->render_manager()->DeleteFromPendingList( + this); CHECK(deleted); } @@ -5549,7 +5550,7 @@ proto.Set(TraceProto::kRenderFrameHostId, GetGlobalId()); proto->set_frame_tree_node_id(frame_tree_node_->frame_tree_node_id()); proto->set_lifecycle_state(LifecycleStateToProto()); - proto->set_frame_type(FrameTypeToProto(frame_tree_node_->GetFrameType())); + proto->set_frame_type(GetFrameTypeProto()); proto->set_origin(GetLastCommittedOrigin().GetDebugString()); proto->set_url(GetLastCommittedURL().possibly_invalid_spec()); proto.Set(TraceProto::kProcess, GetProcess()); @@ -5591,6 +5592,26 @@ return RFHProto::UNSPECIFIED; } +perfetto::protos::pbzero::FrameTreeNodeInfo::FrameType +RenderFrameHostImpl::GetFrameTypeProto() const { + using RFHProto = perfetto::protos::pbzero::FrameTreeNodeInfo; + + if (GetParent()) + return RFHProto::SUBFRAME; + if (const_cast<RenderFrameHostImpl*>(this)->GetPage().IsPrimary()) + return RFHProto::PRIMARY_MAIN_FRAME; + if (lifecycle_state() == LifecycleStateImpl::kPrerendering) + return RFHProto::PRERENDER_MAIN_FRAME; + if (IsFencedFrameRoot()) + return RFHProto::FENCED_FRAME_ROOT; + + // It returns a different value from FrameTreeNode::GetFrameType() when + // - `this` is a speculative RFH or + // - `this` is not in a frame tree (e.g., IsInBackForwardCache() or + // IsPendingDeletion()). + return RFHProto::UNSPECIFIED_FRAME_TYPE; +} + StoragePartitionImpl* RenderFrameHostImpl::GetStoragePartition() { // Both RenderProcessHostImpl and MockRenderProcessHost obtain the // StoragePartition instance through BrowserContext::GetStoragePartition() @@ -8788,7 +8809,7 @@ OnUnloaded(); // Delete |this|. // Do not add code after this. } else { - parent_->RemoveChild(frame_tree_node_); + parent_->RemoveChild(GetFrameTreeNodeForUnload()); } } } @@ -8870,7 +8891,7 @@ void RenderFrameHostImpl::OnUnloadTimeout() { DCHECK(IsPendingDeletion()); - parent_->RemoveChild(frame_tree_node_); + parent_->RemoveChild(GetFrameTreeNodeForUnload()); } void RenderFrameHostImpl::SetFocusedFrame() { @@ -12720,24 +12741,25 @@ } void RenderFrameHostImpl::EnsureDescendantsAreUnloading() { - std::vector<RenderFrameHostImpl*> parents_to_be_checked = {this}; - std::vector<RenderFrameHostImpl*> rfhs_to_be_checked; - while (!parents_to_be_checked.empty()) { - RenderFrameHostImpl* document = parents_to_be_checked.back(); - parents_to_be_checked.pop_back(); + std::vector<FrameTreeNode*> frame_to_remove; + std::vector<RenderFrameHostImpl*> rfh_to_be_checked = {this}; + while (!rfh_to_be_checked.empty()) { + RenderFrameHostImpl* document = rfh_to_be_checked.back(); + rfh_to_be_checked.pop_back(); - for (auto& subframe : document->children_) { - RenderFrameHostImpl* child = subframe->current_frame_host(); - // Every child is expected to be pending deletion. If it isn't the - // case, their FrameTreeNode is immediately removed from the tree. - if (!child->IsPendingDeletion()) - rfhs_to_be_checked.push_back(child); - else - parents_to_be_checked.push_back(child); + // Every child is expected to be pending deletion. If it isn't the case, + // their FrameTreeNode is immediately removed from the tree. + for (auto& iframe : document->children_) { + if (iframe->current_frame_host()->IsPendingDeletion()) { + rfh_to_be_checked.push_back(iframe->current_frame_host()); + } else { + frame_to_remove.push_back(iframe.get()); + } } } - for (RenderFrameHostImpl* document : rfhs_to_be_checked) - document->parent_->RemoveChild(document->frame_tree_node()); + for (FrameTreeNode* child : frame_to_remove) { + child->parent()->RemoveChild(child); + } } void RenderFrameHostImpl::AddMessageToConsoleImpl( @@ -13551,6 +13573,11 @@ .GetBackForwardCache(); } +FrameTreeNode* RenderFrameHostImpl::GetFrameTreeNodeForUnload() { + DCHECK(IsPendingDeletion()); + return frame_tree_node_; +} + void RenderFrameHostImpl::MaybeEvictFromBackForwardCache() { if (!IsInBackForwardCache()) return;
diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h index ad89c4e..4e0276c 100644 --- a/content/browser/renderer_host/render_frame_host_impl.h +++ b/content/browser/renderer_host/render_frame_host_impl.h
@@ -35,6 +35,7 @@ #include "base/threading/sequence_bound.h" #include "base/time/time.h" #include "base/timer/timer.h" +#include "base/tracing/protos/chrome_track_event.pbzero.h" #include "base/types/pass_key.h" #include "base/unguessable_token.h" #include "build/build_config.h" @@ -3697,6 +3698,9 @@ TraceProto::LifecycleState LifecycleStateToProto() const; + perfetto::protos::pbzero::FrameTreeNodeInfo::FrameType GetFrameTypeProto() + const; + void BindCacheStorageInternal( mojo::PendingReceiver<blink::mojom::CacheStorage> receiver, const storage::BucketLocator& bucket_locator); @@ -3707,6 +3711,14 @@ // Returns the BackForwardCacheImpl for the outermost main frame. BackForwardCacheImpl& GetBackForwardCache(); + // Return the FrameTreeNode currently owning this RenderFrameHost. In general, + // we don't want the RenderFrameHost to depend on it, because it might change, + // or might be missing. An exception is made here during unload. It is invalid + // to use this function elsewhere. + // In other cases, the use of the RenderFrameHostOwner interface should be + // used for communicating with the FrameTreeNode. + FrameTreeNode* GetFrameTreeNodeForUnload(); + // Stores an override of this document's base URL when it does not match the // last committed URL or an inherited value (e.g., if a <base> element is // added). This is tracked for all frames, for the purpose of GetBaseUrl. This
diff --git a/content/browser/renderer_host/render_frame_host_manager_unittest.cc b/content/browser/renderer_host/render_frame_host_manager_unittest.cc index c74de9d1..9d8b701 100644 --- a/content/browser/renderer_host/render_frame_host_manager_unittest.cc +++ b/content/browser/renderer_host/render_frame_host_manager_unittest.cc
@@ -219,34 +219,6 @@ bool created_; }; -// This WebContents observer keep track of its RVH change. -class RenderViewHostChangedObserver : public WebContentsObserver { - public: - explicit RenderViewHostChangedObserver(WebContents* web_contents) - : WebContentsObserver(web_contents), host_changed_(false) {} - - RenderViewHostChangedObserver(const RenderViewHostChangedObserver&) = delete; - RenderViewHostChangedObserver& operator=( - const RenderViewHostChangedObserver&) = delete; - - // WebContentsObserver. - void RenderViewHostChanged(RenderViewHost* old_host, - RenderViewHost* new_host) override { - host_changed_ = true; - } - - bool DidHostChange() { - bool host_changed = host_changed_; - Reset(); - return host_changed; - } - - void Reset() { host_changed_ = false; } - - private: - bool host_changed_; -}; - // This observer is used to check whether IPC messages are being filtered for // swapped out RenderFrameHost objects. It observes the plugin crash and favicon // update events, which the FilterMessagesWhileSwappedOut test simulates being @@ -906,11 +878,11 @@ TEST_P(RenderFrameHostManagerTest, Navigate) { std::unique_ptr<TestWebContents> web_contents(TestWebContents::Create( browser_context(), SiteInstance::Create(browser_context()))); - RenderViewHostChangedObserver change_observer(web_contents.get()); RenderFrameHostManager* manager = web_contents->GetPrimaryFrameTree().root()->render_manager(); RenderFrameHostImpl* host = nullptr; + RenderViewHost* initial_render_view_host = nullptr; // 1) The first navigation. -------------------------- const GURL kUrl1("http://www.google.com/"); @@ -948,6 +920,8 @@ true /* is_renderer_init */, nullptr /* blob_url_loader_factory */, false /* is_initial_entry */); host = NavigateToEntry(manager, &entry2); + initial_render_view_host = host->GetRenderViewHost(); + EXPECT_TRUE(initial_render_view_host); // The RenderFrameHost created in Init will be reused. EXPECT_TRUE(host == manager->current_frame_host()); @@ -978,19 +952,16 @@ EXPECT_TRUE(GetPendingFrameHost(manager)); ASSERT_EQ(host, GetPendingFrameHost(manager)); - change_observer.Reset(); - // Commit. DidNavigateFrame(manager, GetPendingFrameHost(manager)); EXPECT_TRUE(host == manager->current_frame_host()); ASSERT_TRUE(host); EXPECT_TRUE(host->GetSiteInstance()->HasSite()); + EXPECT_NE(initial_render_view_host, host->GetRenderViewHost()); + // Check the pending RenderFrameHost has been committed. EXPECT_FALSE(GetPendingFrameHost(manager)); - // We should observe RVH changed event. - EXPECT_TRUE(change_observer.DidHostChange()); - ASSERT_TRUE(manager->GetRenderWidgetHostView()->GetBackgroundColor()); EXPECT_EQ(SK_ColorRED, *manager->GetRenderWidgetHostView()->GetBackgroundColor()); @@ -1618,7 +1589,6 @@ BeforeUnloadFiredWebContentsDelegate delegate; std::unique_ptr<TestWebContents> web_contents( TestWebContents::Create(browser_context(), instance)); - RenderViewHostChangedObserver change_observer(web_contents.get()); web_contents->SetDelegate(&delegate); RenderFrameHostManager* manager = @@ -1638,9 +1608,6 @@ EXPECT_EQ(host, manager->current_frame_host()); EXPECT_FALSE(GetPendingFrameHost(manager)); - // We should observe RVH changed event. - EXPECT_TRUE(change_observer.DidHostChange()); - // Commit. DidNavigateFrame(manager, host);
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 98f1e35a5..b5edd46 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -5006,6 +5006,12 @@ DCHECK(!child_process_launcher_->IsStarting()); #if BUILDFLAG(IS_ANDROID) child_process_launcher_->SetRenderProcessPriority(priority_); +#elif BUILDFLAG(IS_MAC) + if (base::FeatureList::IsEnabled( + features::kMacAllowBackgroundingRenderProcesses)) { + child_process_launcher_->SetProcessBackgrounded( + priority_.is_background()); + } #else child_process_launcher_->SetProcessBackgrounded(priority_.is_background()); #endif
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index 271ff02..c679be4 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -6875,8 +6875,6 @@ // notification so that clients that pick up a pointer to |this| can NULL the // pointer. See Bug 1230284. notify_disconnection_ = true; - observers_.NotifyObservers(&WebContentsObserver::RenderViewHostChanged, - old_view, new_view); view_->RenderViewHostChanged(old_view, new_view); // If this is an inner WebContents that has swapped views, we need to reattach @@ -8202,10 +8200,6 @@ DCHECK_NE(new_frame->lifecycle_state(), RenderFrameHostImpl::LifecycleStateImpl::kSpeculative); - // Only fire RenderViewHostChanged if it is related to our FrameTree, as - // observers can not deal with events coming from non-primary FrameTree. - // TODO(https://crbug.com/1168562): Update observers to deal with the events, - // and fire events for all frame trees. if (new_frame->IsInPrimaryMainFrame()) { // The |new_frame| and its various compadres are already swapped into place // for the WebContentsImpl when this method is called.
diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn index 7ee1ce2..c5fabefe 100644 --- a/content/public/browser/BUILD.gn +++ b/content/public/browser/BUILD.gn
@@ -187,7 +187,6 @@ "frame_accept_header.cc", "frame_accept_header.h", "frame_rate_throttling.h", - "frame_type.cc", "frame_type.h", "generated_code_cache_settings.h", "global_request_id.cc",
diff --git a/content/public/browser/frame_type.cc b/content/public/browser/frame_type.cc deleted file mode 100644 index d197076..0000000 --- a/content/public/browser/frame_type.cc +++ /dev/null
@@ -1,28 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/public/browser/frame_type.h" - -#include "base/tracing/protos/chrome_track_event.pbzero.h" - -namespace content { - -perfetto::protos::pbzero::FrameTreeNodeInfo::FrameType FrameTypeToProto( - FrameType frame_type) { - using RFHProto = perfetto::protos::pbzero::FrameTreeNodeInfo; - switch (frame_type) { - case FrameType::kSubframe: - return RFHProto::SUBFRAME; - case FrameType::kPrimaryMainFrame: - return RFHProto::PRIMARY_MAIN_FRAME; - case FrameType::kPrerenderMainFrame: - return RFHProto::PRERENDER_MAIN_FRAME; - case FrameType::kFencedFrameRoot: - return RFHProto::FENCED_FRAME_ROOT; - } - - return RFHProto::UNSPECIFIED_FRAME_TYPE; -} - -} // namespace content
diff --git a/content/public/browser/frame_type.h b/content/public/browser/frame_type.h index 30e3afb..b7a743f5 100644 --- a/content/public/browser/frame_type.h +++ b/content/public/browser/frame_type.h
@@ -5,7 +5,6 @@ #ifndef CONTENT_PUBLIC_BROWSER_FRAME_TYPE_H_ #define CONTENT_PUBLIC_BROWSER_FRAME_TYPE_H_ -#include "base/tracing/protos/chrome_track_event.pbzero.h" #include "content/common/content_export.h" namespace content { @@ -44,9 +43,6 @@ // or guestviews. }; -perfetto::protos::pbzero::FrameTreeNodeInfo::FrameType FrameTypeToProto( - FrameType frame_type); - } // namespace content #endif // CONTENT_PUBLIC_BROWSER_FRAME_TYPE_H_
diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h index d89d18e..7038d905 100644 --- a/content/public/browser/web_contents_observer.h +++ b/content/public/browser/web_contents_observer.h
@@ -242,13 +242,6 @@ virtual void PrimaryMainFrameRenderProcessGone( base::TerminationStatus status) {} - // This method is invoked when a WebContents swaps its visible RenderViewHost - // with another one, possibly changing processes. The RenderViewHost that has - // been replaced is in |old_host|, which is nullptr if the old RVH was shut - // down. - virtual void RenderViewHostChanged(RenderViewHost* old_host, - RenderViewHost* new_host) {} - // This method is invoked when a process in the WebContents becomes // unresponsive. virtual void OnRendererUnresponsive(RenderProcessHost* render_process_host) {}
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc index b3bf4ff1..b38e833a 100644 --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc
@@ -1477,6 +1477,11 @@ "IOSurfaceCapturer", base::FEATURE_ENABLED_BY_DEFAULT); +// Enables backgrounding hidden renderers on Mac. +BASE_FEATURE(kMacAllowBackgroundingRenderProcesses, + "MacAllowBackgroundingRenderProcesses", + base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kMacSyscallSandbox, "MacSyscallSandbox", base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h index 5915dcd..8fc0ec7 100644 --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h
@@ -328,6 +328,7 @@ #if BUILDFLAG(IS_MAC) CONTENT_EXPORT BASE_DECLARE_FEATURE(kDeviceMonitorMac); CONTENT_EXPORT BASE_DECLARE_FEATURE(kIOSurfaceCapturer); +CONTENT_EXPORT BASE_DECLARE_FEATURE(kMacAllowBackgroundingRenderProcesses); CONTENT_EXPORT BASE_DECLARE_FEATURE(kMacSyscallSandbox); CONTENT_EXPORT BASE_DECLARE_FEATURE(kMacWebContentsOcclusion); CONTENT_EXPORT BASE_DECLARE_FEATURE(kRetryGetVideoCaptureDeviceInfos);
diff --git a/content/public/test/mock_web_contents_observer.h b/content/public/test/mock_web_contents_observer.h index 90ce0176..ec6f18056 100644 --- a/content/public/test/mock_web_contents_observer.h +++ b/content/public/test/mock_web_contents_observer.h
@@ -60,10 +60,6 @@ (base::TerminationStatus status), (override)); MOCK_METHOD(void, - RenderViewHostChanged, - (RenderViewHost* old_host, RenderViewHost* new_host), - (override)); - MOCK_METHOD(void, OnRendererUnresponsive, (RenderProcessHost* render_process_host), (override));
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 0a1e925..ac33adc3 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
@@ -106,6 +106,9 @@ # Seems to kill the system UI/otherwise make the device unusable. crbug.com/1294065 [ android android-shield-android-tv ] GpuProcess_visibility [ Skip ] +# SwiftShader is disabled on Mac M1 +crbug.com/1378476 [ mac mac-arm64 angle-swiftshader ] GpuProcess_swiftshader_for_webgl [ Skip ] + ################### # Failures/Flakes # ###################
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 d7d83f5..db9340c 100644 --- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -394,7 +394,6 @@ crbug.com/1376927 [ win10 target-cpu-32 nvidia-0x2184 ] Pixel_MediaFoundationClearDirectComposition [ Failure ] # Pixel_MediaRecorderFromVideoElement fails on several FYI bots -crbug.com/1382332 [ win10 ] Pixel_MediaRecorderFromVideoElement [ Failure ] crbug.com/1382332 [ win10 ] Pixel_MediaRecorderFromVideoElementWithOoprCanvasDisabled [ Failure ] crbug.com/1382332 [ mac ] Pixel_MediaRecorderFromVideoElement [ Failure ] crbug.com/1382332 [ mac ] Pixel_MediaRecorderFromVideoElementWithOoprCanvasDisabled [ Failure ]
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 b679a6d..a255fcf 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
@@ -543,10 +543,7 @@ crbug.com/982292 [ mac nvidia angle-opengl passthrough ] deqp/functional/gles3/instancedrendering.html [ Failure ] # Mac ASAN -crbug.com/1403824 [ mac asan passthrough ] deqp/functional/gles3/vertexarrays/multiple_attributes.stride.html [ RetryOnFailure ] crbug.com/1403824 [ mac asan passthrough ] deqp/functional/gles3/vertexarrays/single_attribute.first.html [ RetryOnFailure ] -crbug.com/1403824 [ mac asan passthrough ] deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy.html [ RetryOnFailure ] -crbug.com/1403830 [ mac asan passthrough ] deqp/data/gles3/shaders/declarations.html [ RetryOnFailure ] #################### # Linux failures # @@ -596,8 +593,6 @@ crbug.com/1176485 [ android qualcomm ] conformance2/glsl3/uint-int-shift-bug.html [ Failure ] crbug.com/1000354 [ android android-pixel-2 passthrough ] conformance2/reading/read-pixels-from-fbo-test.html [ Failure ] crbug.com/1027125 [ android qualcomm ] deqp/functional/gles3/negativetextureapi.html [ Failure ] -crbug.com/1092734 [ android android-pixel-2 passthrough ] conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html [ Failure ] -crbug.com/1092734 [ android android-pixel-2 passthrough ] conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte.html [ Failure ] crbug.com/1143323 [ android android-pixel-2 passthrough ] conformance/rendering/draw-arrays-out-of-bounds.html [ Failure ] crbug.com/1276186 [ android android-pixel-2 ] conformance2/glsl3/array-equality.html [ Failure ] crbug.com/angleproject/7421 [ android android-pixel-2 ] conformance2/renderbuffers/invalidate-framebuffer.html [ Failure ]
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 04d3b4d04..6c80fdd8 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
@@ -270,6 +270,9 @@ # Skip test that breaks subsequent tests. crbug.com/1043953 [ chromeos chromeos-board-amd64-generic ] conformance/textures/misc/texture-size-limit.html [ Skip ] +# SwiftShader is disabled on Mac M1 +crbug.com/1378476 [ mac mac-arm64 angle-swiftshader ] conformance/rendering/gl-drawelements.html [ Skip ] + ################### # Failures/Flakes # ###################
diff --git a/ios/chrome/browser/download/confirm_download_closing_overlay.mm b/ios/chrome/browser/download/confirm_download_closing_overlay.mm index 9ac9850..9c141a0 100644 --- a/ios/chrome/browser/download/confirm_download_closing_overlay.mm +++ b/ios/chrome/browser/download/confirm_download_closing_overlay.mm
@@ -21,18 +21,18 @@ void ConfirmDownloadClosingRequest::CreateAuxiliaryData( base::SupportsUserData* user_data) { - const std::vector<alert_overlays::ButtonConfig> buttons{ - alert_overlays::ButtonConfig( + const std::vector<std::vector<alert_overlays::ButtonConfig>> buttons{ + {alert_overlays::ButtonConfig( l10n_util::GetNSString(IDS_IOS_DOWNLOAD_MANAGER_STOP), - kDownloadCloseActionName), - alert_overlays::ButtonConfig( + kDownloadCloseActionName)}, + {alert_overlays::ButtonConfig( l10n_util::GetNSString(IDS_IOS_DOWNLOAD_MANAGER_CONTINUE), - kDownloadDoNotCloseActionName, UIAlertActionStyleCancel)}; + kDownloadDoNotCloseActionName, UIAlertActionStyleCancel)}}; alert_overlays::AlertRequest::CreateForUserData( user_data, l10n_util::GetNSString(IDS_IOS_DOWNLOAD_MANAGER_CANCEL_CONFIRMATION), /*message=*/nil, /*accessibility_identifier=*/nil, /*text_fields=*/nil, buttons, - GetConfirmationResponseConverter(/*confirm_button_index=*/0)); + GetConfirmationResponseConverter(/*confirm_button_row_index=*/0)); }
diff --git a/ios/chrome/browser/download/confirm_download_replacing_overlay.mm b/ios/chrome/browser/download/confirm_download_replacing_overlay.mm index 43b1e384..989c94922 100644 --- a/ios/chrome/browser/download/confirm_download_replacing_overlay.mm +++ b/ios/chrome/browser/download/confirm_download_replacing_overlay.mm
@@ -23,16 +23,16 @@ void ConfirmDownloadReplacingRequest::CreateAuxiliaryData( base::SupportsUserData* user_data) { - const std::vector<alert_overlays::ButtonConfig> buttons{ - alert_overlays::ButtonConfig(GetNSString(IDS_OK), - kDownloadReplaceActionName), - alert_overlays::ButtonConfig(GetNSString(IDS_CANCEL), - kDownloadDoNotReplaceActionName, - UIAlertActionStyleCancel)}; + const std::vector<std::vector<alert_overlays::ButtonConfig>> buttons{ + {alert_overlays::ButtonConfig(GetNSString(IDS_OK), + kDownloadReplaceActionName)}, + {alert_overlays::ButtonConfig(GetNSString(IDS_CANCEL), + kDownloadDoNotReplaceActionName, + UIAlertActionStyleCancel)}}; alert_overlays::AlertRequest::CreateForUserData( user_data, GetNSString(IDS_IOS_DOWNLOAD_MANAGER_REPLACE_CONFIRMATION), GetNSString(IDS_IOS_DOWNLOAD_MANAGER_REPLACE_CONFIRMATION_MESSAGE), /*accessibility_identifier=*/nil, /*text_fields=*/nil, buttons, - GetConfirmationResponseConverter(/*confirm_button_index=*/0)); + GetConfirmationResponseConverter(/*confirm_button_row_index=*/0)); }
diff --git a/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util.h b/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util.h index e67d7bc..5d1a0fb 100644 --- a/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util.h +++ b/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util.h
@@ -8,9 +8,10 @@ #import "ios/chrome/browser/overlays/public/web_content_area/alert_overlay.h" // Utility function for creating a ResponseConverter that returns a -// ConfirmationOverlayResponse. `confirm_button_index` is the button index of -// an AlertRequest's button configs that corresponds with a confirm action. +// ConfirmationOverlayResponse. `confirm_button_row_index` is the button row +// index of an AlertRequest's button configs that corresponds with a confirm +// action. alert_overlays::ResponseConverter GetConfirmationResponseConverter( - size_t confirm_button_index); + size_t confirm_button_row_index); #endif // IOS_CHROME_BROWSER_OVERLAYS_PUBLIC_COMMON_CONFIRMATION_CONFIRMATION_OVERLAY_RESPONSE_UTIL_H_
diff --git a/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util.mm b/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util.mm index 6b50895b..035d493 100644 --- a/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util.mm +++ b/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util.mm
@@ -18,19 +18,19 @@ namespace { // Parses the AlertResponse from `response` and produces a // ConfirmationOverlayResponse if the alert response's tapped button is -// `confirm_button_index`. +// `confirm_button_row_index`. std::unique_ptr<OverlayResponse> CreateConfirmResponse( - size_t confirm_button_index, + size_t confirm_button_row_index, std::unique_ptr<OverlayResponse> response) { AlertResponse* alert_response = response->GetInfo<AlertResponse>(); if (!alert_response) return nullptr; return OverlayResponse::CreateWithInfo<ConfirmationOverlayResponse>( - alert_response->tapped_button_index() == confirm_button_index); + alert_response->tapped_button_row_index() == confirm_button_row_index); } } alert_overlays::ResponseConverter GetConfirmationResponseConverter( - size_t confirm_button_index) { - return base::BindRepeating(&CreateConfirmResponse, confirm_button_index); + size_t confirm_button_row_index) { + return base::BindRepeating(&CreateConfirmResponse, confirm_button_row_index); }
diff --git a/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util_unittest.mm b/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util_unittest.mm index 018d5a4..4469bb6 100644 --- a/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util_unittest.mm +++ b/ios/chrome/browser/overlays/public/common/confirmation/confirmation_overlay_response_util_unittest.mm
@@ -31,7 +31,9 @@ GetConfirmationResponseConverter(kOkButtonIndex); std::unique_ptr<OverlayResponse> confirmed_alert_response = - OverlayResponse::CreateWithInfo<AlertResponse>(kOkButtonIndex, nil); + OverlayResponse::CreateWithInfo<AlertResponse>( + /*tapped_button_row_index=*/kOkButtonIndex, + /*tapped_button_column_index=*/0, nil); std::unique_ptr<OverlayResponse> confirmed_response = converter.Run(std::move(confirmed_alert_response)); ASSERT_TRUE(confirmed_response); @@ -49,7 +51,9 @@ GetConfirmationResponseConverter(kOkButtonIndex); std::unique_ptr<OverlayResponse> denied_alert_response = - OverlayResponse::CreateWithInfo<AlertResponse>(kOkButtonIndex + 1, nil); + OverlayResponse::CreateWithInfo<AlertResponse>( + /*tapped_button_row_index=*/kOkButtonIndex + 1, + /*tapped_button_column_index=*/0, nil); std::unique_ptr<OverlayResponse> denied_response = converter.Run(std::move(denied_alert_response)); ASSERT_TRUE(denied_response);
diff --git a/ios/chrome/browser/overlays/public/infobar_modal/translate_infobar_modal_overlay_request_config.h b/ios/chrome/browser/overlays/public/infobar_modal/translate_infobar_modal_overlay_request_config.h index 1e44f76..c0cbac1 100644 --- a/ios/chrome/browser/overlays/public/infobar_modal/translate_infobar_modal_overlay_request_config.h +++ b/ios/chrome/browser/overlays/public/infobar_modal/translate_infobar_modal_overlay_request_config.h
@@ -27,6 +27,10 @@ translate::TranslateStep current_step() const { return current_step_; } // The source language name. std::u16string source_language_name() const { return source_language_name_; } + // The initial source language name. + std::u16string initial_source_language_name() const { + return initial_source_language_name_; + } // A special language name the is used when the source language could not be // detected. std::u16string unknown_language_name() const { @@ -62,6 +66,7 @@ // Configuration data extracted from `infobar_`'s translate delegate. translate::TranslateStep current_step_; std::u16string source_language_name_; + std::u16string initial_source_language_name_; std::u16string unknown_language_name_; std::u16string target_language_name_; std::vector<std::u16string> language_names_;
diff --git a/ios/chrome/browser/overlays/public/infobar_modal/translate_infobar_modal_overlay_request_config.mm b/ios/chrome/browser/overlays/public/infobar_modal/translate_infobar_modal_overlay_request_config.mm index 037346a..4cd37d93 100644 --- a/ios/chrome/browser/overlays/public/infobar_modal/translate_infobar_modal_overlay_request_config.mm +++ b/ios/chrome/browser/overlays/public/infobar_modal/translate_infobar_modal_overlay_request_config.mm
@@ -28,6 +28,7 @@ current_step_ = delegate->translate_step(); source_language_name_ = delegate->source_language_name(); + initial_source_language_name_ = delegate->initial_source_language_name(); target_language_name_ = delegate->target_language_name(); unknown_language_name_ = delegate->unknown_language_name(); for (size_t i = 0; i < delegate->num_languages(); ++i) {
diff --git a/ios/chrome/browser/overlays/public/web_content_area/BUILD.gn b/ios/chrome/browser/overlays/public/web_content_area/BUILD.gn index 0649293..9fe529d9 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/BUILD.gn +++ b/ios/chrome/browser/overlays/public/web_content_area/BUILD.gn
@@ -18,6 +18,8 @@ "java_script_dialog_overlay_utils.mm", "java_script_prompt_dialog_overlay.h", "java_script_prompt_dialog_overlay.mm", + "permissions_dialog_overlay.h", + "permissions_dialog_overlay.mm", ] configs += [ "//build/config/compiler:enable_arc" ] @@ -27,10 +29,12 @@ "//base", "//components/strings", "//ios/chrome/app/strings", + "//ios/chrome/app/strings", "//ios/chrome/browser/overlays", "//ios/chrome/browser/ui/dialogs", "//ios/chrome/browser/ui/elements", "//ios/web/public", + "//ios/web/public/permissions", "//ui/base", "//url", ] @@ -53,6 +57,7 @@ "java_script_confirm_dialog_overlay_unittest.mm", "java_script_dialog_overlay_utils_unittest.mm", "java_script_prompt_dialog_overlay_unittest.mm", + "permissions_dialog_overlay_unittest.mm", ] configs += [ "//build/config/compiler:enable_arc" ]
diff --git a/ios/chrome/browser/overlays/public/web_content_area/alert_overlay.h b/ios/chrome/browser/overlays/public/web_content_area/alert_overlay.h index 5ba6d11..a0bd9834 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/alert_overlay.h +++ b/ios/chrome/browser/overlays/public/web_content_area/alert_overlay.h
@@ -108,8 +108,9 @@ NSArray<TextFieldConfiguration*>* text_field_configs() const { return text_field_configs_; } - // The button titles. All alerts must have at least one button. - const std::vector<ButtonConfig>& button_configs() const { + // The button styles, titles and placement, with each child vector being a + // horizontal list of buttons. All alerts must have at least one button. + const std::vector<std::vector<ButtonConfig>>& button_configs() const { return button_configs_; } // Callback that converts an alert-specific OverlayResponse to one exposing @@ -121,7 +122,7 @@ private: OVERLAY_USER_DATA_SETUP(AlertRequest); - // Constructor called by CreateForUserData(). All arguments are copied to the + // Constructor called by CreateForUserData(). All arguments are copied to the // ivars below. `title`, `message`, or both must be non-empty strings. // `button_configs` must contain at least one ButtonConfig. // `response_converter` must be non-null. @@ -129,14 +130,14 @@ NSString* message, NSString* accessibility_identifier, NSArray<TextFieldConfiguration*>* text_field_configs, - const std::vector<ButtonConfig>& button_configs, + const std::vector<std::vector<ButtonConfig>>& button_configs, ResponseConverter response_converter); NSString* title_ = nil; NSString* message_ = nil; NSString* accessibility_identifier_ = nil; NSArray<TextFieldConfiguration*>* text_field_configs_ = nil; - const std::vector<ButtonConfig> button_configs_; + const std::vector<std::vector<ButtonConfig>> button_configs_; ResponseConverter response_converter_; }; @@ -145,17 +146,23 @@ public: ~AlertResponse() override; - // The index of the button tapped by the user to close the dialog. - size_t tapped_button_index() const { return tapped_button_index_; } + // The row index of the button tapped by the user to close the dialog. + size_t tapped_button_row_index() const { return tapped_button_row_index_; } + // The column index of the button tapped by the user to close the dialog. + size_t tapped_button_column_index() const { + return tapped_button_column_index_; + } // The values of the text fields when the button was tapped. NSArray<NSString*>* text_field_values() const { return text_field_values_; } private: OVERLAY_USER_DATA_SETUP(AlertResponse); - AlertResponse(size_t tapped_button_index, + AlertResponse(size_t tapped_button_row_index, + size_t tapped_button_column_index, NSArray<NSString*>* text_field_values); - const size_t tapped_button_index_ = 0; + const size_t tapped_button_row_index_ = 0; + const size_t tapped_button_column_index_ = 0; NSArray<NSString*>* text_field_values_ = nil; };
diff --git a/ios/chrome/browser/overlays/public/web_content_area/alert_overlay.mm b/ios/chrome/browser/overlays/public/web_content_area/alert_overlay.mm index 5a7caf1..07b0a79 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/alert_overlay.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/alert_overlay.mm
@@ -36,12 +36,13 @@ OVERLAY_USER_DATA_SETUP_IMPL(AlertRequest); -AlertRequest::AlertRequest(NSString* title, - NSString* message, - NSString* accessibility_identifier, - NSArray<TextFieldConfiguration*>* text_field_configs, - const std::vector<ButtonConfig>& button_configs, - ResponseConverter response_converter) +AlertRequest::AlertRequest( + NSString* title, + NSString* message, + NSString* accessibility_identifier, + NSArray<TextFieldConfiguration*>* text_field_configs, + const std::vector<std::vector<ButtonConfig>>& button_configs, + ResponseConverter response_converter) : title_(title), message_(message), accessibility_identifier_(accessibility_identifier), @@ -59,9 +60,11 @@ OVERLAY_USER_DATA_SETUP_IMPL(AlertResponse); -AlertResponse::AlertResponse(size_t tapped_button_index, +AlertResponse::AlertResponse(size_t tapped_button_row_index, + size_t tapped_button_column_index, NSArray<NSString*>* text_field_values) - : tapped_button_index_(tapped_button_index), + : tapped_button_row_index_(tapped_button_row_index), + tapped_button_column_index_(tapped_button_column_index), text_field_values_(text_field_values) {} AlertResponse::~AlertResponse() = default;
diff --git a/ios/chrome/browser/overlays/public/web_content_area/app_launcher_overlay.mm b/ios/chrome/browser/overlays/public/web_content_area/app_launcher_overlay.mm index 4873160..99767a1 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/app_launcher_overlay.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/app_launcher_overlay.mm
@@ -29,8 +29,9 @@ std::unique_ptr<OverlayResponse> CreateAllowAppLaunchResponse( std::unique_ptr<OverlayResponse> alert_response) { AlertResponse* alert_info = alert_response->GetInfo<AlertResponse>(); - if (!alert_info || alert_info->tapped_button_index() != kButtonIndexOk) + if (!alert_info || alert_info->tapped_button_row_index() != kButtonIndexOk) { return nullptr; + } return OverlayResponse::CreateWithInfo<AllowAppLaunchResponse>(); } @@ -57,9 +58,9 @@ is_repeated_request() ? l10n_util::GetNSString(IDS_IOS_OPEN_REPEATEDLY_ANOTHER_APP_ALLOW) : l10n_util::GetNSString(IDS_IOS_APP_LAUNCHER_OPEN_APP_BUTTON_LABEL); - const std::vector<ButtonConfig> alert_button_configs{ - ButtonConfig(allow_button_title), - ButtonConfig(reject_button_title, UIAlertActionStyleCancel)}; + const std::vector<std::vector<ButtonConfig>> alert_button_configs{ + {ButtonConfig(allow_button_title)}, + {ButtonConfig(reject_button_title, UIAlertActionStyleCancel)}}; AlertRequest::CreateForUserData( user_data, /*title=*/nil, alert_message, /*accessibility_identifier=*/nil, /*text_field_configs=*/nil, alert_button_configs,
diff --git a/ios/chrome/browser/overlays/public/web_content_area/app_launcher_overlay_unittest.mm b/ios/chrome/browser/overlays/public/web_content_area/app_launcher_overlay_unittest.mm index b4c1d576..0c18a865 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/app_launcher_overlay_unittest.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/app_launcher_overlay_unittest.mm
@@ -43,8 +43,8 @@ // There is an OK button and a Cancel button in app launch alerts. ASSERT_EQ(2U, config->button_configs().size()); - const ButtonConfig& ok_button_config = config->button_configs()[0]; - const ButtonConfig& cancel_button_config = config->button_configs()[1]; + const ButtonConfig& ok_button_config = config->button_configs()[0][0]; + const ButtonConfig& cancel_button_config = config->button_configs()[1][0]; EXPECT_EQ(UIAlertActionStyleDefault, ok_button_config.style); EXPECT_NSEQ( @@ -71,8 +71,8 @@ // There is an OK button and a Cancel button in app launch alerts. ASSERT_EQ(2U, config->button_configs().size()); - const ButtonConfig& ok_button_config = config->button_configs()[0]; - const ButtonConfig& cancel_button_config = config->button_configs()[1]; + const ButtonConfig& ok_button_config = config->button_configs()[0][0]; + const ButtonConfig& cancel_button_config = config->button_configs()[1][0]; EXPECT_EQ(UIAlertActionStyleDefault, ok_button_config.style); EXPECT_NSEQ(l10n_util::GetNSString(IDS_IOS_OPEN_REPEATEDLY_ANOTHER_APP_ALLOW), @@ -92,7 +92,8 @@ AlertRequest* config = request->GetConfig<AlertRequest>(); std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - /*tapped_button_index=*/0, /*text_field_values=*/nil); + /*tapped_button_row_index=*/0, /*tapped_button_column_index=*/0, + /*text_field_values=*/nil); // Convert the response to the AllowAppLaunchResponse. std::unique_ptr<OverlayResponse> response = @@ -111,7 +112,8 @@ AlertRequest* config = request->GetConfig<AlertRequest>(); std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - /*tapped_button_index=*/1, /*text_field_values=*/nil); + /*tapped_button_row_index=*/1, /*tapped_button_column_index=*/0, + /*text_field_values=*/nil); // Convert the response and verify that no AllowAppLaunchResponse was created. std::unique_ptr<OverlayResponse> response =
diff --git a/ios/chrome/browser/overlays/public/web_content_area/http_auth_overlay.mm b/ios/chrome/browser/overlays/public/web_content_area/http_auth_overlay.mm index a6a3451..141b2c4c 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/http_auth_overlay.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/http_auth_overlay.mm
@@ -36,8 +36,9 @@ std::unique_ptr<OverlayResponse> CreateHttpAuthResponse( std::unique_ptr<OverlayResponse> alert_response) { AlertResponse* alert_info = alert_response->GetInfo<AlertResponse>(); - if (!alert_info || alert_info->tapped_button_index() != kButtonIndexOk) + if (!alert_info || alert_info->tapped_button_row_index() != kButtonIndexOk) { return nullptr; + } NSArray<NSString*>* text_field_values = alert_info->text_field_values(); return OverlayResponse::CreateWithInfo<HTTPAuthOverlayResponseInfo>( @@ -84,10 +85,10 @@ NSString* ok_label = l10n_util::GetNSStringWithFixup(IDS_LOGIN_DIALOG_OK_BUTTON_LABEL); NSString* cancel_label = l10n_util::GetNSString(IDS_CANCEL); - const std::vector<ButtonConfig> alert_button_configs{ - ButtonConfig(ok_label, kHttpAuthSignInTappedActionName), - ButtonConfig(cancel_label, kHttpAuthCancelTappedActionName, - UIAlertActionStyleCancel)}; + const std::vector<std::vector<ButtonConfig>> alert_button_configs{ + {ButtonConfig(ok_label, kHttpAuthSignInTappedActionName)}, + {ButtonConfig(cancel_label, kHttpAuthCancelTappedActionName, + UIAlertActionStyleCancel)}}; AlertRequest::CreateForUserData( user_data, alert_title, alert_message, /*accessibility_identifier=*/nil, alert_text_field_configs,
diff --git a/ios/chrome/browser/overlays/public/web_content_area/http_auth_overlay_unittest.mm b/ios/chrome/browser/overlays/public/web_content_area/http_auth_overlay_unittest.mm index 1ac6800..bdc8591 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/http_auth_overlay_unittest.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/http_auth_overlay_unittest.mm
@@ -9,7 +9,6 @@ #import "ios/chrome/browser/overlays/public/overlay_request.h" #import "ios/chrome/browser/overlays/public/overlay_response.h" #import "ios/chrome/browser/overlays/public/web_content_area/alert_overlay.h" -#import "ios/chrome/browser/overlays/public/web_content_area/http_auth_overlay.h" #import "ios/chrome/browser/ui/elements/text_field_configuration.h" #import "ios/chrome/grit/ios_strings.h" #import "testing/gtest_mac.h" @@ -73,8 +72,8 @@ // There should be an OK button and a Cancel button. ASSERT_EQ(2U, config->button_configs().size()); - const ButtonConfig& ok_button_config = config->button_configs()[0]; - const ButtonConfig& cancel_button_config = config->button_configs()[1]; + const ButtonConfig& ok_button_config = config->button_configs()[0][0]; + const ButtonConfig& cancel_button_config = config->button_configs()[1][0]; EXPECT_EQ(UIAlertActionStyleDefault, ok_button_config.style); NSString* sign_in_label = @@ -94,7 +93,8 @@ // Simulate a response where the OK button is tapped. std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - /*tapped_button_index=*/0, @[ @"username", @"password" ]); + /*tapped_button_row_index=*/0, /*tapped_button_column_index=*/0, + @[ @"username", @"password" ]); // Convert the response to the HTTP auth response. std::unique_ptr<OverlayResponse> response = @@ -113,7 +113,8 @@ // Simulate a response where the OK button is tapped. std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - /*tapped_button_index=*/1, @[ @"username", @"password" ]); + /*tapped_button_row_index=*/1, /*tapped_button_column_index=*/0, + @[ @"username", @"password" ]); // Since the cancel button is tapped, a null HTTP auth response should be // used.
diff --git a/ios/chrome/browser/overlays/public/web_content_area/java_script_alert_dialog_overlay.mm b/ios/chrome/browser/overlays/public/web_content_area/java_script_alert_dialog_overlay.mm index f32da4b..13c682be 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/java_script_alert_dialog_overlay.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/java_script_alert_dialog_overlay.mm
@@ -38,7 +38,7 @@ JavaScriptAlertDialogResponse::Action action = JavaScriptAlertDialogResponse::Action::kConfirm; - size_t button_index = alert_response->tapped_button_index(); + size_t button_index = alert_response->tapped_button_row_index(); if (button_index == kAlertBlockButtonIndex) { action = JavaScriptAlertDialogResponse::Action::kBlockDialogs; } @@ -69,10 +69,11 @@ NSString* alert_title = DialogTitle(is_main_frame_, message()); NSString* alert_message = DialogMessage(is_main_frame_, message()); - std::vector<ButtonConfig> button_configs{ - ButtonConfig(l10n_util::GetNSString(IDS_OK))}; + std::vector<std::vector<ButtonConfig>> button_configs{ + {ButtonConfig(l10n_util::GetNSString(IDS_OK))}}; if (ShouldAddBlockDialogsButton(web_state())) { - button_configs.push_back(BlockDialogsButtonConfig()); + button_configs.push_back( + std::vector<ButtonConfig>{BlockDialogsButtonConfig()}); } AlertRequest::CreateForUserData(user_data, alert_title, alert_message,
diff --git a/ios/chrome/browser/overlays/public/web_content_area/java_script_alert_dialog_overlay_unittest.mm b/ios/chrome/browser/overlays/public/web_content_area/java_script_alert_dialog_overlay_unittest.mm index 55f7ce3..02e9bbea 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/java_script_alert_dialog_overlay_unittest.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/java_script_alert_dialog_overlay_unittest.mm
@@ -83,11 +83,13 @@ std::unique_ptr<OverlayRequest> alert_request = CreateRequest(); AlertRequest* alert_config = alert_request->GetConfig<AlertRequest>(); ASSERT_TRUE(alert_config); - const std::vector<ButtonConfig>& alert_button_configs = + const std::vector<std::vector<ButtonConfig>>& alert_button_configs = alert_config->button_configs(); ASSERT_EQ(1U, alert_button_configs.size()); - EXPECT_NSEQ(l10n_util::GetNSString(IDS_OK), alert_button_configs[0].title); - EXPECT_EQ(UIAlertActionStyleDefault, alert_button_configs[0].style); + ASSERT_EQ(1U, alert_button_configs[0].size()); + ButtonConfig button_config = alert_button_configs[0][0]; + EXPECT_NSEQ(l10n_util::GetNSString(IDS_OK), button_config.title); + EXPECT_EQ(UIAlertActionStyleDefault, button_config.style); } // Tests that the blocking option is successfully added. @@ -101,11 +103,12 @@ std::unique_ptr<OverlayRequest> alert_request = CreateRequest(); AlertRequest* alert_config = alert_request->GetConfig<AlertRequest>(); ASSERT_TRUE(alert_config); - const std::vector<ButtonConfig>& alert_button_configs = + const std::vector<std::vector<ButtonConfig>>& alert_button_configs = alert_config->button_configs(); ASSERT_FALSE(alert_button_configs.empty()); - EXPECT_NSEQ(blocking_option_title, alert_button_configs.back().title); - EXPECT_EQ(UIAlertActionStyleDestructive, alert_button_configs.back().style); + ButtonConfig button_config = alert_button_configs.back()[0]; + EXPECT_NSEQ(blocking_option_title, button_config.title); + EXPECT_EQ(UIAlertActionStyleDestructive, button_config.style); } // Tests that an alert is correctly converted to a JavaScriptAlertDialogResponse @@ -118,7 +121,8 @@ // Simulate a response where the OK button is tapped. std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - /*tapped_button_index=*/0, @[ @"" ]); + /*tapped_button_row_index=*/0, /*tapped_button_column_index=*/0, + @[ @"" ]); std::unique_ptr<OverlayResponse> response = config->response_converter().Run(std::move(alert_response)); @@ -147,7 +151,7 @@ size_t blocking_option_button_index = config->button_configs().size() - 1; std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - blocking_option_button_index, @[ @"" ]); + blocking_option_button_index, 0, @[ @"" ]); std::unique_ptr<OverlayResponse> response = config->response_converter().Run(std::move(alert_response));
diff --git a/ios/chrome/browser/overlays/public/web_content_area/java_script_confirm_dialog_overlay.mm b/ios/chrome/browser/overlays/public/web_content_area/java_script_confirm_dialog_overlay.mm index 4138a54b..0df2cb73 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/java_script_confirm_dialog_overlay.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/java_script_confirm_dialog_overlay.mm
@@ -40,7 +40,7 @@ JavaScriptConfirmDialogResponse::Action action = JavaScriptConfirmDialogResponse::Action::kCancel; - size_t button_index = alert_response->tapped_button_index(); + size_t button_index = alert_response->tapped_button_row_index(); if (button_index == kButtonIndexOk) { action = JavaScriptConfirmDialogResponse::Action::kConfirm; } else if (button_index == kConfirmBlockButtonIndex) { @@ -74,12 +74,13 @@ NSString* alert_title = DialogTitle(is_main_frame_, message()); NSString* alert_message = DialogMessage(is_main_frame_, message()); - std::vector<ButtonConfig> button_configs{ - ButtonConfig(l10n_util::GetNSString(IDS_OK)), - ButtonConfig(l10n_util::GetNSString(IDS_CANCEL), - UIAlertActionStyleCancel)}; + std::vector<std::vector<ButtonConfig>> button_configs{ + {ButtonConfig(l10n_util::GetNSString(IDS_OK))}, + {ButtonConfig(l10n_util::GetNSString(IDS_CANCEL), + UIAlertActionStyleCancel)}}; if (ShouldAddBlockDialogsButton(web_state())) { - button_configs.push_back(BlockDialogsButtonConfig()); + button_configs.push_back( + std::vector<ButtonConfig>{BlockDialogsButtonConfig()}); } AlertRequest::CreateForUserData(user_data, alert_title, alert_message,
diff --git a/ios/chrome/browser/overlays/public/web_content_area/java_script_confirm_dialog_overlay_unittest.mm b/ios/chrome/browser/overlays/public/web_content_area/java_script_confirm_dialog_overlay_unittest.mm index 430541dd..700df1b 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/java_script_confirm_dialog_overlay_unittest.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/java_script_confirm_dialog_overlay_unittest.mm
@@ -80,14 +80,15 @@ std::unique_ptr<OverlayRequest> confirm_request = CreateRequest(); AlertRequest* confirm_config = confirm_request->GetConfig<AlertRequest>(); ASSERT_TRUE(confirm_config); - const std::vector<ButtonConfig>& confirm_button_configs = + const std::vector<std::vector<ButtonConfig>>& confirm_button_configs = confirm_config->button_configs(); ASSERT_EQ(2U, confirm_button_configs.size()); - EXPECT_NSEQ(l10n_util::GetNSString(IDS_OK), confirm_button_configs[0].title); - EXPECT_EQ(UIAlertActionStyleDefault, confirm_button_configs[0].style); - EXPECT_NSEQ(l10n_util::GetNSString(IDS_CANCEL), - confirm_button_configs[1].title); - EXPECT_EQ(UIAlertActionStyleCancel, confirm_button_configs[1].style); + const ButtonConfig& ok_button = confirm_button_configs[0][0]; + EXPECT_NSEQ(l10n_util::GetNSString(IDS_OK), ok_button.title); + EXPECT_EQ(UIAlertActionStyleDefault, ok_button.style); + const ButtonConfig& cancel_button = confirm_button_configs[1][0]; + EXPECT_NSEQ(l10n_util::GetNSString(IDS_CANCEL), cancel_button.title); + EXPECT_EQ(UIAlertActionStyleCancel, cancel_button.style); } // Tests that the blocking option is successfully added. @@ -101,11 +102,12 @@ std::unique_ptr<OverlayRequest> confirm_request = CreateRequest(); AlertRequest* confirm_config = confirm_request->GetConfig<AlertRequest>(); ASSERT_TRUE(confirm_config); - const std::vector<ButtonConfig>& confirm_button_configs = + const std::vector<std::vector<ButtonConfig>>& confirm_button_configs = confirm_config->button_configs(); ASSERT_FALSE(confirm_button_configs.empty()); - EXPECT_NSEQ(blocking_option_title, confirm_button_configs.back().title); - EXPECT_EQ(UIAlertActionStyleDestructive, confirm_button_configs.back().style); + const ButtonConfig& button_config = confirm_button_configs.back()[0]; + EXPECT_NSEQ(blocking_option_title, button_config.title); + EXPECT_EQ(UIAlertActionStyleDestructive, button_config.style); } // Tests that a confirmation alert is correctly converted to a @@ -118,7 +120,8 @@ // Simulate a response where the OK button is tapped. std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - /*tapped_button_index=*/0, @[ @"" ]); + /*tapped_button_row_index=*/0, /*tapped_button_column_index=*/0, + @[ @"" ]); std::unique_ptr<OverlayResponse> response = config->response_converter().Run(std::move(alert_response)); @@ -142,7 +145,8 @@ // Simulate a response where the Cancel button is tapped. std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - /*tapped_button_index=*/1, @[ @"" ]); + /*tapped_button_row_index=*/1, + /*tapped_button_column_index=*/0, @[ @"" ]); std::unique_ptr<OverlayResponse> response = config->response_converter().Run(std::move(alert_response)); @@ -172,7 +176,8 @@ size_t blocking_option_button_index = config->button_configs().size() - 1; std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - blocking_option_button_index, @[ @"" ]); + /*tapped_button_row_index=*/blocking_option_button_index, + /*tapped_button_column_index=*/0, @[ @"" ]); std::unique_ptr<OverlayResponse> response = config->response_converter().Run(std::move(alert_response));
diff --git a/ios/chrome/browser/overlays/public/web_content_area/java_script_prompt_dialog_overlay.mm b/ios/chrome/browser/overlays/public/web_content_area/java_script_prompt_dialog_overlay.mm index 95c151b..66d2595 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/java_script_prompt_dialog_overlay.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/java_script_prompt_dialog_overlay.mm
@@ -43,7 +43,7 @@ JavaScriptPromptDialogResponse::Action action = JavaScriptPromptDialogResponse::Action::kCancel; NSString* user_input = nil; - size_t button_index = alert_response->tapped_button_index(); + size_t button_index = alert_response->tapped_button_row_index(); if (button_index == kButtonIndexOk) { action = JavaScriptPromptDialogResponse::Action::kConfirm; user_input = [alert_response->text_field_values() firstObject]; @@ -91,12 +91,13 @@ autocapitalizationType:UITextAutocapitalizationTypeSentences secureTextEntry:NO] ]; // Add the buttons. - std::vector<ButtonConfig> button_configs{ - ButtonConfig(l10n_util::GetNSString(IDS_OK)), - ButtonConfig(l10n_util::GetNSString(IDS_CANCEL), - UIAlertActionStyleCancel)}; + std::vector<std::vector<ButtonConfig>> button_configs{ + {ButtonConfig(l10n_util::GetNSString(IDS_OK))}, + {ButtonConfig(l10n_util::GetNSString(IDS_CANCEL), + UIAlertActionStyleCancel)}}; if (ShouldAddBlockDialogsButton(web_state())) { - button_configs.push_back(BlockDialogsButtonConfig()); + button_configs.push_back( + std::vector<ButtonConfig>{BlockDialogsButtonConfig()}); } // Create the alert config.
diff --git a/ios/chrome/browser/overlays/public/web_content_area/java_script_prompt_dialog_overlay_unittest.mm b/ios/chrome/browser/overlays/public/web_content_area/java_script_prompt_dialog_overlay_unittest.mm index f9fad711..f0dd310 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/java_script_prompt_dialog_overlay_unittest.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/java_script_prompt_dialog_overlay_unittest.mm
@@ -92,14 +92,15 @@ std::unique_ptr<OverlayRequest> prompt_request = CreateRequest(); AlertRequest* prompt_config = prompt_request->GetConfig<AlertRequest>(); ASSERT_TRUE(prompt_config); - const std::vector<ButtonConfig>& prompt_button_configs = + const std::vector<std::vector<ButtonConfig>>& prompt_button_configs = prompt_config->button_configs(); ASSERT_EQ(2U, prompt_button_configs.size()); - EXPECT_NSEQ(l10n_util::GetNSString(IDS_OK), prompt_button_configs[0].title); - EXPECT_EQ(UIAlertActionStyleDefault, prompt_button_configs[0].style); - EXPECT_NSEQ(l10n_util::GetNSString(IDS_CANCEL), - prompt_button_configs[1].title); - EXPECT_EQ(UIAlertActionStyleCancel, prompt_button_configs[1].style); + ButtonConfig ok_button = prompt_button_configs[0][0]; + EXPECT_NSEQ(l10n_util::GetNSString(IDS_OK), ok_button.title); + EXPECT_EQ(UIAlertActionStyleDefault, ok_button.style); + ButtonConfig cancel_button = prompt_button_configs[1][0]; + EXPECT_NSEQ(l10n_util::GetNSString(IDS_CANCEL), cancel_button.title); + EXPECT_EQ(UIAlertActionStyleCancel, cancel_button.style); } // Tests that the blocking option is successfully added. @@ -113,11 +114,12 @@ std::unique_ptr<OverlayRequest> prompt_request = CreateRequest(); AlertRequest* prompt_config = prompt_request->GetConfig<AlertRequest>(); ASSERT_TRUE(prompt_config); - const std::vector<ButtonConfig>& prompt_button_configs = + const std::vector<std::vector<ButtonConfig>>& prompt_button_configs = prompt_config->button_configs(); ASSERT_FALSE(prompt_button_configs.empty()); - EXPECT_NSEQ(blocking_option_title, prompt_button_configs.back().title); - EXPECT_EQ(UIAlertActionStyleDestructive, prompt_button_configs.back().style); + ButtonConfig button = prompt_button_configs.back()[0]; + EXPECT_NSEQ(blocking_option_title, button.title); + EXPECT_EQ(UIAlertActionStyleDestructive, button.style); } // Tests that a prompt alert is correctly converted to a @@ -131,7 +133,8 @@ NSString* user_input = @"user_input"; std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - /*tapped_button_index=*/0, @[ user_input ]); + /*tapped_button_row_index=*/0, + /*tapped_button_column_index=*/0, @[ user_input ]); // Since the OK button is tapped, the kConfirm action should be used and the // text field input should be supplied to the JavaScriptAlertDialogResponse. @@ -159,7 +162,8 @@ NSString* user_input = @"user_input"; std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - /*tapped_button_index=*/1, @[ user_input ]); + /*tapped_button_row_index=*/1, + /*tapped_button_column_index=*/0, @[ user_input ]); std::unique_ptr<OverlayResponse> response = config->response_converter().Run(std::move(alert_response)); @@ -190,7 +194,8 @@ size_t blocking_option_button_index = config->button_configs().size() - 1; std::unique_ptr<OverlayResponse> alert_response = OverlayResponse::CreateWithInfo<AlertResponse>( - blocking_option_button_index, @[ @"user_input" ]); + /*tapped_button_row_index=*/blocking_option_button_index, + /*tapped_button_column_index=*/0, @[ @"user_input" ]); std::unique_ptr<OverlayResponse> response = config->response_converter().Run(std::move(alert_response));
diff --git a/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay.h b/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay.h index ea4da52..6b64ce0 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay.h +++ b/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay.h
@@ -5,11 +5,11 @@ #ifndef IOS_CHROME_BROWSER_OVERLAYS_PUBLIC_WEB_CONTENT_AREA_PERMISSIONS_DIALOG_OVERLAY_H_ #define IOS_CHROME_BROWSER_OVERLAYS_PUBLIC_WEB_CONTENT_AREA_PERMISSIONS_DIALOG_OVERLAY_H_ -#import <CoreFoundation/CoreFoundation.h> +#import <Foundation/Foundation.h> #import "ios/chrome/browser/overlays/public/overlay_request_config.h" #import "ios/chrome/browser/overlays/public/overlay_response_info.h" -#import "ios/web/public/permissions/permissions.h" +#import "url/gurl.h" // Configuration object for OverlayRequests for dialogs that ask for camera or // microphone permissions. @@ -23,7 +23,7 @@ private: OVERLAY_USER_DATA_SETUP(PermissionsDialogRequest); - PermissionsDialogRequest(NSString* website, + PermissionsDialogRequest(const GURL& url, NSArray<NSNumber*>* requested_permissions); void CreateAuxiliaryData(base::SupportsUserData* user_data) override;
diff --git a/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay.mm b/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay.mm index f29aad8..bd63127 100644 --- a/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay.mm +++ b/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay.mm
@@ -4,8 +4,12 @@ #import "ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay.h" +#import "base/strings/utf_string_conversions.h" #import "ios/chrome/browser/overlays/public/web_content_area/alert_constants.h" #import "ios/chrome/browser/overlays/public/web_content_area/alert_overlay.h" +#import "ios/chrome/grit/ios_strings.h" +#import "ios/web/public/permissions/permissions.h" +#import "ui/base/l10n/l10n_util.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." @@ -16,8 +20,9 @@ using alert_overlays::ButtonConfig; namespace { -// The index of the "Don't Allow" button in the alert button array. -const size_t kButtonIndexDontAllow = 0; + +// The column index of the button that the user clicks to grant permissions. +const size_t kPermissionsGrantedButtonIndex = 1; // Creates an permissions dialog response for a dialog, containing a boolean // `capture_allow()` indicating ther user's answer on the media capture request; @@ -25,10 +30,14 @@ std::unique_ptr<OverlayResponse> CreatePermissionsDialogResponse( std::unique_ptr<OverlayResponse> response) API_AVAILABLE(ios(15.0)) { AlertResponse* alert_response = response->GetInfo<AlertResponse>(); - size_t button_index = alert_response->tapped_button_index(); + if (!alert_response) { + return nullptr; + } + size_t button_index = alert_response->tapped_button_column_index(); return OverlayResponse::CreateWithInfo<PermissionsDialogResponse>( - button_index != kButtonIndexDontAllow); + /*capture_allow=*/button_index == kPermissionsGrantedButtonIndex); } + } // namespace #pragma mark - PermissionsDialogRequest @@ -36,23 +45,29 @@ OVERLAY_USER_DATA_SETUP_IMPL(PermissionsDialogRequest); PermissionsDialogRequest::PermissionsDialogRequest( - NSString* website, + const GURL& url, NSArray<NSNumber*>* requested_permissions) { // Computes the dialog message based on the website and permissions requested. - // TODO(crbug.com/1356768): Add strings to ios_strings.grd and retrieve from - // there. - NSString* typeString; - BOOL cameraCapturing = + int string_id_for_permission = 0; + BOOL camera_permission_requested = [requested_permissions containsObject:@(web::PermissionCamera)]; - BOOL micCapturing = + BOOL mic_permission_requested = [requested_permissions containsObject:@(web::PermissionMicrophone)]; - if (cameraCapturing) { - typeString = micCapturing ? @"Microphone and Camera" : @"Camera"; + if (camera_permission_requested && mic_permission_requested) { + string_id_for_permission = + IDS_IOS_PERMISSIONS_ALERT_DIALOG_PERMISSION_CAMERA_AND_MICROPHONE; + } else if (camera_permission_requested) { + string_id_for_permission = + IDS_IOS_PERMISSIONS_ALERT_DIALOG_PERMISSION_CAMERA; + } else if (mic_permission_requested) { + string_id_for_permission = + IDS_IOS_PERMISSIONS_ALERT_DIALOG_PERMISSION_MICROPHONE; } else { - typeString = @"Microphone"; - message_ = [NSString stringWithFormat:@"\"%@\" Would Like To Access %@", - website, typeString]; + NOTREACHED(); } + message_ = l10n_util::GetNSStringF( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_MESSAGE, base::UTF8ToUTF16(url.host()), + l10n_util::GetStringUTF16(string_id_for_permission)); } PermissionsDialogRequest::~PermissionsDialogRequest() = default; @@ -60,11 +75,12 @@ void PermissionsDialogRequest::CreateAuxiliaryData( base::SupportsUserData* user_data) { // Conrigure buttons. - NSString* dont_allow_label = @"Don't Allow"; - NSString* allow_label = @"Allow"; - const std::vector<ButtonConfig> button_configs{ - ButtonConfig(dont_allow_label, UIAlertActionStyleCancel), - ButtonConfig(allow_label, UIAlertActionStyleDefault)}; + std::vector<std::vector<ButtonConfig>> button_configs{ + {ButtonConfig(l10n_util::GetNSString( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_BUTTON_TEXT_DENY), + UIAlertActionStyleCancel), + ButtonConfig(l10n_util::GetNSString( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_BUTTON_TEXT_GRANT))}}; // Create the alert config with the buttons and other information. AlertRequest::CreateForUserData( user_data, message(), nil, kPermissionsDialogAccessibilityIdentifier, nil,
diff --git a/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay_unittest.mm b/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay_unittest.mm new file mode 100644 index 0000000..c5e54e5 --- /dev/null +++ b/ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay_unittest.mm
@@ -0,0 +1,181 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/overlays/public/web_content_area/permissions_dialog_overlay.h" + +#import "ios/chrome/browser/overlays/public/overlay_request.h" +#import "ios/chrome/browser/overlays/public/overlay_response.h" +#import "ios/chrome/browser/overlays/public/web_content_area/alert_overlay.h" +#import "ios/chrome/grit/ios_strings.h" +#import "ios/web/public/permissions/permissions.h" +#import "testing/gtest_mac.h" +#import "testing/platform_test.h" +#import "ui/base/l10n/l10n_util.h" +#import "url/gurl.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +using alert_overlays::AlertRequest; +using alert_overlays::AlertResponse; +using alert_overlays::ButtonConfig; + +// Test fixture for permissions dialog overlays. +class PermissionsDialogOverlayTest : public PlatformTest { + protected: + std::unique_ptr<OverlayRequest> CreateRequest(NSArray<NSNumber*>* permissions) + API_AVAILABLE(ios(15.0)) { + return OverlayRequest::CreateWithConfig<PermissionsDialogRequest>( + GURL("http://www.chromium.test"), permissions); + } +}; + +// Tests that the alert config is set correctly for dialogs requesting only +// camera permission. +TEST_F(PermissionsDialogOverlayTest, DialogTitleCameraOnly) { + if (@available(iOS 15.0, *)) { + std::unique_ptr<OverlayRequest> request = + CreateRequest(@[ @(web::PermissionCamera) ]); + AlertRequest* config = request->GetConfig<AlertRequest>(); + ASSERT_TRUE(config); + NSString* expected_string = l10n_util::GetNSStringF( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_MESSAGE, u"www.chromium.test", + l10n_util::GetStringUTF16( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_PERMISSION_CAMERA)); + // Check strings. + EXPECT_NSEQ(expected_string, config->title()); + EXPECT_EQ(nil, config->message()); + // Check buttons. + ASSERT_EQ(1U, config->button_configs().size()); + const std::vector<ButtonConfig>& button_configs = + config->button_configs()[0]; + ASSERT_EQ(2U, button_configs.size()); + ButtonConfig deny_button = button_configs[0]; + EXPECT_NSEQ(l10n_util::GetNSString( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_BUTTON_TEXT_DENY), + deny_button.title); + EXPECT_EQ(UIAlertActionStyleCancel, deny_button.style); + ButtonConfig allow_button = button_configs[1]; + EXPECT_NSEQ(l10n_util::GetNSString( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_BUTTON_TEXT_GRANT), + allow_button.title); + EXPECT_EQ(UIAlertActionStyleDefault, allow_button.style); + } +} + +// Tests that the alert config is set correctly for dialogs requesting only +// microphone permission. +TEST_F(PermissionsDialogOverlayTest, DialogMicrophoneOnly) { + if (@available(iOS 15.0, *)) { + std::unique_ptr<OverlayRequest> request = + CreateRequest(@[ @(web::PermissionMicrophone) ]); + AlertRequest* config = request->GetConfig<AlertRequest>(); + ASSERT_TRUE(config); + NSString* expected_string = l10n_util::GetNSStringF( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_MESSAGE, u"www.chromium.test", + l10n_util::GetStringUTF16( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_PERMISSION_MICROPHONE)); + // Check strings. + EXPECT_NSEQ(expected_string, config->title()); + EXPECT_EQ(nil, config->message()); + // Check buttons. + ASSERT_EQ(1U, config->button_configs().size()); + const std::vector<ButtonConfig>& button_configs = + config->button_configs()[0]; + ASSERT_EQ(2U, button_configs.size()); + ButtonConfig deny_button = button_configs[0]; + EXPECT_NSEQ(l10n_util::GetNSString( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_BUTTON_TEXT_DENY), + deny_button.title); + EXPECT_EQ(UIAlertActionStyleCancel, deny_button.style); + ButtonConfig allow_button = button_configs[1]; + EXPECT_NSEQ(l10n_util::GetNSString( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_BUTTON_TEXT_GRANT), + allow_button.title); + EXPECT_EQ(UIAlertActionStyleDefault, allow_button.style); + } +} + +// Tests that the alert config is set correctly for dialogs requesting both +// camera and microphone permission. +TEST_F(PermissionsDialogOverlayTest, DialogCameraAndMicrophone) { + if (@available(iOS 15.0, *)) { + std::unique_ptr<OverlayRequest> request = CreateRequest( + @[ @(web::PermissionCamera), @(web::PermissionMicrophone) ]); + AlertRequest* config = request->GetConfig<AlertRequest>(); + ASSERT_TRUE(config); + NSString* expected_string = l10n_util::GetNSStringF( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_MESSAGE, u"www.chromium.test", + l10n_util::GetStringUTF16( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_PERMISSION_CAMERA_AND_MICROPHONE)); + // Check strings. + EXPECT_NSEQ(expected_string, config->title()); + EXPECT_EQ(nil, config->message()); + // Check buttons. + ASSERT_EQ(1U, config->button_configs().size()); + const std::vector<ButtonConfig>& button_configs = + config->button_configs()[0]; + ASSERT_EQ(2U, button_configs.size()); + ButtonConfig deny_button = button_configs[0]; + EXPECT_NSEQ(l10n_util::GetNSString( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_BUTTON_TEXT_DENY), + deny_button.title); + EXPECT_EQ(UIAlertActionStyleCancel, deny_button.style); + ButtonConfig allow_button = button_configs[1]; + EXPECT_NSEQ(l10n_util::GetNSString( + IDS_IOS_PERMISSIONS_ALERT_DIALOG_BUTTON_TEXT_GRANT), + allow_button.title); + EXPECT_EQ(UIAlertActionStyleDefault, allow_button.style); + } +} + +// Tests that an alert is correctly converted to a +// PermissionsDialogOverlayResponse after tapping "Don't Allow". +TEST_F(PermissionsDialogOverlayTest, DialogResponseDeny) { + if (@available(iOS 15.0, *)) { + std::unique_ptr<OverlayRequest> request = + CreateRequest(@[ @(web::PermissionCamera) ]); + AlertRequest* config = request->GetConfig<AlertRequest>(); + ASSERT_TRUE(config); + // Simulate a response where the "Don't Allow" button is tapped. + std::unique_ptr<OverlayResponse> alert_response = + OverlayResponse::CreateWithInfo<AlertResponse>( + /*tapped_button_row_index=*/0, + /*tapped_button_column_index=*/0, nil); + // Since the OK button is tapped, the kConfirm action should be used and the + // text field input should be supplied to the JavaScriptAlertDialogResponse. + std::unique_ptr<OverlayResponse> response = + config->response_converter().Run(std::move(alert_response)); + ASSERT_TRUE(response.get()); + PermissionsDialogResponse* permissions_response = + response->GetInfo<PermissionsDialogResponse>(); + ASSERT_TRUE(permissions_response); + ASSERT_FALSE(permissions_response->capture_allow()); + } +} + +// Tests that an alert is correctly converted to a +// PermissionsDialogOverlayResponse after tapping "Allow". +TEST_F(PermissionsDialogOverlayTest, DialogResponseAllow) { + if (@available(iOS 15.0, *)) { + std::unique_ptr<OverlayRequest> request = + CreateRequest(@[ @(web::PermissionMicrophone) ]); + AlertRequest* config = request->GetConfig<AlertRequest>(); + ASSERT_TRUE(config); + // Simulate a response where the "Allow" button is tapped. + std::unique_ptr<OverlayResponse> alert_response = + OverlayResponse::CreateWithInfo<AlertResponse>( + /*tapped_button_row_index=*/0, + /*tapped_button_column_index=*/1, nil); + // Since the OK button is tapped, the kConfirm action should be used and the + // text field input should be supplied to the JavaScriptAlertDialogResponse. + std::unique_ptr<OverlayResponse> response = + config->response_converter().Run(std::move(alert_response)); + ASSERT_TRUE(response.get()); + PermissionsDialogResponse* permissions_response = + response->GetInfo<PermissionsDialogResponse>(); + ASSERT_TRUE(permissions_response && permissions_response->capture_allow()); + } +}
diff --git a/ios/chrome/browser/ui/download/download_manager_coordinator_unittest.mm b/ios/chrome/browser/ui/download/download_manager_coordinator_unittest.mm index 38089bc2..01b57ed 100644 --- a/ios/chrome/browser/ui/download/download_manager_coordinator_unittest.mm +++ b/ios/chrome/browser/ui/download/download_manager_coordinator_unittest.mm
@@ -631,12 +631,12 @@ EXPECT_NSEQ(@"Stop Download?", config->title()); EXPECT_FALSE(config->message()); ASSERT_EQ(2U, config->button_configs().size()); - EXPECT_NSEQ(@"Stop", config->button_configs()[0].title); - EXPECT_EQ(kDownloadCloseActionName, - config->button_configs()[0].user_action_name); - EXPECT_NSEQ(@"Continue", config->button_configs()[1].title); - EXPECT_EQ(kDownloadDoNotCloseActionName, - config->button_configs()[1].user_action_name); + alert_overlays::ButtonConfig stop_button = config->button_configs()[0][0]; + EXPECT_NSEQ(@"Stop", stop_button.title); + EXPECT_EQ(kDownloadCloseActionName, stop_button.user_action_name); + alert_overlays::ButtonConfig continue_button = config->button_configs()[1][0]; + EXPECT_NSEQ(@"Continue", continue_button.title); + EXPECT_EQ(kDownloadDoNotCloseActionName, continue_button.user_action_name); // Stop to avoid holding a dangling pointer to destroyed task. queue->CancelAllRequests(); @@ -679,12 +679,12 @@ EXPECT_NSEQ(@"This will stop all progress for your current download.", config->message()); ASSERT_EQ(2U, config->button_configs().size()); - EXPECT_NSEQ(@"OK", config->button_configs()[0].title); - EXPECT_EQ(kDownloadReplaceActionName, - config->button_configs()[0].user_action_name); - EXPECT_NSEQ(@"Cancel", config->button_configs()[1].title); - EXPECT_EQ(kDownloadDoNotReplaceActionName, - config->button_configs()[1].user_action_name); + alert_overlays::ButtonConfig ok_button = config->button_configs()[0][0]; + EXPECT_NSEQ(@"OK", ok_button.title); + EXPECT_EQ(kDownloadReplaceActionName, ok_button.user_action_name); + alert_overlays::ButtonConfig cancel_button = config->button_configs()[1][0]; + EXPECT_NSEQ(@"Cancel", cancel_button.title); + EXPECT_EQ(kDownloadDoNotReplaceActionName, cancel_button.user_action_name); queue->CancelAllRequests(); @autoreleasepool { @@ -722,12 +722,12 @@ EXPECT_NSEQ(@"This will stop all progress for your current download.", config->message()); ASSERT_EQ(2U, config->button_configs().size()); - EXPECT_NSEQ(@"OK", config->button_configs()[0].title); - EXPECT_EQ(kDownloadReplaceActionName, - config->button_configs()[0].user_action_name); - EXPECT_NSEQ(@"Cancel", config->button_configs()[1].title); - EXPECT_EQ(kDownloadDoNotReplaceActionName, - config->button_configs()[1].user_action_name); + alert_overlays::ButtonConfig ok_button = config->button_configs()[0][0]; + EXPECT_NSEQ(@"OK", ok_button.title); + EXPECT_EQ(kDownloadReplaceActionName, ok_button.user_action_name); + alert_overlays::ButtonConfig cancel_button = config->button_configs()[1][0]; + EXPECT_NSEQ(@"Cancel", cancel_button.title); + EXPECT_EQ(kDownloadDoNotReplaceActionName, cancel_button.user_action_name); queue->CancelAllRequests(); @autoreleasepool {
diff --git a/ios/chrome/browser/ui/overlays/infobar_modal/translate/translate_infobar_modal_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/infobar_modal/translate/translate_infobar_modal_overlay_mediator.mm index 6cb0c73..2f37e87 100644 --- a/ios/chrome/browser/ui/overlays/infobar_modal/translate/translate_infobar_modal_overlay_mediator.mm +++ b/ios/chrome/browser/ui/overlays/infobar_modal/translate/translate_infobar_modal_overlay_mediator.mm
@@ -80,7 +80,9 @@ self.newTargetLanguageIndex = kInvalidLanguageIndex; self.sourceLanguageIsUnknown = self.config->unknown_language_name() == self.config->source_language_name(); - self.sourceLanguageIsInitiallyUnknown = self.sourceLanguageIsUnknown; + self.sourceLanguageIsInitiallyUnknown = + self.config->unknown_language_name() == + self.config->initial_source_language_name(); // The Translate button should be enabled whenever the page is untranslated, // which may be before any translation has been triggered or after an error
diff --git a/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_coordinator_unittest.mm b/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_coordinator_unittest.mm index d37bc1e..1d3e085 100644 --- a/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_coordinator_unittest.mm +++ b/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_coordinator_unittest.mm
@@ -34,7 +34,8 @@ // Creates an AlertRequest for use in tests. std::unique_ptr<OverlayRequest> CreateAlertRequest() { - const std::vector<ButtonConfig> button_configs{ButtonConfig(kButtonTitle)}; + const std::vector<std::vector<ButtonConfig>> button_configs{ + {ButtonConfig(kButtonTitle)}}; return OverlayRequest::CreateWithConfig<AlertRequest>( kTitle, kMessage, kAccessibilityIdentifier, nil, button_configs, base::BindRepeating(^std::unique_ptr<OverlayResponse>(
diff --git a/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_mediator.mm index 200a1ff..ca80aabe 100644 --- a/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_mediator.mm +++ b/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_mediator.mm
@@ -64,16 +64,21 @@ AlertRequest* alertRequest = self.alertRequest; if (!alertRequest || !alertRequest->button_configs().size()) return nil; - const std::vector<alert_overlays::ButtonConfig>& buttonConfigs = + const std::vector<std::vector<alert_overlays::ButtonConfig>>& buttonConfigs = alertRequest->button_configs(); + // TODO(crbug.com/1356768): Currently the consumer could only display all the + // buttons verfically of buttons, so we only use the actions from the first + // column of each row of the button configs. Update this part when the + // consumer supports supporting multiple buttons on each row. size_t buttonCount = buttonConfigs.size(); NSMutableArray<AlertAction*>* actions = [[NSMutableArray<AlertAction*> alloc] initWithCapacity:buttonCount]; for (size_t i = 0; i < buttonCount; ++i) { [actions addObject:[AlertAction - actionWithTitle:buttonConfigs[i].title - style:buttonConfigs[i].style - handler:[self actionForButtonAtIndex:i]]]; + actionWithTitle:buttonConfigs[i][0].title + style:buttonConfigs[i][0].style + handler:[self actionForButtonAtIndexRow:i + column:0]]]; } return actions; } @@ -102,15 +107,16 @@ #pragma mark - Private -// Sets a completion OverlayResponse after the button at `tappedButtonIndex` -// was tapped. -- (void)setCompletionResponse:(size_t)tappedButtonIndex { +// Sets a completion OverlayResponse after the button at `tappedButtonIndexRow` +// and `tappedButtonIndexColumn` was tapped. +- (void)setCompletionResponseWithRow:(size_t)tappedButtonIndexRow + column:(size_t)tappedButtonIndexColumn { AlertRequest* alertRequest = self.alertRequest; if (!alertRequest) return; std::unique_ptr<OverlayResponse> alertResponse = - OverlayResponse::CreateWithInfo<AlertResponse>(tappedButtonIndex, - self.textFieldValues); + OverlayResponse::CreateWithInfo<AlertResponse>( + tappedButtonIndexRow, tappedButtonIndexColumn, self.textFieldValues); self.request->GetCallbackManager()->SetCompletionResponse( alertRequest->response_converter().Run(std::move(alertResponse))); // The response converter should convert the AlertResponse into a feature- @@ -120,17 +126,18 @@ DCHECK(!convertedResponse || !convertedResponse->GetInfo<AlertResponse>()); } -// Returns the action block for the button at `index`. -- (void (^)(AlertAction* action))actionForButtonAtIndex:(size_t)index { +// Returns the action block for the button at index `row` and `column`. +- (void (^)(AlertAction* action))actionForButtonAtIndexRow:(size_t)row + column:(size_t)column { __weak __typeof__(self) weakSelf = self; base::StringPiece actionName = - self.alertRequest->button_configs()[index].user_action_name; + self.alertRequest->button_configs()[row][column].user_action_name; return ^(AlertAction*) { if (!actionName.empty()) { base::RecordComputedAction(actionName.data()); } __typeof__(self) strongSelf = weakSelf; - [strongSelf setCompletionResponse:index]; + [strongSelf setCompletionResponseWithRow:row column:column]; [strongSelf.delegate stopOverlayForMediator:strongSelf]; }; }
diff --git a/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_mediator_unittest.mm b/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_mediator_unittest.mm index db530556..060f014 100644 --- a/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_mediator_unittest.mm +++ b/ios/chrome/browser/ui/overlays/web_content_area/alerts/alert_overlay_mediator_unittest.mm
@@ -27,7 +27,8 @@ namespace { // Alert setup consts. -const size_t kButtonIndexOk = 0; +const size_t kButtonIndexOkRow = 1; +const size_t kButtonIndexOkCol = 0; const size_t kTextFieldIndex = 0; // Recorded when OK button is tapped. @@ -59,7 +60,8 @@ std::unique_ptr<OverlayResponse> alert_response) { AlertResponse* alert_info = alert_response->GetInfo<AlertResponse>(); return OverlayResponse::CreateWithInfo<FakeResponseInfo>( - alert_info->tapped_button_index() == kButtonIndexOk, + alert_info->tapped_button_row_index() == kButtonIndexOkRow && + alert_info->tapped_button_column_index() == kButtonIndexOkCol, alert_info->text_field_values()[kTextFieldIndex]); } @@ -83,9 +85,10 @@ autocapitalizationType:UITextAutocapitalizationTypeSentences secureTextEntry:NO], ]; - const std::vector<ButtonConfig> button_configs{ - ButtonConfig(@"OK", kOKTappedUserActionName), - ButtonConfig(@"Cancel", UIAlertActionStyleCancel)}; + const std::vector<std::vector<ButtonConfig>> button_configs{ + {ButtonConfig(@"First Row")}, + {ButtonConfig(@"OK", kOKTappedUserActionName), + ButtonConfig(@"Cancel", UIAlertActionStyleCancel)}}; AlertRequest::CreateForUserData(user_data, @"title", @"message", @"accessibility_identifier", text_field_configs, button_configs, @@ -139,9 +142,14 @@ consumer_.alertAccessibilityIdentifier); EXPECT_NSEQ(alert_request->text_field_configs(), consumer_.textFieldConfigurations); + ASSERT_EQ(2U, alert_request->button_configs().size()); + ASSERT_EQ(1U, alert_request->button_configs()[0].size()); + ASSERT_EQ(2U, alert_request->button_configs()[1].size()); + // TODO(crbug.com/1356768): Update when consumer supports multiple buttons on + // a row. for (size_t i = 0; i < alert_request->button_configs().size(); ++i) { AlertAction* consumer_action = consumer_.actions[i]; - const ButtonConfig& button_config = alert_request->button_configs()[i]; + const ButtonConfig& button_config = alert_request->button_configs()[i][0]; EXPECT_NSEQ(button_config.title, consumer_action.title); EXPECT_EQ(button_config.style, consumer_action.style); } @@ -157,7 +165,9 @@ mediator_.dataSource = data_source; // Simulate a tap on the OK button. - AlertAction* ok_button_action = consumer_.actions[kButtonIndexOk]; + // TODO(crbug.com/1356768): Update when consumer supports multiple buttons on + // a row. + AlertAction* ok_button_action = consumer_.actions[kButtonIndexOkRow]; ASSERT_TRUE(ok_button_action.handler); ok_button_action.handler(ok_button_action); @@ -175,7 +185,9 @@ // Tests UMA user action recording. TEST_F(AlertOverlayMediatorTest, UserActionRecording) { // Tapping OK button records User Action. - AlertAction* ok_button_action = consumer_.actions[kButtonIndexOk]; + // TODO(crbug.com/1356768): Update when consumer supports multiple buttons on + // a row. + AlertAction* ok_button_action = consumer_.actions[kButtonIndexOkRow]; base::UserActionTester user_action_tester; EXPECT_EQ(0, user_action_tester.GetActionCount(kOKTappedUserActionName)); ok_button_action.handler(ok_button_action);
diff --git a/media/gpu/v4l2/v4l2_device.cc b/media/gpu/v4l2/v4l2_device.cc index f7198294..fcc52dd 100644 --- a/media/gpu/v4l2/v4l2_device.cc +++ b/media/gpu/v4l2/v4l2_device.cc
@@ -2308,8 +2308,20 @@ continue; } - // We match the video device and the media controller by the driver - // field. The mtk-vcodec driver does not fill the card and bus fields + // Match the video device and the media controller by the bus_info + // field. This works better than the driver field if there are multiple + // instances of the same decoder driver in the system. However old MediaTek + // drivers didn't fill in the bus_info field for the media device. + if (strlen(reinterpret_cast<const char*>(caps.bus_info)) > 0 && + strlen(reinterpret_cast<const char*>(media_info.bus_info)) > 0 && + strncmp(reinterpret_cast<const char*>(caps.bus_info), + reinterpret_cast<const char*>(media_info.bus_info), + sizeof(caps.driver))) { + continue; + } + + // Fall back to matching the video device and the media controller by the + // driver field. The mtk-vcodec driver does not fill the card and bus fields // properly, so those won't work. if (strncmp(reinterpret_cast<const char*>(caps.driver), reinterpret_cast<const char*>(media_info.driver),
diff --git a/media/gpu/vaapi/vp9_vaapi_video_decoder_delegate.cc b/media/gpu/vaapi/vp9_vaapi_video_decoder_delegate.cc index f2c8bd26..52a95c7 100644 --- a/media/gpu/vaapi/vp9_vaapi_video_decoder_delegate.cc +++ b/media/gpu/vaapi/vp9_vaapi_video_decoder_delegate.cc
@@ -232,16 +232,32 @@ buffers.push_back({protected_params_->id(), {protected_params_->type(), protected_params_->size(), amd_decrypt_params.data()}}); + + // For transcrypted VP9 on AMD we need to send the UCH + cypher_bytes from + // the buffer as the slice data per AMD's instructions. + base::CheckedNumeric<size_t> protected_data_size = + decrypt_config->subsamples()[0].cypher_bytes; + protected_data_size += frame_hdr->uncompressed_header_size; + if (!protected_data_size.IsValid()) { + DVLOG(1) << "Invalid protected_data_size"; + return DecodeStatus::kFail; + } encoded_data = vaapi_wrapper_->CreateVABuffer( - VASliceDataBufferType, - base::strict_cast<size_t>( - decrypt_config->subsamples()[0].cypher_bytes)); + VASliceDataBufferType, protected_data_size.ValueOrDie()); if (!encoded_data) return DecodeStatus::kFail; - buffers.push_back( - {encoded_data->id(), - {encoded_data->type(), encoded_data->size(), - frame_hdr->data + decrypt_config->subsamples()[0].clear_bytes}}); + protected_vp9_data = + std::make_unique<uint8_t[]>(protected_data_size.ValueOrDie()); + // Copy the UCH. + memcpy(protected_vp9_data.get(), frame_hdr->data, + frame_hdr->uncompressed_header_size); + // Copy the transcrypted data. + memcpy(protected_vp9_data.get() + frame_hdr->uncompressed_header_size, + frame_hdr->data + decrypt_config->subsamples()[0].clear_bytes, + base::strict_cast<size_t>(decrypt_config->subsamples()[0].cypher_bytes)); + buffers.push_back({encoded_data->id(), + {encoded_data->type(), encoded_data->size(), + protected_vp9_data.get()}}); } else { #endif // BUILDFLAG(IS_CHROMEOS_ASH) encoded_data = vaapi_wrapper_->CreateVABuffer(VASliceDataBufferType,
diff --git a/media/renderers/paint_canvas_video_renderer.cc b/media/renderers/paint_canvas_video_renderer.cc index 42ac044..16d60d8 100644 --- a/media/renderers/paint_canvas_video_renderer.cc +++ b/media/renderers/paint_canvas_video_renderer.cc
@@ -358,6 +358,14 @@ } } +size_t NumConvertVideoFrameToRGBPixelsTasks(const VideoFrame* video_frame) { + constexpr size_t kTaskBytes = 1024 * 1024; // 1 MiB + const size_t frame_size = VideoFrame::AllocationSize( + video_frame->format(), video_frame->visible_rect().size()); + const size_t n_tasks = std::max<size_t>(1, frame_size / kTaskBytes); + return std::min<size_t>(n_tasks, base::SysInfo::NumberOfProcessors()); +} + void ConvertVideoFrameToRGBPixelsTask(const VideoFrame* video_frame, void* rgb_pixels, size_t row_bytes, @@ -1335,7 +1343,8 @@ void* rgb_pixels, size_t row_bytes, bool premultiply_alpha, - FilterMode filter) { + FilterMode filter, + bool disable_threading) { if (!video_frame->IsMappable()) { NOTREACHED() << "Cannot extract pixels from non-CPU frame formats."; return; @@ -1374,13 +1383,8 @@ break; } - constexpr size_t kTaskBytes = 1024 * 1024; // 1 MiB - const size_t n_tasks = std::min<size_t>( - std::max<size_t>( - 1, VideoFrame::AllocationSize(video_frame->format(), - video_frame->visible_rect().size()) / - kTaskBytes), - base::SysInfo::NumberOfProcessors()); + const size_t n_tasks = + disable_threading ? 1 : NumConvertVideoFrameToRGBPixelsTasks(video_frame); base::WaitableEvent event; base::RepeatingClosure barrier = base::BarrierClosure( n_tasks,
diff --git a/media/renderers/paint_canvas_video_renderer.h b/media/renderers/paint_canvas_video_renderer.h index f0dac77..7affccd9 100644 --- a/media/renderers/paint_canvas_video_renderer.h +++ b/media/renderers/paint_canvas_video_renderer.h
@@ -92,7 +92,12 @@ // indicates whether the R, G, B samples in |rgb_pixels| should be multiplied // by alpha. |filter| specifies the chroma upsampling filter used for pixel // formats with chroma subsampling. If chroma planes in the pixel format are - // not subsampled, |filter| is ignored. + // not subsampled, |filter| is ignored. |disable_threading| indicates whether + // this method should convert |video_frame| without posting any tasks to + // base::ThreadPool, regardless of the frame size. If this method is called + // from a task running in base::ThreadPool, setting |disable_threading| to + // true can avoid a potential temporary deadlock of base::ThreadPool. See + // crbug.com/1402841. // // NOTE: If |video_frame| doesn't have an alpha plane, all the A samples in // |rgb_pixels| will be 255 (equivalent to an alpha of 1.0) and therefore the @@ -102,7 +107,8 @@ void* rgb_pixels, size_t row_bytes, bool premultiply_alpha = true, - FilterMode filter = kFilterNone); + FilterMode filter = kFilterNone, + bool disable_threading = false); // The output format that ConvertVideoFrameToRGBPixels will write. static viz::ResourceFormat GetRGBPixelsOutputFormat();
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index 1d5c8de..06164692d 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -5817,9 +5817,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "isolate_profile_data": true, "merge": { "args": [], @@ -5831,8 +5831,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [ @@ -5988,9 +5988,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "isolate_profile_data": true, "merge": { "args": [], @@ -6002,8 +6002,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [ @@ -6140,9 +6140,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "isolate_profile_data": true, "merge": { "args": [], @@ -6154,8 +6154,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index b0304bd..6e943a4a 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -85453,9 +85453,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "isolate_profile_data": true, "merge": { "args": [], @@ -85467,8 +85467,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", @@ -85594,9 +85594,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "isolate_profile_data": true, "merge": { "args": [], @@ -85608,8 +85608,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -85721,9 +85721,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "isolate_profile_data": true, "merge": { "args": [], @@ -85735,8 +85735,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", @@ -87069,9 +87069,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -87082,8 +87082,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [ @@ -87240,9 +87240,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -87253,8 +87253,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [ @@ -87392,9 +87392,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -87405,8 +87405,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [ @@ -88930,9 +88930,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -88943,8 +88943,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [ @@ -89101,9 +89101,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -89114,8 +89114,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [ @@ -89253,9 +89253,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -89266,8 +89266,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [ @@ -90039,9 +90039,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -90052,8 +90052,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index 7ed2cfc..ef31f4b 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -18653,12 +18653,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "isolate_profile_data": true, "merge": { "args": [], @@ -18670,8 +18670,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [ @@ -18844,12 +18844,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "isolate_profile_data": true, "merge": { "args": [], @@ -18861,8 +18861,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [ @@ -19011,12 +19011,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 111.0.5519.0", + "description": "Run with ash-chrome version 111.0.5520.0", "isolate_profile_data": true, "merge": { "args": [], @@ -19028,8 +19028,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5519.0", - "revision": "version:111.0.5519.0" + "location": "lacros_version_skew_tests_v111.0.5520.0", + "revision": "version:111.0.5520.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index 46ad18c..dd77bb9 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -22,16 +22,16 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5519.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5520.0/test_ash_chrome', ], - 'description': 'Run with ash-chrome version 111.0.5519.0', + 'description': 'Run with ash-chrome version 111.0.5520.0', 'identifier': 'Lacros version skew testing ash canary', 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v111.0.5519.0', - 'revision': 'version:111.0.5519.0', + 'location': 'lacros_version_skew_tests_v111.0.5520.0', + 'revision': 'version:111.0.5520.0', }, ], },
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 756c6180..642dc48 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -570,6 +570,21 @@ ] } ], + "ArcLazyWebViewInit": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LazyWebViewInit" + ] + } + ] + } + ], "ArcLogdSizeConfig": [ { "platforms": [ @@ -991,26 +1006,6 @@ ] } ], - "AutofillEnableMerchantOptOutErrorDialog": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillEnableMerchantOptOutErrorDialog" - ] - } - ] - } - ], "AutofillEnableMultiStepImports": [ { "platforms": [ @@ -2165,21 +2160,6 @@ ] } ], - "CacheMacSandboxProfiles": [ - { - "platforms": [ - "mac" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CacheMacSandboxProfiles" - ] - } - ] - } - ], "CacheTransparency": [ { "platforms": [ @@ -4330,6 +4310,33 @@ ] } ], + "DownweightAutocompleteSearchResultsStudy": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "EnabledWithCutoff_20221221", + "params": { + "enable_cutoff": "true" + }, + "enable_features": [ + "LauncherFuzzyMatchForOmnibox" + ] + }, + { + "name": "EnabledWithRelevance_20221221", + "params": { + "enable_relevance": "true" + }, + "enable_features": [ + "LauncherFuzzyMatchForOmnibox" + ] + } + ] + } + ], "EcheSWA": [ { "platforms": [ @@ -6649,7 +6656,7 @@ ] } ], - "MacAllowBackgroundingProcesses": [ + "MacAllowBackgroundingRenderProcesses": [ { "platforms": [ "mac" @@ -6658,7 +6665,7 @@ { "name": "Enabled_20220218", "enable_features": [ - "MacAllowBackgroundingProcesses" + "MacAllowBackgroundingRenderProcesses" ] } ]
diff --git a/third_party/blink/common/BUILD.gn b/third_party/blink/common/BUILD.gn index aebcee31..63dd84b4 100644 --- a/third_party/blink/common/BUILD.gn +++ b/third_party/blink/common/BUILD.gn
@@ -393,6 +393,7 @@ "metrics/post_message_counter_unittest.cc", "mime_util/mime_util_unittest.cc", "notifications/notification_mojom_traits_unittest.cc", + "notifications/platform_notification_data_unittest.cc", "origin_trials/origin_trials_test.cc", "origin_trials/trial_token_unittest.cc", "origin_trials/trial_token_validator_unittest.cc",
diff --git a/third_party/blink/common/notifications/platform_notification_data.cc b/third_party/blink/common/notifications/platform_notification_data.cc index 16a6813..8408527 100644 --- a/third_party/blink/common/notifications/platform_notification_data.cc +++ b/third_party/blink/common/notifications/platform_notification_data.cc
@@ -3,6 +3,8 @@ // found in the LICENSE file. #include "third_party/blink/public/common/notifications/platform_notification_data.h" + +#include "mojo/public/cpp/bindings/clone_traits.h" #include "third_party/blink/public/mojom/notifications/notification.mojom.h" namespace blink { @@ -35,8 +37,7 @@ silent = other.silent; require_interaction = other.require_interaction; data = other.data; - for (auto& action : other.actions) - actions.push_back(action.Clone()); + actions = mojo::Clone(other.actions); show_trigger_timestamp = other.show_trigger_timestamp; scenario = other.scenario;
diff --git a/third_party/blink/common/notifications/platform_notification_data_unittest.cc b/third_party/blink/common/notifications/platform_notification_data_unittest.cc new file mode 100644 index 0000000..74a3271d --- /dev/null +++ b/third_party/blink/common/notifications/platform_notification_data_unittest.cc
@@ -0,0 +1,99 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/public/common/notifications/platform_notification_data.h" + +#include "base/strings/stringprintf.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/mojom/notifications/notification.mojom.h" + +namespace blink { + +TEST(PlatformNotificationDataTest, AssignmentOperator) { + PlatformNotificationData notification_data; + notification_data.title = u"Title of my notification"; + notification_data.direction = mojom::NotificationDirection::AUTO; + notification_data.lang = "test-lang"; + notification_data.body = u"Notification body."; + notification_data.tag = "notification-tag"; + notification_data.image = GURL("https://example.com/image.png"); + notification_data.icon = GURL("https://example.com/icon.png"); + notification_data.badge = GURL("https://example.com/badge.png"); + + const int vibration_pattern[] = {500, 100, 30}; + notification_data.vibration_pattern.assign(std::begin(vibration_pattern), + std::end(vibration_pattern)); + + notification_data.timestamp = base::Time::FromJsTime(1513966159000.); + notification_data.renotify = true; + notification_data.silent = true; + notification_data.require_interaction = true; + notification_data.show_trigger_timestamp = base::Time::Now(); + notification_data.scenario = mojom::NotificationScenario::INCOMING_CALL; + + const char data[] = "mock binary notification data"; + notification_data.data.assign(std::begin(data), std::end(data)); + + notification_data.actions.resize(2); + notification_data.actions[0] = blink::mojom::NotificationAction::New(); + notification_data.actions[0]->type = + blink::mojom::NotificationActionType::BUTTON; + notification_data.actions[0]->action = "buttonAction"; + notification_data.actions[0]->title = u"Button Title!"; + notification_data.actions[0]->icon = GURL("https://example.com/aButton.png"); + notification_data.actions[0]->placeholder = absl::nullopt; + + notification_data.actions[1] = blink::mojom::NotificationAction::New(); + notification_data.actions[1]->type = + blink::mojom::NotificationActionType::TEXT; + notification_data.actions[1]->action = "textAction"; + notification_data.actions[1]->title = u"Reply Button Title"; + notification_data.actions[1]->icon = GURL("https://example.com/reply.png"); + notification_data.actions[1]->placeholder = u"Placeholder Text"; + + // Initialize the PlatformNotificationData object and then reassign it to + // make sure that the reassignement happens when all the internal variables + // are already initialized. We do that to make sure that the assignment + // operator is not making any implicit assumptions about the variables' state + // - e.g., implcitily assuming that the `actions` vector is empty. + PlatformNotificationData assigned_notification_data = notification_data; + assigned_notification_data = notification_data; + + EXPECT_EQ(assigned_notification_data.title, notification_data.title); + EXPECT_EQ(assigned_notification_data.direction, notification_data.direction); + EXPECT_EQ(assigned_notification_data.lang, notification_data.lang); + EXPECT_EQ(assigned_notification_data.body, notification_data.body); + EXPECT_EQ(assigned_notification_data.tag, notification_data.tag); + EXPECT_EQ(assigned_notification_data.image, notification_data.image); + EXPECT_EQ(assigned_notification_data.icon, notification_data.icon); + EXPECT_EQ(assigned_notification_data.badge, notification_data.badge); + EXPECT_EQ(assigned_notification_data.vibration_pattern, + notification_data.vibration_pattern); + EXPECT_EQ(assigned_notification_data.timestamp, notification_data.timestamp); + EXPECT_EQ(assigned_notification_data.renotify, notification_data.renotify); + EXPECT_EQ(assigned_notification_data.silent, notification_data.silent); + EXPECT_EQ(assigned_notification_data.require_interaction, + notification_data.require_interaction); + EXPECT_EQ(assigned_notification_data.data, notification_data.data); + ASSERT_EQ(notification_data.actions.size(), + assigned_notification_data.actions.size()); + for (size_t i = 0; i < notification_data.actions.size(); ++i) { + SCOPED_TRACE(base::StringPrintf("Action index: %zd", i)); + EXPECT_EQ(notification_data.actions[i]->type, + assigned_notification_data.actions[i]->type); + EXPECT_EQ(notification_data.actions[i]->action, + assigned_notification_data.actions[i]->action); + EXPECT_EQ(notification_data.actions[i]->title, + assigned_notification_data.actions[i]->title); + EXPECT_EQ(notification_data.actions[i]->icon, + assigned_notification_data.actions[i]->icon); + EXPECT_EQ(notification_data.actions[i]->placeholder, + assigned_notification_data.actions[i]->placeholder); + } + EXPECT_EQ(assigned_notification_data.show_trigger_timestamp, + notification_data.show_trigger_timestamp); + EXPECT_EQ(assigned_notification_data.scenario, notification_data.scenario); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/html/forms/html_form_control_element.cc b/third_party/blink/renderer/core/html/forms/html_form_control_element.cc index f47f8d6..d247fce 100644 --- a/third_party/blink/renderer/core/html/forms/html_form_control_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_form_control_element.cc
@@ -377,6 +377,8 @@ if (!IsDisabledFormControl()) { auto popover = popoverTargetElement(); if (popover.popover) { + DCHECK(RuntimeEnabledFeatures::HTMLPopoverAttributeEnabled( + GetDocument().GetExecutionContext())); auto trigger_support = SupportsPopoverTriggering(); DCHECK_NE(popover.action, PopoverTriggerAction::kNone); DCHECK_NE(trigger_support, PopoverTriggerSupport::kNone);
diff --git a/third_party/blink/renderer/core/page/focus_controller.cc b/third_party/blink/renderer/core/page/focus_controller.cc index 2f2e89c..cbd1cf67 100644 --- a/third_party/blink/renderer/core/page/focus_controller.cc +++ b/third_party/blink/renderer/core/page/focus_controller.cc
@@ -79,10 +79,11 @@ popover->GetPopoverData()->invoker(); } -const Element* InsideOpenPopoverWithInvoker(const Element* element) { +const Element* InclusiveAncestorOpenPopoverWithInvoker(const Element* element) { for (; element; element = FlatTreeTraversal::ParentElement(*element)) { - if (IsOpenPopoverWithInvoker(element)) - return element; + if (IsOpenPopoverWithInvoker(element)) { + return element; // Return the popover + } } return nullptr; } @@ -92,9 +93,10 @@ if (!invoker) return false; HTMLElement* popover = invoker->popoverTargetElement().popover; - if (!popover) - return false; - return popover->popoverOpen(); + // There could be more than one invoker for a given popover. Only return true + // if this invoker was the one that was actually used. + return popover && popover->popoverOpen() && + popover->GetPopoverData()->invoker() == invoker; } // This class defines the navigation order. @@ -324,7 +326,7 @@ ScopedFocusNavigation::FindFallbackScopeOwnerSlot(current)) { return ScopedFocusNavigation(*slot, ¤t, owner_map); } - if (auto* popover = InsideOpenPopoverWithInvoker(¤t)) { + if (auto* popover = InclusiveAncestorOpenPopoverWithInvoker(¤t)) { return ScopedFocusNavigation(const_cast<Element&>(*popover), ¤t, owner_map); }
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth.cc b/third_party/blink/renderer/modules/bluetooth/bluetooth.cc index ea6d67ca..b9a8b4a 100644 --- a/third_party/blink/renderer/modules/bluetooth/bluetooth.cc +++ b/third_party/blink/renderer/modules/bluetooth/bluetooth.cc
@@ -75,6 +75,14 @@ } else if (window->GetFrame()->IsInFencedFrameTree()) { exception_state.ThrowDOMException(DOMExceptionCode::kNotAllowedError, kFencedFrameError); + } else if (window->GetFrame() + ->Top() + ->GetSecurityContext() + ->GetSecurityOrigin() + ->IsOpaque()) { + exception_state.ThrowSecurityError( + "Access to the Web Bluetooth API is denied from contexts where the " + "top-level document has an opaque origin."); } return exception_state.HadException(); @@ -291,6 +299,7 @@ ScriptPromise Bluetooth::getAvailability(ScriptState* script_state, ExceptionState& exception_state) { LocalDOMWindow* window = GetSupplementable()->DomWindow(); + if (IsRequestDenied(window, exception_state)) { return ScriptPromise(); } @@ -353,6 +362,7 @@ ScriptPromise Bluetooth::getDevices(ScriptState* script_state, ExceptionState& exception_state) { LocalDOMWindow* window = GetSupplementable()->DomWindow(); + if (IsRequestDenied(window, exception_state)) { return ScriptPromise(); } @@ -380,6 +390,7 @@ const RequestDeviceOptions* options, ExceptionState& exception_state) { LocalDOMWindow* window = GetSupplementable()->DomWindow(); + if (IsRequestDenied(window, exception_state)) { return ScriptPromise(); } @@ -484,6 +495,7 @@ const BluetoothLEScanOptions* options, ExceptionState& exception_state) { LocalDOMWindow* window = GetSupplementable()->DomWindow(); + if (IsRequestDenied(window, exception_state)) { return ScriptPromise(); }
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder_test.h b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder_test.h index 7864e11a..357bb72 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder_test.h +++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder_test.h
@@ -45,6 +45,9 @@ const Vector<uint32_t>& dimensions, V8MLOperandType::Enum type); +NotShared<DOMArrayBufferView> CreateArrayBufferViewForOperand( + const MLOperand* operand); + MLOperand* BuildClamp(V8TestingScope& scope, MLGraphBuilder* builder, const MLOperand* input,
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.cc b/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.cc index 777fe9a..7ee0482 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.cc +++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.cc
@@ -7,6 +7,7 @@ #include <algorithm> #include "base/numerics/checked_math.h" +#include "base/ranges/algorithm.h" #include "base/synchronization/lock.h" #include "base/task/sequenced_task_runner.h" #include "base/task/thread_pool.h" @@ -15,6 +16,7 @@ #include "build/buildflag.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" +#include "third_party/blink/renderer/modules/ml/ml.h" #include "third_party/blink/renderer/modules/ml/ml_context.h" #include "third_party/blink/renderer/modules/ml/webnn/ml_operand.h" #include "third_party/blink/renderer/modules/ml/webnn/ml_operator.h" @@ -534,14 +536,21 @@ return toposorted_operators; } -const ExternalValueIdMap& MLGraphXnnpack::GetInputExternalValueIdMap() const { +const ExternalValueIdMap& MLGraphXnnpack::GetInputExternalValueIdMapForTesting() + const { return input_external_value_id_map_; } -const ExternalValueIdMap& MLGraphXnnpack::GetOutputExternalValueIdMap() const { +const ExternalValueIdMap& +MLGraphXnnpack::GetOutputExternalValueIdMapForTesting() const { return output_external_value_id_map_; } +const Vector<xnn_external_value>& MLGraphXnnpack::GetXnnExternalValuesTesting() + const { + return xnn_external_values_; +} + void MLGraphXnnpack::BuildAsyncImpl(const MLNamedOperands& named_outputs, ScriptPromiseResolver* resolver) { // TODO(crbug.com/1273291): Revisit whether the topological sorting should run @@ -628,9 +637,11 @@ void MLGraphXnnpack::ComputeAsyncImpl(const MLNamedArrayBufferViews& inputs, const MLNamedArrayBufferViews& outputs, ScriptPromiseResolver* resolver) { - // TODO(ningxin.hu@intel.com): Implement this method by posting the inputs and - // outputs to a background thread and invoking XNNPACK Runtime object in the - // background thread. + // TODO(crbug.com/1273291): There is an issue of current WebNN asynchronous + // execution design: https://github.com/webmachinelearning/webnn/issues/318. + // After the spec issue is fixed, implement this method by posting the inputs + // and outputs to a background thread and invoking XNNPACK Runtime object in + // the background thread. resolver->Reject(MakeGarbageCollected<DOMException>( DOMExceptionCode::kNotSupportedError, "Not implemented.")); @@ -639,12 +650,12 @@ void MLGraphXnnpack::ComputeSyncImpl(const MLNamedArrayBufferViews& inputs, const MLNamedArrayBufferViews& outputs, ExceptionState& exception_state) { - // TODO(ningxin.hu@intel.com): Setup the external values of the XNNPACK - // Runtime object by input and output buffers, and invoke the XNNPACK Runtime - // object for accelerated execution in the caller's thread. - - exception_state.ThrowDOMException(DOMExceptionCode::kNotSupportedError, - "Not implemented."); + String error_message; + xnn_status status = InvokeXnnRuntime(inputs, outputs, error_message); + if (status != xnn_status_success) { + exception_state.ThrowDOMException(XnnStatusToDOMExceptionCode(status), + error_message); + } } xnn_status MLGraphXnnpack::CreateXnnSubgraphAndRuntime( @@ -783,4 +794,56 @@ return xnn_status_success; } +Vector<xnn_external_value> MLGraphXnnpack::CreateExternalValues( + const MLNamedArrayBufferViews& inputs, + const MLNamedArrayBufferViews& outputs) const { + Vector<xnn_external_value> external_values; + external_values.reserve((inputs.size() + outputs.size())); + // Although XNNPACK doesn't validate the pointers, the base address and the + // byte length of the array buffer views are already validated by + // ValidateNamedArrayBufferViews(). It should be safe to setup XNNPACK Runtime + // object with them. + for (const auto& [name, array_buffer_view] : inputs) { + DCHECK(input_external_value_id_map_.Contains(name)); + external_values.emplace_back( + xnn_external_value{.id = input_external_value_id_map_.at(name), + .data = array_buffer_view->BaseAddress()}); + } + for (const auto& [name, array_buffer_view] : outputs) { + DCHECK(output_external_value_id_map_.Contains(name)); + external_values.emplace_back( + xnn_external_value{.id = output_external_value_id_map_.at(name), + .data = array_buffer_view->BaseAddress()}); + } + base::ranges::sort(external_values, base::ranges::less{}, + &xnn_external_value::id); + return external_values; +} + +bool MLGraphXnnpack::NeedToSetupExternalValues( + const Vector<xnn_external_value>& external_values) const { + return !base::ranges::equal(external_values, xnn_external_values_, + [](const auto& a, const auto& b) { + return a.id == b.id && a.data == b.data; + }); +} + +xnn_status MLGraphXnnpack::InvokeXnnRuntime( + const MLNamedArrayBufferViews& inputs, + const MLNamedArrayBufferViews& outputs, + String& error_message) { + TRACE_EVENT("blink", "MLGraphXnnpack::InvokeXnnRuntime"); + + auto external_values = CreateExternalValues(inputs, outputs); + if (NeedToSetupExternalValues(external_values)) { + XNN_CHECK_STATUS_AND_SET_ERROR_MESSAGE(xnn_setup_runtime( + xnn_runtime_.get(), external_values.size(), external_values.data())); + xnn_external_values_ = external_values; + } + + XNN_CHECK_STATUS_AND_SET_ERROR_MESSAGE( + xnn_invoke_runtime(xnn_runtime_.get())); + return xnn_status_success; +} + } // namespace blink
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.h b/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.h index c756a90..c87098f 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.h +++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.h
@@ -19,7 +19,9 @@ class SharedXnnpackContext; } +// Map the MLGraph's input or output name to the XNNPACK external Value ID. using ExternalValueIdMap = HashMap<String, uint32_t>; + using DataBufferPtr = std::unique_ptr<uint8_t[]>; class MODULES_EXPORT MLGraphXnnpack final : public MLGraph { @@ -47,14 +49,15 @@ // Return the operators in topological order by searching from the named // output operands. It ensures operator 'j' appears before operator 'i' in the // result, if 'i' depends on 'j'. - + // // The sorted operators will be used by CreateXnnSubgraphAndRuntime() that // defines the subgraph Nodes for operators in topological order. static HeapVector<Member<const MLOperator>>* GetOperatorsInTopologicalOrder( const MLNamedOperands& named_outputs); - const ExternalValueIdMap& GetInputExternalValueIdMap() const; - const ExternalValueIdMap& GetOutputExternalValueIdMap() const; + const ExternalValueIdMap& GetInputExternalValueIdMapForTesting() const; + const ExternalValueIdMap& GetOutputExternalValueIdMapForTesting() const; + const Vector<xnn_external_value>& GetXnnExternalValuesTesting() const; private: // Post the XNNPACK Subgraph and Runtime building to a background thread. @@ -83,7 +86,7 @@ MLGraph* BuildSyncImpl(const MLNamedOperands& named_outputs, ExceptionState& exception_state) override; - // Post the XNNPACK Runtime invocation to a background thread. + // Post the XNNPACK Runtime object invocation to a background thread. void ComputeAsyncImpl(const MLNamedArrayBufferViews& inputs, const MLNamedArrayBufferViews& outputs, ScriptPromiseResolver* resolver) override; @@ -106,6 +109,36 @@ const HeapVector<Member<const MLOperator>>& toposorted_operators, String& error_message); + // This method creates the xnn_external_value vector from named input and + // output array buffer views. The xnn_external_value vector is used to set up + // the XNNPACK Runtime object. The returned vector is sorted by + // `xnn_external_value::id`, and can be passed to + // `NeedToSetupExternalValues()`. + Vector<xnn_external_value> CreateExternalValues( + const MLNamedArrayBufferViews& inputs, + const MLNamedArrayBufferViews& outputs) const; + + // This method checks if any data pointers of the provided + // `xnn_external_values` changed against the pointers that has been setup + // (stored in `xnn_external_values_`). + // + // The change may be caused by user providing a different ArrayBufferView that + // is backed by a newly allocated or reallocated store. + // + // The XNNPACK Runtime object setup may be expensive. If the data pointers + // haven't changed, there's no need to redo the setup. + bool NeedToSetupExternalValues( + const Vector<xnn_external_value>& xnn_external_values) const; + + // This method sets up data pointers for XNNPACK external values, performs the + // forward pass, then stores the result in the array buffer views provided by + // `outputs`. + // + // This method can be called in the main thread or a background thread. + xnn_status InvokeXnnRuntime(const MLNamedArrayBufferViews& inputs, + const MLNamedArrayBufferViews& outputs, + String& error_message); + // The SharedXnnpackContext is shared and reference-counted by all instances // of MLGraphXnnpack. It initializes (and also deinitializes) the XNNPACK // library for graph building and execution. @@ -122,6 +155,11 @@ ExternalValueIdMap input_external_value_id_map_; ExternalValueIdMap output_external_value_id_map_; + // Used to track external values that have been setup, to avoid unnecessary + // xnn_runtime_setup calls (which may be expensive). Sorted by + // `xnn_external_value::id`. + Vector<xnn_external_value> xnn_external_values_; + // The XNNPACK Runtime object for the accelerated executions. std::unique_ptr<xnn_runtime, decltype(&xnn_delete_runtime)> xnn_runtime_{ nullptr, &xnn_delete_runtime};
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack_test.cc b/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack_test.cc index b79f6a7..ea9994d 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack_test.cc +++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack_test.cc
@@ -138,12 +138,14 @@ auto [graph, exception] = BuildGraph(scope, builder, {{"output", output}}); EXPECT_NE(graph, nullptr); MLGraphXnnpack* xnnpack_graph = static_cast<MLGraphXnnpack*>(graph.Get()); - const auto& output_externals = xnnpack_graph->GetOutputExternalValueIdMap(); + const auto& output_externals = + xnnpack_graph->GetOutputExternalValueIdMapForTesting(); EXPECT_EQ(output_externals.size(), 1u); EXPECT_EQ(output_externals.Contains("output"), true); // MLGraphXnnpack defines output external Values first. EXPECT_EQ(output_externals.at("output"), 0u); - const auto& input_externals = xnnpack_graph->GetInputExternalValueIdMap(); + const auto& input_externals = + xnnpack_graph->GetInputExternalValueIdMapForTesting(); EXPECT_EQ(input_externals.size(), 2u); EXPECT_EQ(input_externals.Contains("input0"), true); EXPECT_EQ(input_externals.Contains("input1"), true); @@ -166,12 +168,14 @@ auto [graph, exception] = BuildGraph(scope, builder, {{"output", output}}); EXPECT_NE(graph, nullptr); MLGraphXnnpack* xnnpack_graph = static_cast<MLGraphXnnpack*>(graph.Get()); - const auto& output_externals = xnnpack_graph->GetOutputExternalValueIdMap(); + const auto& output_externals = + xnnpack_graph->GetOutputExternalValueIdMapForTesting(); EXPECT_EQ(output_externals.size(), 1u); EXPECT_EQ(output_externals.Contains("output"), true); // MLGraphXnnpack defines output external Values first. EXPECT_EQ(output_externals.at("output"), 0u); - const auto& input_externals = xnnpack_graph->GetInputExternalValueIdMap(); + const auto& input_externals = + xnnpack_graph->GetInputExternalValueIdMapForTesting(); EXPECT_EQ(input_externals.size(), 1u); EXPECT_EQ(input_externals.Contains("input"), true); EXPECT_EQ(input_externals.at("input"), 1u); @@ -200,13 +204,15 @@ auto [graph, exception] = BuildGraph(scope, builder, {{"output", output}}); EXPECT_NE(graph, nullptr); MLGraphXnnpack* xnnpack_graph = static_cast<MLGraphXnnpack*>(graph.Get()); - const auto& output_externals = xnnpack_graph->GetOutputExternalValueIdMap(); + const auto& output_externals = + xnnpack_graph->GetOutputExternalValueIdMapForTesting(); EXPECT_EQ(output_externals.size(), 1u); EXPECT_EQ(output_externals.Contains("output"), true); // MLGraphXnnpack defines output external Values first, so the external // Value's ID of the output operand should start from 0. EXPECT_EQ(output_externals.at("output"), 0u); - const auto& input_externals = xnnpack_graph->GetInputExternalValueIdMap(); + const auto& input_externals = + xnnpack_graph->GetInputExternalValueIdMapForTesting(); EXPECT_EQ(input_externals.size(), 1u); EXPECT_EQ(input_externals.Contains("input"), true); EXPECT_EQ(input_externals.at("input"), 1u); @@ -237,7 +243,8 @@ scope, builder, {{"output0", output0}, {"output1", output1}}); EXPECT_NE(graph, nullptr); MLGraphXnnpack* xnnpack_graph = static_cast<MLGraphXnnpack*>(graph.Get()); - const auto& output_externals = xnnpack_graph->GetOutputExternalValueIdMap(); + const auto& output_externals = + xnnpack_graph->GetOutputExternalValueIdMapForTesting(); EXPECT_EQ(output_externals.size(), 2u); EXPECT_EQ(output_externals.Contains("output0"), true); EXPECT_EQ(output_externals.Contains("output1"), true); @@ -245,7 +252,8 @@ // Value's ID of the output operand should start from 0. EXPECT_EQ(output_externals.at("output0"), 0u); EXPECT_EQ(output_externals.at("output1"), 1u); - const auto& input_externals = xnnpack_graph->GetInputExternalValueIdMap(); + const auto& input_externals = + xnnpack_graph->GetInputExternalValueIdMapForTesting(); EXPECT_EQ(input_externals.size(), 3u); EXPECT_EQ(input_externals.Contains("input0"), true); EXPECT_EQ(input_externals.Contains("input1"), true); @@ -259,18 +267,54 @@ } } +template <typename T> struct OperandInfo { V8MLOperandType::Enum type; Vector<uint32_t> dimensions; + Vector<T> values; }; +// Helper function to set the data of an ArrayBufferView from a vector. +template <typename T> +void SetArrayBufferViewValues(NotShared<DOMArrayBufferView> array_buffer_view, + const Vector<T>& values) { + DCHECK_EQ(array_buffer_view->byteLength(), values.size() * sizeof(T)); + memcpy(array_buffer_view->BaseAddress(), values.data(), + values.size() * sizeof(T)); +} + +// Overrode helper function to create an ArrayBufferView given an operand and +// set its data from a vector. +template <typename T> +NotShared<DOMArrayBufferView> CreateArrayBufferViewForOperand( + const MLOperand* operand, + const Vector<T>& values) { + auto array_buffer_view = CreateArrayBufferViewForOperand(operand); + SetArrayBufferViewValues(array_buffer_view, values); + return array_buffer_view; +} + +// Helper function to get the data of an ArrayBufferView into a vector. +template <typename T> +Vector<T> GetArrayBufferViewValues( + NotShared<DOMArrayBufferView> array_buffer_view) { + Vector<T> values(base::checked_cast<wtf_size_t>( + array_buffer_view->byteLength() / array_buffer_view->TypeSize())); + memcpy(values.data(), array_buffer_view->BaseAddress(), + array_buffer_view->byteLength()); + return values; +} + +template <typename T> struct ElementWiseBinaryTester { MLGraphXnnpackTest* helper; ElementWiseBinaryKind kind; - OperandInfo lhs; - OperandInfo rhs; + OperandInfo<T> lhs; + OperandInfo<T> rhs; + Vector<T> expected; void Test(V8TestingScope& scope) { + // Build the graph. auto* builder = CreateMLGraphBuilder(scope); auto* lhs_operand = BuildInput(scope, builder, "lhs", lhs.dimensions, lhs.type); @@ -278,9 +322,20 @@ BuildInput(scope, builder, "rhs", rhs.dimensions, rhs.type); auto* output_operand = BuildElementWiseBinary(scope, builder, kind, lhs_operand, rhs_operand); - auto [graph, exception] = + auto [graph, build_exception] = helper->BuildGraph(scope, builder, {{"output", output_operand}}); EXPECT_NE(graph, nullptr); + + // Compute the graph. + auto lhs_buffer = CreateArrayBufferViewForOperand(lhs_operand, lhs.values); + auto rhs_buffer = CreateArrayBufferViewForOperand(rhs_operand, rhs.values); + auto output_buffer = CreateArrayBufferViewForOperand(output_operand); + auto* compute_exception = helper->ComputeGraph( + scope, graph, {{"lhs", lhs_buffer}, {"rhs", rhs_buffer}}, + {{"output", output_buffer}}); + EXPECT_EQ(compute_exception, nullptr); + auto results = GetArrayBufferViewValues<T>(output_buffer); + EXPECT_EQ(results, expected); } }; @@ -288,118 +343,185 @@ V8TestingScope scope; { // Test element-wise add operator for two 1-D tensors. - ElementWiseBinaryTester{ + // The expected results should be the sum of the values of the two input + // tensors, element-wise. + ElementWiseBinaryTester<float>{ .helper = this, .kind = ElementWiseBinaryKind::kAdd, - .lhs = {.type = V8MLOperandType::Enum::kFloat32, .dimensions = {2}}, - .rhs = {.type = V8MLOperandType::Enum::kFloat32, .dimensions = {2}}} + .lhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {2}, + .values = {1.0, 2.0}}, + .rhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {2}, + .values = {3.0, 4.0}}, + .expected = {4.0, 6.0}} .Test(scope); } { // Test element-wise add operator for two 2-D tensors. - ElementWiseBinaryTester{ + ElementWiseBinaryTester<float>{ .helper = this, .kind = ElementWiseBinaryKind::kAdd, - .lhs = {.type = V8MLOperandType::Enum::kFloat32, .dimensions = {2, 2}}, - .rhs = {.type = V8MLOperandType::Enum::kFloat32, .dimensions = {2, 2}}} + .lhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {2, 2}, + .values = {1.0, 2.0, 3.0, 4.0}}, + .rhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {2, 2}, + .values = {5.0, 6.0, 7.0, 8.0}}, + .expected = {6.0, 8.0, 10.0, 12.0}} .Test(scope); } { // Test element-wise add operator for 1-D tensor broadcasting to 2-D // tensor. - ElementWiseBinaryTester{ + ElementWiseBinaryTester<float>{ .helper = this, .kind = ElementWiseBinaryKind::kAdd, - .lhs = {.type = V8MLOperandType::Enum::kFloat32, .dimensions = {2, 2}}, - .rhs = {.type = V8MLOperandType::Enum::kFloat32, .dimensions = {2}}} + .lhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {2, 2}, + .values = {1.0, 2.0, 3.0, 4.0}}, + .rhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {2}, + .values = {5.0, 6.0}}, + .expected = {6.0, 8.0, 8.0, 10.0}} .Test(scope); } { // Test element-wise add operator for 3-D tensor broadcasting to 3-D // tensor. - ElementWiseBinaryTester{.helper = this, - .kind = ElementWiseBinaryKind::kAdd, - .lhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2}}, - .rhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {2, 1, 2}}} + ElementWiseBinaryTester<float>{ + .helper = this, + .kind = ElementWiseBinaryKind::kAdd, + .lhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2}, + .values = {1.0, 2.0, 3.0, 4.0}}, + .rhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {2, 1, 2}, + .values = {5.0, 6.0, 7.0, 8.0}}, + .expected = {6.0, 8.0, 8.0, 10.0, 8.0, 10.0, 10.0, 12.0}} .Test(scope); } { - // Test element-wise add operator for two 4-D tensors. - ElementWiseBinaryTester{.helper = this, - .kind = ElementWiseBinaryKind::kAdd, - .lhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}, - .rhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}} + // Test element-wise add operator for two 4-D tensors + ElementWiseBinaryTester<float>{ + .kind = ElementWiseBinaryKind::kAdd, + .lhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {1.0, 2.0, 3.0, 4.0}}, + .rhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {5.0, 6.0, 7.0, 8.0}}, + .expected = {6.0, 8.0, 10.0, 12.0}} .Test(scope); } { // Test element-wise sub operator for two 4-D tensors. - ElementWiseBinaryTester{.helper = this, - .kind = ElementWiseBinaryKind::kSub, - .lhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}, - .rhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}} + // The expected results should be the difference of the values of the two + // input tensors, element-wise. + ElementWiseBinaryTester<float>{ + .helper = this, + .kind = ElementWiseBinaryKind::kSub, + .lhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {1.0, 2.0, 3.0, 4.0}}, + .rhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {5.0, 6.0, 7.0, 8.0}}, + .expected = {-4.0, -4.0, -4.0, -4.0}} .Test(scope); } { // Test element-wise mul operator for two 4-D tensors. - ElementWiseBinaryTester{.helper = this, - .kind = ElementWiseBinaryKind::kMul, - .lhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}, - .rhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}} + // The expected results should be the prdocut of the values of the two input + // tensors, element-wise. + ElementWiseBinaryTester<float>{ + .helper = this, + .kind = ElementWiseBinaryKind::kMul, + .lhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {1.0, 2.0, 3.0, 4.0}}, + .rhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {5.0, 6.0, 7.0, 8.0}}, + .expected = {5.0, 12.0, 21.0, 32.0}} .Test(scope); } { // Test element-wise div operator for two 4-D tensors. - ElementWiseBinaryTester{.helper = this, - .kind = ElementWiseBinaryKind::kDiv, - .lhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}, - .rhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}} + // The expected results should be the quotient of the values of the two + // input tensors, element-wise. + ElementWiseBinaryTester<float>{ + .helper = this, + .kind = ElementWiseBinaryKind::kDiv, + .lhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {3.0, 4.0, 6.0, 8.0}}, + .rhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {1.0, 2.0, 2.0, 2.0}}, + .expected = {3.0, 2.0, 3.0, 4.0}} .Test(scope); } { // Test element-wise min operator for two 4-D tensors. - ElementWiseBinaryTester{.helper = this, - .kind = ElementWiseBinaryKind::kMin, - .lhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}, - .rhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}} + // The expected results should be the lesser values of the two input + // tensors, element-wise. + ElementWiseBinaryTester<float>{ + .helper = this, + .kind = ElementWiseBinaryKind::kMin, + .lhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {1.0, 4.0, 5.0, 8.0}}, + .rhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {2.0, 3.0, 6.0, 7.0}}, + .expected = {1.0, 3.0, 5.0, 7.0}} .Test(scope); } { // Test element-wise max operator for two 4-D tensors. - ElementWiseBinaryTester{.helper = this, - .kind = ElementWiseBinaryKind::kMax, - .lhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}, - .rhs = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}} + // The expected results should be the greater values of the two input + // tensors, element-wise. + ElementWiseBinaryTester<float>{ + .helper = this, + .kind = ElementWiseBinaryKind::kMax, + .lhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {1.0, 4.0, 5.0, 8.0}}, + .rhs = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {2.0, 3.0, 6.0, 7.0}}, + .expected = {2.0, 4.0, 6.0, 8.0}} .Test(scope); } } +template <typename T> struct ReluTester { MLGraphXnnpackTest* helper; - OperandInfo input; + OperandInfo<T> input; + Vector<T> expected; void Test(V8TestingScope& scope) { + // Build the graph. auto* builder = CreateMLGraphBuilder(scope); auto* input_operand = BuildInput(scope, builder, "input", input.dimensions, input.type); auto* output_operand = builder->relu(input_operand, scope.GetExceptionState()); - auto [graph, exception] = + auto [graph, build_exception] = helper->BuildGraph(scope, builder, {{"output", output_operand}}); EXPECT_NE(graph, nullptr); + + // Compute the graph. + auto input_buffer = + CreateArrayBufferViewForOperand(input_operand, input.values); + auto output_buffer = CreateArrayBufferViewForOperand(output_operand); + auto* compute_exception = helper->ComputeGraph( + scope, graph, {{"input", input_buffer}}, {{"output", output_buffer}}); + EXPECT_EQ(compute_exception, nullptr); + auto results = GetArrayBufferViewValues<T>(output_buffer); + EXPECT_EQ(results, expected); } }; @@ -407,38 +529,258 @@ V8TestingScope scope; { // Test relu operator for 1-D tensor. - ReluTester{ - .helper = this, - .input = {.type = V8MLOperandType::Enum::kFloat32, .dimensions = {2}}} + // The expected results should be the result of the rectified linear + // function, y = max(0, x), applied to the input tensor, element-wise. + ReluTester<float>{.helper = this, + .input = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {2}, + .values = {-1.0, 1.0}}, + .expected = {0.0, 1.0}} .Test(scope); } { // Test relu operator for 2-D tensor. - ReluTester{.helper = this, - .input = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {2, 2}}} + ReluTester<float>{.helper = this, + .input = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {2, 2}, + .values = {-10.0, -0.5, 0.5, 10.0}}, + .expected = {0.0, 0.0, 0.5, 10.0}} .Test(scope); } { // Test relu operator for 3-D tensor. - ReluTester{.helper = this, - .input = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2}}} + ReluTester<float>{.helper = this, + .input = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2}, + .values = {-10.0, -0.5, 0.5, 10.0}}, + .expected = {0.0, 0.0, 0.5, 10.0}} .Test(scope); } { // Test relu operator for 4-D tensor. - ReluTester{.helper = this, - .input = {.type = V8MLOperandType::Enum::kFloat32, - .dimensions = {1, 2, 2, 1}}} + ReluTester<float>{.helper = this, + .input = {.type = V8MLOperandType::Enum::kFloat32, + .dimensions = {1, 2, 2, 1}, + .values = {-10.0, -0.5, 0.5, 10.0}}, + .expected = {0.0, 0.0, 0.5, 10.0}} .Test(scope); } } +void CheckExternalValues(const MLGraphXnnpack* xnnpack_graph, + const MLNamedArrayBufferViews& inputs, + const MLNamedArrayBufferViews& outputs) { + const auto& external_values = xnnpack_graph->GetXnnExternalValuesTesting(); + for (const auto& [name, array_buffer_view] : inputs) { + const auto& input_external_values = + xnnpack_graph->GetInputExternalValueIdMapForTesting(); + DCHECK(input_external_values.Contains(name)); + const auto& value_id = input_external_values.at(name); + const auto* it = + std::find_if(external_values.begin(), external_values.end(), + [value_id](const auto& external_value) { + return external_value.id == value_id; + }); + DCHECK(it); + EXPECT_EQ(it->data, array_buffer_view->BaseAddress()); + } + for (const auto& [name, array_buffer_view] : outputs) { + const auto& output_external_values = + xnnpack_graph->GetOutputExternalValueIdMapForTesting(); + DCHECK(output_external_values.Contains(name)); + const auto& value_id = output_external_values.at(name); + const auto* it = + std::find_if(external_values.begin(), external_values.end(), + [value_id](const auto& external_value) { + return external_value.id == value_id; + }); + DCHECK(it); + EXPECT_EQ(it->data, array_buffer_view->BaseAddress()); + } +} + +TEST_P(MLGraphXnnpackTest, InvokeXnnpackRuntimeTest) { + V8TestingScope scope; + auto* builder = CreateMLGraphBuilder(scope); + Vector<uint32_t> shape({1, 2, 2, 1}); + // Create an MLGraphXnnpack with the following topology: + // [input0] [input1] + // \ / + // add + // | + // [output] + auto* input0 = BuildInput(scope, builder, "input0", shape, + V8MLOperandType::Enum::kFloat32); + auto* input1 = BuildInput(scope, builder, "input1", shape, + V8MLOperandType::Enum::kFloat32); + auto* output = BuildElementWiseBinary( + scope, builder, ElementWiseBinaryKind::kAdd, input0, input1); + auto [graph, exception] = BuildGraph(scope, builder, {{"output", output}}); + ASSERT_NE(graph, nullptr); + auto* xnnpack_graph = static_cast<MLGraphXnnpack*>(graph.Get()); + { + // Test invoking XNNPACK Runtimbe object twice with the same buffers. + auto input0_buffer = + CreateArrayBufferViewForOperand<float>(input0, {1.0, 2.0, 3.0, 4.0}); + auto input1_buffer = + CreateArrayBufferViewForOperand<float>(input1, {5.0, 6.0, 7.0, 8.0}); + auto output_buffer = CreateArrayBufferViewForOperand(output); + MLNamedArrayBufferViews inputs = {{"input0", input0_buffer}, + {"input1", input1_buffer}}; + MLNamedArrayBufferViews outputs = {{"output", output_buffer}}; + auto* compute_exception = ComputeGraph(scope, graph, inputs, outputs); + EXPECT_EQ(compute_exception, nullptr); + CheckExternalValues(xnnpack_graph, inputs, outputs); + auto results = GetArrayBufferViewValues<float>(output_buffer); + EXPECT_EQ(results, Vector<float>({6.0, 8.0, 10.0, 12.0})); + compute_exception = ComputeGraph(scope, graph, inputs, outputs); + EXPECT_EQ(compute_exception, nullptr); + CheckExternalValues(xnnpack_graph, inputs, outputs); + results = GetArrayBufferViewValues<float>(output_buffer); + EXPECT_EQ(results, Vector<float>({6.0, 8.0, 10.0, 12.0})); + } + { + // Test invoking XNNPACK Runtimbe object twice with the same buffers, but + // for each invocation the buffers are set to different values. + auto input0_buffer = + CreateArrayBufferViewForOperand<float>(input0, {1.0, 2.0, 3.0, 4.0}); + auto input1_buffer = + CreateArrayBufferViewForOperand<float>(input1, {5.0, 6.0, 7.0, 8.0}); + auto output_buffer = CreateArrayBufferViewForOperand(output); + MLNamedArrayBufferViews inputs = {{"input0", input0_buffer}, + {"input1", input1_buffer}}; + MLNamedArrayBufferViews outputs = {{"output", output_buffer}}; + auto* compute_exception = ComputeGraph(scope, graph, inputs, outputs); + EXPECT_EQ(compute_exception, nullptr); + CheckExternalValues(xnnpack_graph, inputs, outputs); + auto results = GetArrayBufferViewValues<float>(output_buffer); + EXPECT_EQ(results, Vector<float>({6.0, 8.0, 10.0, 12.0})); + SetArrayBufferViewValues<float>(input0_buffer, {2.0, 3.0, 4.0, 5.0}); + SetArrayBufferViewValues<float>(input1_buffer, {6.0, 7.0, 8.0, 9.0}); + compute_exception = ComputeGraph(scope, graph, inputs, outputs); + EXPECT_EQ(compute_exception, nullptr); + CheckExternalValues(xnnpack_graph, inputs, outputs); + results = GetArrayBufferViewValues<float>(output_buffer); + EXPECT_EQ(results, Vector<float>({8.0, 10.0, 12.0, 14.0})); + } + { + // Test invoking XNNPACK Runtimbe object twice with different input buffers. + auto input0_buffer = + CreateArrayBufferViewForOperand<float>(input0, {1.0, 2.0, 3.0, 4.0}); + auto input1_buffer = + CreateArrayBufferViewForOperand<float>(input1, {5.0, 6.0, 7.0, 8.0}); + auto output_buffer = CreateArrayBufferViewForOperand(output); + MLNamedArrayBufferViews inputs = {{"input0", input0_buffer}, + {"input1", input1_buffer}}; + MLNamedArrayBufferViews outputs = {{"output", output_buffer}}; + auto* compute_exception = ComputeGraph(scope, graph, inputs, outputs); + EXPECT_EQ(compute_exception, nullptr); + CheckExternalValues(xnnpack_graph, inputs, outputs); + auto results = GetArrayBufferViewValues<float>(output_buffer); + EXPECT_EQ(results, Vector<float>({6.0, 8.0, 10.0, 12.0})); + auto new_input0_buffer = + CreateArrayBufferViewForOperand<float>(input0, {2.0, 3.0, 4.0, 5.0}); + auto new_input1_buffer = + CreateArrayBufferViewForOperand<float>(input1, {6.0, 7.0, 8.0, 9.0}); + inputs = {{"input0", new_input0_buffer}, {"input1", new_input1_buffer}}; + compute_exception = ComputeGraph(scope, graph, inputs, outputs); + EXPECT_EQ(compute_exception, nullptr); + CheckExternalValues(xnnpack_graph, inputs, outputs); + results = GetArrayBufferViewValues<float>(output_buffer); + EXPECT_EQ(results, Vector<float>({8.0, 10.0, 12.0, 14.0})); + } + { + // Test invoking XNNPACK Runtimbe object twice with different output buffer. + auto input0_buffer = + CreateArrayBufferViewForOperand<float>(input0, {1.0, 2.0, 3.0, 4.0}); + auto input1_buffer = + CreateArrayBufferViewForOperand<float>(input1, {5.0, 6.0, 7.0, 8.0}); + auto output_buffer = CreateArrayBufferViewForOperand(output); + MLNamedArrayBufferViews inputs = {{"input0", input0_buffer}, + {"input1", input1_buffer}}; + MLNamedArrayBufferViews outputs = {{"output", output_buffer}}; + auto* compute_exception = ComputeGraph(scope, graph, inputs, outputs); + EXPECT_EQ(compute_exception, nullptr); + CheckExternalValues(xnnpack_graph, inputs, outputs); + auto results = GetArrayBufferViewValues<float>(output_buffer); + EXPECT_EQ(results, Vector<float>({6.0, 8.0, 10.0, 12.0})); + auto new_output_buffer = CreateArrayBufferViewForOperand(output); + outputs = {{"output", new_output_buffer}}; + compute_exception = ComputeGraph(scope, graph, inputs, outputs); + EXPECT_EQ(compute_exception, nullptr); + CheckExternalValues(xnnpack_graph, inputs, outputs); + results = GetArrayBufferViewValues<float>(new_output_buffer); + EXPECT_EQ(results, Vector<float>({6.0, 8.0, 10.0, 12.0})); + } +} + +// Test invoking XNNPACK Runtimbe object when input and output use the same +// name. +TEST_P(MLGraphXnnpackTest, InputAndOutputUseSameNameTest) { + V8TestingScope scope; + auto* builder = CreateMLGraphBuilder(scope); + Vector<uint32_t> shape({1, 2, 2, 1}); + { + // Create an MLGraphXnnpack with the following topology: + // [x] + // | + // relu + // | + // [x] + auto* input = + BuildInput(scope, builder, "x", shape, V8MLOperandType::Enum::kFloat32); + auto* output = builder->relu(input, scope.GetExceptionState()); + auto [graph, exception] = BuildGraph(scope, builder, {{"x", output}}); + ASSERT_NE(graph, nullptr); + auto* xnnpack_graph = static_cast<MLGraphXnnpack*>(graph.Get()); + auto input_buffer = + CreateArrayBufferViewForOperand<float>(input, {-10.0, -0.5, 0.5, 10.0}); + auto output_buffer = CreateArrayBufferViewForOperand(output); + MLNamedArrayBufferViews inputs = {{"x", input_buffer}}; + MLNamedArrayBufferViews outputs = {{"x", output_buffer}}; + auto* compute_exception = ComputeGraph(scope, graph, inputs, outputs); + EXPECT_EQ(compute_exception, nullptr); + CheckExternalValues(xnnpack_graph, inputs, outputs); + auto results = GetArrayBufferViewValues<float>(output_buffer); + EXPECT_EQ(results, Vector<float>({0.0, 0.0, 0.5, 10.0})); + } + { + // Create an MLGraphXnnpack with the following topology: + // [x] [y] + // \ / + // add + // | + // [y] + auto* input0 = + BuildInput(scope, builder, "x", shape, V8MLOperandType::Enum::kFloat32); + auto* input1 = + BuildInput(scope, builder, "y", shape, V8MLOperandType::Enum::kFloat32); + auto* output = BuildElementWiseBinary( + scope, builder, ElementWiseBinaryKind::kAdd, input0, input1); + auto [graph, exception] = BuildGraph(scope, builder, {{"y", output}}); + ASSERT_NE(graph, nullptr); + auto* xnnpack_graph = static_cast<MLGraphXnnpack*>(graph.Get()); + auto input0_buffer = + CreateArrayBufferViewForOperand<float>(input0, {1.0, 2.0, 3.0, 4.0}); + auto input1_buffer = + CreateArrayBufferViewForOperand<float>(input1, {5.0, 6.0, 7.0, 8.0}); + auto output_buffer = CreateArrayBufferViewForOperand(output); + MLNamedArrayBufferViews inputs = {{"x", input0_buffer}, + {"y", input1_buffer}}; + MLNamedArrayBufferViews outputs = {{"y", output_buffer}}; + auto* compute_exception = ComputeGraph(scope, graph, inputs, outputs); + EXPECT_EQ(compute_exception, nullptr); + CheckExternalValues(xnnpack_graph, inputs, outputs); + auto results = GetArrayBufferViewValues<float>(output_buffer); + EXPECT_EQ(results, Vector<float>({6.0, 8.0, 10.0, 12.0})); + } +} + +// TODO(crbug.com/1273291): Test the async execution mode once the +// MLGraphXnnpack implements it. INSTANTIATE_TEST_SUITE_P(All, MLGraphXnnpackTest, - ::testing::Values(ExecutionMode::kAsync, - ExecutionMode::kSync), + ::testing::Values(ExecutionMode::kSync), ExecutionModeParamToString); } // namespace blink
diff --git a/third_party/blink/renderer/platform/heap/member.h b/third_party/blink/renderer/platform/heap/member.h index d340300..0854ac7 100644 --- a/third_party/blink/renderer/platform/heap/member.h +++ b/third_party/blink/renderer/platform/heap/member.h
@@ -128,15 +128,6 @@ static PeekOutType Peek(const MemberType& value) { return value; } - static IteratorReferenceType GetToReferenceConversion(IteratorGetType x) { - return *x; - } - - static IteratorConstReferenceType GetToReferenceConstConversion( - IteratorConstGetType x) { - return *x; - } - template <typename U> static void Store(const U& value, MemberType& storage) { storage = value;
diff --git a/third_party/blink/renderer/platform/heap/persistent.h b/third_party/blink/renderer/platform/heap/persistent.h index d189aaa8..5f66ae73e 100644 --- a/third_party/blink/renderer/platform/heap/persistent.h +++ b/third_party/blink/renderer/platform/heap/persistent.h
@@ -99,13 +99,6 @@ using IteratorConstGetType = const PersistentType*; using IteratorReferenceType = PersistentType&; using IteratorConstReferenceType = const PersistentType&; - static IteratorReferenceType GetToReferenceConversion(IteratorGetType x) { - return *x; - } - static IteratorConstReferenceType GetToReferenceConstConversion( - IteratorConstGetType x) { - return *x; - } using PeekOutType = T*;
diff --git a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc index 60ad947..989a6277 100644 --- a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc +++ b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc
@@ -1150,7 +1150,8 @@ // https://bugs.chromium.org/p/libyuv/issues/detail?id=845 media::PaintCanvasVideoRenderer::ConvertVideoFrameToRGBPixels( frame.get(), rgba_8888, frame->visible_rect().width() * 4, - premultiply_alpha, media::PaintCanvasVideoRenderer::kFilterBilinear); + premultiply_alpha, media::PaintCanvasVideoRenderer::kFilterBilinear, + /*disable_threading=*/true); if (save_top_row) { base::ranges::copy(previous_last_decoded_row_, rgba_8888);
diff --git a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc index 9b880904..4f446bd 100644 --- a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc +++ b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc
@@ -10,8 +10,13 @@ #include <utility> #include <vector> +#include "base/barrier_closure.h" #include "base/bit_cast.h" +#include "base/functional/bind.h" #include "base/strings/stringprintf.h" +#include "base/synchronization/waitable_event.h" +#include "base/task/thread_pool.h" +#include "base/test/task_environment.h" #include "media/media_buildflags.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.h" @@ -726,6 +731,24 @@ EXPECT_NEAR(decoded_pixel.z(), 0, kMinError); // B } +void DecodeTask(const SharedBuffer* data, base::RepeatingClosure* done) { + std::unique_ptr<ImageDecoder> decoder = CreateAVIFDecoder(); + + scoped_refptr<SharedBuffer> data_copy = SharedBuffer::Create(); + data_copy->Append(*data); + decoder->SetData(std::move(data_copy), true); + + EXPECT_TRUE(decoder->IsSizeAvailable()); + EXPECT_FALSE(decoder->Failed()); + EXPECT_EQ(decoder->FrameCount(), 1u); + ImageFrame* frame = decoder->DecodeFrameBufferAtIndex(0); + ASSERT_TRUE(frame); + EXPECT_EQ(ImageFrame::kFrameComplete, frame->GetStatus()); + EXPECT_FALSE(decoder->Failed()); + + done->Run(); +} + } // namespace TEST(AnimatedAVIFTests, ValidImages) { @@ -1030,6 +1053,43 @@ } } +// Reproduces crbug.com/1402841. Decodes a large AVIF image 104 times in +// parallel from base::ThreadPool. Should not cause temporary deadlock of +// base::ThreadPool. +TEST(StaticAVIFTests, ParallelDecoding) { + // The base::test::TaskEnvironment constructor creates a base::ThreadPool + // instance with 4 foreground threads. The number 4 comes from the + // test::TaskEnvironment::kNumForegroundThreadPoolThreads constant. + base::test::TaskEnvironment task_environment; + + // This test image is fast to decode (all neutral gray pixels) and its + // allocation size is large enough to cause + // media::PaintCanvasVideoRenderer::ConvertVideoFrameToRGBPixels() to pick + // n_tasks > 1 if AVIFImageDecoder did not pass disable_threading=true to it. + scoped_refptr<SharedBuffer> data = + ReadFile("/images/resources/avif/gray1024x704.avif"); + ASSERT_TRUE(data.get()); + + // Task timeout in tests is 30 seconds (see https://crrev.com/c/1949028). + // Four blocking tasks cause a temporary deadlock (1.2 seconds) of + // base::ThreadPool, so we need at least 30 / 1.2 * 4 = 100 decodes for the + // test to time out without the bug fix. We add a margin of 4 decodes, i.e., + // (30 / 1.2 + 1) * 4 = 104. + const size_t n_decodes = 104; + base::WaitableEvent event; + base::RepeatingClosure barrier = base::BarrierClosure( + n_decodes, + base::BindOnce(&base::WaitableEvent::Signal, base::Unretained(&event))); + + for (size_t i = 0; i < n_decodes; ++i) { + base::ThreadPool::PostTask( + FROM_HERE, + base::BindOnce(DecodeTask, base::Unretained(data.get()), &barrier)); + } + + event.Wait(); +} + TEST(StaticAVIFTests, AlphaHasNoIspeProperty) { std::unique_ptr<ImageDecoder> decoder = CreateAVIFDecoder(); decoder->SetData(ReadFile("/images/resources/avif/green-no-alpha-ispe.avif"),
diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h index e5d135c9..fe32713 100644 --- a/third_party/blink/renderer/platform/wtf/hash_table.h +++ b/third_party/blink/renderer/platform/wtf/hash_table.h
@@ -360,7 +360,7 @@ return position_; } typename Traits::IteratorConstReferenceType operator*() const { - return Traits::GetToReferenceConstConversion(Get()); + return *Get(); } GetType operator->() const { return Get(); } @@ -501,9 +501,7 @@ // default copy, assignment and destructor are OK GetType Get() const { return const_cast<GetType>(iterator_.Get()); } - typename Traits::IteratorReferenceType operator*() const { - return Traits::GetToReferenceConversion(Get()); - } + typename Traits::IteratorReferenceType operator*() const { return *Get(); } GetType operator->() const { return Get(); } iterator& operator++() { @@ -2260,7 +2258,7 @@ return const_cast<GetType>(SourceGetType(impl_.Get())); } typename Traits::IteratorConstReferenceType operator*() const { - return Traits::GetToReferenceConstConversion(Get()); + return *Get(); } GetType operator->() const { return Get(); } @@ -2305,9 +2303,7 @@ GetType Get() const { return const_cast<GetType>(SourceGetType(impl_.get())); } - typename Traits::IteratorReferenceType operator*() const { - return Traits::GetToReferenceConversion(Get()); - } + typename Traits::IteratorReferenceType operator*() const { return *Get(); } GetType operator->() const { return Get(); } HashTableIteratorAdapter& operator++() {
diff --git a/third_party/blink/renderer/platform/wtf/hash_traits.h b/third_party/blink/renderer/platform/wtf/hash_traits.h index 31710543..812e3693 100644 --- a/third_party/blink/renderer/platform/wtf/hash_traits.h +++ b/third_party/blink/renderer/platform/wtf/hash_traits.h
@@ -131,13 +131,6 @@ typedef const T* IteratorConstGetType; typedef T& IteratorReferenceType; typedef const T& IteratorConstReferenceType; - static IteratorReferenceType GetToReferenceConversion(IteratorGetType x) { - return *x; - } - static IteratorConstReferenceType GetToReferenceConstConversion( - IteratorConstGetType x) { - return *x; - } template <typename IncomingValueType> static void Store(IncomingValueType&& value, T& storage) { @@ -273,13 +266,6 @@ typedef const scoped_refptr<P>* IteratorConstGetType; typedef scoped_refptr<P>& IteratorReferenceType; typedef const scoped_refptr<P>& IteratorConstReferenceType; - static IteratorReferenceType GetToReferenceConversion(IteratorGetType x) { - return *x; - } - static IteratorConstReferenceType GetToReferenceConstConversion( - IteratorConstGetType x) { - return *x; - } static void Store(scoped_refptr<P> value, scoped_refptr<P>& storage) { storage = std::move(value);
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 7d7d3f7..7513d7f7 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -3006,6 +3006,27 @@ 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 external/wpt/css/css-text/text-group-align/text-group-align-center-vlr.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/text-group-align/text-group-align-center.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/text-group-align/text-group-align-end-vlr.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/text-group-align/text-group-align-end.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/text-group-align/text-group-align-left-vlr.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/text-group-align/text-group-align-left.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/text-group-align/text-group-align-right-vlr.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/text-group-align/text-group-align-right.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/text-group-align/text-group-align-start-vlr.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/text-group-align/text-group-align-start.html [ Failure ] +crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-transforms/animation/canvas-webgl-translate-in-animation.html [ Timeout ] +crbug.com/626703 [ Mac12-arm64 ] external/wpt/css/css-transforms/animation/canvas-webgl-translate-in-animation.html [ Timeout ] +crbug.com/626703 [ Mac11-arm64 ] external/wpt/density-size-correction/density-corrected-image-in-canvas.html [ Timeout ] +crbug.com/626703 [ Mac12-arm64 ] external/wpt/density-size-correction/density-corrected-image-in-canvas.html [ Timeout ] +crbug.com/626703 [ Mac11-arm64 ] virtual/fenced-frame-mparch/wpt_internal/fenced_frame/background-sync.https.html [ Timeout ] +crbug.com/626703 [ Mac12-arm64 ] virtual/fenced-frame-mparch/wpt_internal/fenced_frame/background-sync.https.html [ Timeout ] +crbug.com/626703 [ Mac11-arm64 ] virtual/threaded/external/wpt/css/css-transforms/animation/canvas-webgl-translate-in-animation.html [ Timeout ] +crbug.com/626703 [ Mac12-arm64 ] virtual/threaded/external/wpt/css/css-transforms/animation/canvas-webgl-translate-in-animation.html [ Timeout ] +crbug.com/626703 [ Mac11-arm64 ] wpt_internal/webxr/ar/iframe-oopif.sub.https.html [ Timeout ] +crbug.com/626703 [ Mac12-arm64 ] wpt_internal/webxr/ar/iframe-oopif.sub.https.html [ Timeout ] +crbug.com/626703 [ Mac12 ] external/wpt/html/cross-origin-opener-policy/resource-popup.https.html [ Timeout ] crbug.com/626703 external/wpt/webcodecs/videoFrame-serialization.crossAgentCluster.html [ Timeout ] crbug.com/626703 [ Linux ] external/wpt/resource-timing/response-status-code.html [ Skip Timeout ] crbug.com/626703 [ Win ] external/wpt/resource-timing/response-status-code.html [ Skip Timeout ] @@ -6786,6 +6807,8 @@ # TODO(crbug.com/1401396): Re-enable this test external/wpt/webrtc/simulcast/setParameters-active.https.html [ Pass Timeout ] +# Temporarily disable to unblock WebRTC roll. Two of the expectations will go from FAIL to PASS. +crbug.com/webrtc/14175 external/wpt/webrtc/RTCRtpReceiver-getStats.https.html [ Pass Failure ] # image-set() failures (sheriff 2022-12-16) external/wpt/css/css-images/image-set/image-set-empty-url-rendering.html [ Failure Pass ] @@ -6817,4 +6840,4 @@ crbug.com/1404614 [ Mac ] external/wpt/url/url-setters-a-area.window.html?exclude=(file|javascript|mailto) [ Failure Pass ] # Sheriff 2023-01-04 -crbug.com/1404951 external/wpt/credential-management/fedcm-network-requests.https.html [ Timeout Pass ] +crbug.com/1404951 external/wpt/credential-management/fedcm-network-requests.https.html [ Pass Timeout ]
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 5c29c39e..40c2d3f6 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
@@ -1335,6 +1335,13 @@ } }, "content-visibility": { + "content-visibility-auto-selection-crash.html": [ + "4cfe62eaca276dbd07f0d049e1d77b23ba898b65", + [ + null, + {} + ] + ], "content-visibility-continuations-crash.html": [ "e20d26fceedfc0071c61750776afa62c346d308e", [ @@ -2737,6 +2744,13 @@ ] }, "css-nesting": { + "delete-other-rule-crash.html": [ + "bde7c554e8f1cceb4e4dc58d549e0c7bc9a264be", + [ + null, + {} + ] + ], "implicit-parent-insertion-crash.html": [ "4be1e1c8f9ed31c386c70bd8744219346ef4637e", [ @@ -120332,6 +120346,32 @@ {} ] ], + "font-size-adjust-order-001.html": [ + "a8b56a3083f31e90cbbdee507f263cc884db6c66", + [ + null, + [ + [ + "/css/css-fonts/font-size-adjust-order-001-ref.html", + "==" + ] + ], + {} + ] + ], + "font-size-adjust-units-001.html": [ + "4e27ef1116ed7ba48fb5fbc38b49c315eeeef71c", + [ + null, + [ + [ + "/css/css-fonts/font-size-adjust-units-001-ref.html", + "==" + ] + ], + {} + ] + ], "font-size-adjust-zero-1.html": [ "a34a38b570db8fe80b32c29d329cb212a5e72ec5", [ @@ -130341,6 +130381,34 @@ {} ] ] + }, + "track-sizing": { + "masonry-track-sizing-overflow-left-side.html": [ + "cd1b78a47b6d2f9feed861a75ba19b4331c748a1", + [ + null, + [ + [ + "/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-left-side-ref.html", + "==" + ] + ], + {} + ] + ], + "masonry-track-sizing-overflow-right-side.html": [ + "e4c17fd7b7793b23a80d15c4fa1440da21b5ecfb", + [ + null, + [ + [ + "/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-right-side-ref.html", + "==" + ] + ], + {} + ] + ] } } }, @@ -178607,19 +178675,6 @@ {} ] ], - "text-align-008.html": [ - "f1afda9a03c27e4bba3107bfd01511ef52c57db1", - [ - null, - [ - [ - "/css/css-text/text-align/text-align-007-ref.html", - "==" - ] - ], - {} - ] - ], "text-align-center-last-center.html": [ "97c2b7840f6b17985ac80ee59cecf4871ea51f2f", [ @@ -179314,6 +179369,19 @@ {} ] ], + "text-align-match-parent-001.html": [ + "f1afda9a03c27e4bba3107bfd01511ef52c57db1", + [ + null, + [ + [ + "/css/css-text/text-align/text-align-007-ref.html", + "==" + ] + ], + {} + ] + ], "text-align-match-parent-01.html": [ "7560a425ea3f5b351dbdc64d4c7426c630696620", [ @@ -179817,6 +179885,138 @@ ] ] }, + "text-group-align": { + "text-group-align-center-vlr.html": [ + "e18cf34830454a65a42dfe064576ff308b0bf9a0", + [ + null, + [ + [ + "/css/css-text/text-group-align/text-group-align-center-vlr-ref.html", + "==" + ] + ], + {} + ] + ], + "text-group-align-center.html": [ + "e4acc744c28562fa2a897f0990175c0c9623bd99", + [ + null, + [ + [ + "/css/css-text/text-group-align/text-group-align-center-ref.html", + "==" + ] + ], + {} + ] + ], + "text-group-align-end-vlr.html": [ + "1f690b44d313f68d22993f9ca595df88f9a1a1dc", + [ + null, + [ + [ + "/css/css-text/text-group-align/text-group-align-end-vlr-ref.html", + "==" + ] + ], + {} + ] + ], + "text-group-align-end.html": [ + "1929f59ee0d6f19d0242bae8398dc21e6f757330", + [ + null, + [ + [ + "/css/css-text/text-group-align/text-group-align-end-ref.html", + "==" + ] + ], + {} + ] + ], + "text-group-align-left-vlr.html": [ + "4a9ed599b7ff06ef5306294a25515918f794a977", + [ + null, + [ + [ + "/css/css-text/text-group-align/text-group-align-left-vlr-ref.html", + "==" + ] + ], + {} + ] + ], + "text-group-align-left.html": [ + "e74de0e1a807d7300449662ad05c570b89cf0a99", + [ + null, + [ + [ + "/css/css-text/text-group-align/text-group-align-left-ref.html", + "==" + ] + ], + {} + ] + ], + "text-group-align-right-vlr.html": [ + "9f612aa9106d1ae9bf9280ae25bc27dbc7defc47", + [ + null, + [ + [ + "/css/css-text/text-group-align/text-group-align-right-vlr-ref.html", + "==" + ] + ], + {} + ] + ], + "text-group-align-right.html": [ + "688022a5bbfc5f677a10f623d0bdeff7bca41b23", + [ + null, + [ + [ + "/css/css-text/text-group-align/text-group-align-right-ref.html", + "==" + ] + ], + {} + ] + ], + "text-group-align-start-vlr.html": [ + "6dce935f118b7a64065f7267985ea26c102884cb", + [ + null, + [ + [ + "/css/css-text/text-group-align/text-group-align-start-vlr-ref.html", + "==" + ] + ], + {} + ] + ], + "text-group-align-start.html": [ + "0951f2c50ac82c54b1f99bed7a1763479949de2a", + [ + null, + [ + [ + "/css/css-text/text-group-align/text-group-align-start-ref.html", + "==" + ] + ], + {} + ] + ] + }, "text-indent": { "anonymous-flex-item-001.html": [ "0b305fc307be36e5a5d61c4ae686c40b76b8f359", @@ -261126,11 +261326,11 @@ "support": { ".cache": { "gitignore2.json": [ - "29f8bd322490a46bcdcdd73756440d01065ad00d", + "2119e9028efb512ee364384b190cefd11fc6ede4", [] ], "mtime.json": [ - "8d3d8e2196c95692774434e80568c52142dd2580", + "5827e41dd8891f9a7490768b75a6c91a04b8fa9a", [] ] }, @@ -261412,7 +261612,7 @@ [] ], "idbobjectstore_batchGetAll_largeValue.tentative.any.js.ini": [ - "5d511eff9d381582a787724cb7b1d78afbb9b362", + "8378ee77c20adedbcc1e1eb0aa0bdac3fcbcd291", [] ], "resources": { @@ -262366,7 +262566,7 @@ [] ], "playback-rate.https.html.ini": [ - "6cc1e2702190aca88224f2b51bd060b15399ae45", + "cb4ee3514f792720f3701d871684f7db670d61ab", [] ], "references": { @@ -263511,6 +263711,18 @@ "6f46ae913a279b23c8debe1bb2d27e558499f37c", [] ], + "getAvailability": { + "reject_opaque_origin.https.html.headers": [ + "c7e4e7cc5bd3fa25851c1e26c3c04eb95050d94b", + [] + ] + }, + "getDevices": { + "reject_opaque_origin.https.html.headers": [ + "c7e4e7cc5bd3fa25851c1e26c3c04eb95050d94b", + [] + ] + }, "idl": { "idlharness.tentative.https.window-expected.txt": [ "0ad43dafb348853b70d12bb5c960e18b5bc8ff55", @@ -263521,6 +263733,18 @@ [] ] }, + "requestDevice": { + "reject_opaque_origin.https.html.headers": [ + "c7e4e7cc5bd3fa25851c1e26c3c04eb95050d94b", + [] + ] + }, + "requestLEScan": { + "reject_opaque_origin.https.html.headers": [ + "c7e4e7cc5bd3fa25851c1e26c3c04eb95050d94b", + [] + ] + }, "resources": { "bluetooth-fake-devices.js": [ "b718ab579a1822e08d7f9026ceb519eccabca39f", @@ -263535,7 +263759,7 @@ [] ], "health-thermometer-iframe.html": [ - "78774b4d158f6ad69c3161207bc4549d01b3dda5", + "f9f7a6f0d7d9cff3e2c24edba6751292a003f6de", [] ] }, @@ -265235,14 +265459,6 @@ "94e875de071bb838887e77a0bba13b6c0cdbf2b5", [] ], - "idlharness.https.window-expected.txt": [ - "4a4555977a3fe8e968600cc7925501e8f22c9fe1", - [] - ], - "idlharness.https.window.js.ini": [ - "abd6630dacc1a4befafc624651bc05f9c3c3e0e2", - [] - ], "permissions-policy": { "compute-pressure-allowed-by-permissions-policy-attribute-redirect-on-load.https.html.ini": [ "008cc9a7433e5f142fc624313d6127b7864224c0", @@ -266327,7 +266543,7 @@ [] ], "sharedworker-import.http.html.ini": [ - "862676a5970cb7b160e139b4ea072a7888b81913", + "6116a21fc4e7749fc2751c9197322b1ac98fac38", [] ], "sharedworker-import.https-expected.txt": [ @@ -266594,6 +266810,10 @@ "3d47c07320d23e9f61a5faf20eee5119d20d0b8a", [] ], + "history.sub.html.ini": [ + "9728b70673c3922eafeeb1decc0608dd5a1ab388", + [] + ], "iframe-all-local-schemes.sub.html.ini": [ "759ae54e5d7bdae75a5974acef0ff19a3d11f4df", [] @@ -266889,7 +267109,7 @@ [] ], "prefetch-header-allowed.html.ini": [ - "05edd2d5dbf006abbab8e3f902505b39883c4b4f", + "6e7329975c051970ecaa4aca2829e1904f5b07d4", [] ], "prefetch-header-blocked-by-default.html.headers": [ @@ -267825,16 +268045,16 @@ "3ed59de4b9b64c51453b937fcdfd43c5896692f3", [] ], - "cookieListItem_attributes.https.any.js.ini": [ - "6bd74be822f2ed4b9e864bbea8dbcc14236e835d", - [] - ], "cookieStore_get_set_across_origins.sub.https.html.ini": [ "cbb01649c32968e14bbf2f712f7a02ed628fc7fe", [] ], + "cookieStore_set_arguments.https.any.js.ini": [ + "c228d130bcdda92ebccc29ce19ffefda9c018194", + [] + ], "cookieStore_subscribe_arguments.https.any.js.ini": [ - "ced6aca6a7c11717408c84bc79b1ab6b41e3dcd6", + "c6bd59e96c5e108f44bc860ef34de0d4b36ea839", [] ], "resources": { @@ -268306,7 +268526,7 @@ ] }, "fedcm-network-requests.https.html.ini": [ - "12ce602cecbfe3da3820b5c1b611c02d8f99e59f", + "14f5926ca2a04ae196d5790b037cc2bf662c9b2a", [] ], "federatedcredential-framed-get.sub.https-expected.txt": [ @@ -277030,10 +277250,6 @@ "2f6987b7cac6728749fc0c3f308bbb2e8684d276", [] ], - "anchor-position-inline-004.html.ini": [ - "4b68313d9e00e1237cfe7e80e447ef5092f2bdc6", - [] - ], "anchor-position-top-layer-ref.html": [ "dc7f77f2b3441ebee25f3e40a9480b668ee79ea4", [] @@ -277109,7 +277325,7 @@ [] ], "Element-getAnimations-dynamic-changes.tentative.html.ini": [ - "90372850a2b15bec987edeacd277c571fa2bae64", + "02694929677056c713869f66cc6b6381ee7f7098", [] ], "KeyframeEffect-getKeyframes.tentative-expected.txt": [ @@ -277169,11 +277385,11 @@ [] ], "idlharness-expected.txt": [ - "2036d89986205ec04448e7d5bab4d8eb39099fc2", + "f5a629d7414fd33dc1913a2a9a4308209b577ce6", [] ], "idlharness.html.ini": [ - "c676700c037b1a86b6596580dc618aecd3ba2a36", + "f0c5706029832454834d9fac1d7058f141612c1f", [] ], "inheritance-pseudo-element-ref.html": [ @@ -287887,7 +288103,7 @@ [] ], "image-as-flexitem-size-007v.html.ini": [ - "0ef2b0d64488868411a54acb4d11982c06bd85d6", + "88bd2eab6e7f0bfafe6d320b3a9c5ba2ad3096e6", [] ], "interactive": { @@ -289390,6 +289606,14 @@ "ed92a71ebeb760a271b46e34b67acff5ef8f75ca", [] ], + "font-size-adjust-order-001-ref.html": [ + "0c68e1396adf54957271b8c3611d3af4189b0375", + [] + ], + "font-size-adjust-units-001-ref.html": [ + "008c500d08b239192b742fb4e5e4a507d97a9f4a", + [] + ], "font-size-monospace-adjust-ref.html": [ "098fca5ea76ff3dd31633dc1c7c7166fa7cf076a", [] @@ -298661,6 +298885,16 @@ "4750c1899e34d6855203d802b9000179163cb172", [] ] + }, + "track-sizing": { + "masonry-track-sizing-overflow-left-side-ref.html": [ + "5a31517183244d714a18e48bec3e65d890a5434d", + [] + ], + "masonry-track-sizing-overflow-right-side-ref.html": [ + "51e657e2a4292fa97bd2617114509a6bd0ba48d7", + [] + ] } } }, @@ -299190,7 +299424,7 @@ [] ], "subgrid-baseline-002.html.ini": [ - "c8f5d5e48be8ad5beb292de4b0b9e096c087a92d", + "4300e380326adc7f4c7a700306fde72b33e7eb1b", [] ], "subgrid-baseline-003-ref.html": [ @@ -301148,7 +301382,7 @@ [] ], "Initial-letter-breaking-rtl.html.ini": [ - "9451204c3f8e54260349e0a2b1aaf03911bce7bd", + "46ebc05b8e015794e21ad5efbbb278c2a1c4a978", [] ], "Initial-letter-breaking-vlr-ref.html": [ @@ -301164,7 +301398,7 @@ [] ], "Initial-letter-breaking-vrl.html.ini": [ - "e5040afd3078b86080090466669e3b0db6411fad", + "5e2b2a74cc4d9e4f8705bcd7b03560faf6b02136", [] ], "Initial-letter-breaking.html.ini": [ @@ -301232,7 +301466,7 @@ [] ], "initial-letter-block-position-margins.html.ini": [ - "ca081035386879b52323ef148464adcb96c06986", + "902a0ff998628256e4816c17c02c9242b57dc389", [] ], "initial-letter-block-position-raise-over-ruby-ref.html": [ @@ -301264,7 +301498,7 @@ [] ], "initial-letter-block-position-raise-under-ruby.html.ini": [ - "1136475e22104014fed3be82b9c07d8e27771af5", + "eede05d174440899bdc8f37125124321ef974f11", [] ], "initial-letter-computed.html.ini": [ @@ -301288,7 +301522,7 @@ [] ], "initial-letter-drop-initial-vlr.html.ini": [ - "1e3e90322b20750c45315a4553d727d330e621e8", + "984123ce1ba95aaa082597019805d29f51c77e3b", [] ], "initial-letter-drop-initial-vrl-ref.html": [ @@ -301300,7 +301534,7 @@ [] ], "initial-letter-drop-initial.html.ini": [ - "bda49d3ccb569063ca848311b14c11d0f95c0743", + "497ccbc87b10a361c6b9e430069b7a98ab683bcf", [] ], "initial-letter-float-001-ref.html": [ @@ -301320,7 +301554,7 @@ [] ], "initial-letter-float-001-vlr.html.ini": [ - "72b9d1f623146292108a7bcad02e61f0d85da5b0", + "bd18bc07afa5ee270669f57cba44bb0655e9b384", [] ], "initial-letter-float-001-vrl-ref.html": [ @@ -301388,7 +301622,7 @@ [] ], "initial-letter-layout-text-decoration-underline.html.ini": [ - "7b6eb186ade47b702b61254c2e72aeab888433e7", + "6679ea68f5c7d1fd3727277a901eecbbc1bed2e5", [] ], "initial-letter-raise-initial-ref.html": [ @@ -301416,7 +301650,7 @@ [] ], "initial-letter-raise-initial-vrl.html.ini": [ - "4f49317efbbf4f4031cde2ce5db278d585983354", + "1bf7046aff7b0cfc821b8d11522c00f723cf31f6", [] ], "initial-letter-raise-initial.html.ini": [ @@ -301480,7 +301714,7 @@ [] ], "initial-letter-sunk-initial-vrl.html.ini": [ - "77a501b58596bd661170dd5bd74ceaac0d7c228d", + "145423c11791d55ae88c994d027a2d62c7a4c7e1", [] ], "initial-letter-sunk-initial.html.ini": [ @@ -304091,7 +304325,7 @@ [] ], "getclientrects-000.html.ini": [ - "78f81bd358fc69d813a81cd385f5dd52f34cd545", + "44c5cfb6bd9fb600f11bedf1580eeac57562e6aa", [] ], "hit-test-transformed-child.html.ini": [ @@ -305981,17 +306215,13 @@ [] ], "scrollable-overflow-input-001.html.ini": [ - "0fd1d59cb6c19d9b4b5345ed50e850ffaa5eafd8", + "6351a3d300d23195dab2184d6186ddabe934b9f4", [] ], "scrollable-overflow-input-002-ref.html": [ "782ffab9da1c1cb55b4488e7fc8f913dd18857f3", [] ], - "scrollable-overflow-input-002.html.ini": [ - "6e03ac5f353bb60fc0f81f763375e7aac0cbbbd1", - [] - ], "scrollable-overflow-padding.html.ini": [ "6eed083f037d166b20a812075b8f16cf47d19183", [] @@ -306557,7 +306787,7 @@ [] ], "parse-input-arguments-018.https.html.ini": [ - "44bac5302b65c8d9f1907e6c029154a6fd30f0cd", + "21e3049291e42e35c5677278dee44fcdbf0635f3", [] ], "parse-input-arguments-019.https.html.ini": [ @@ -306594,6 +306824,10 @@ "b2b188736e5d8414f75f2c1a0f369c78f6dcbcef", [] ], + "setTransform-001.https.html.ini": [ + "6af47e05f38f207396a4161ba934ed079003a815", + [] + ], "setTransform-003.https.html.ini": [ "d0efa93db40ca63414b4f80a9ad702f62aac1e15", [] @@ -307583,11 +307817,11 @@ [] ], "registered-property-cssom-expected.txt": [ - "e4c9ae0a79284fc18c3e3c37a5bfdbc78a03b642", + "41455cdf06d3c72799b5ccf57cf4e74a89aade9f", [] ], "registered-property-cssom.html.ini": [ - "8a56b75e9a8171943f2cba156b44b2a3c50a16a7", + "d1d9acd1e5c11785ce2e48d47549947ef16b7eab", [] ], "resources": { @@ -309340,10 +309574,6 @@ "1bb4386e7abfb468de92edcb9a2633d5ceb96174", [] ], - "ruby-text-combine-upright-002a.html.ini": [ - "894ea23afe9741293f87e2b20eecbc56dacc8921", - [] - ], "ruby-text-combine-upright-002b.html.ini": [ "626dae64840efc0302b1f4550d606d467037bced", [] @@ -316000,6 +316230,102 @@ [] ] }, + "text-group-align": { + "support": { + "fake-group-align.css": [ + "d1a7d1aab077cc447167209d5e7878e7e7f3f654", + [] + ], + "test-helpers.css": [ + "d79e79cd86d46096f75632c0ad76efe561c82ef4", + [] + ], + "test-helpers.js": [ + "27b6a7baf160b6a6ebcd14ccc7f51c56b930c15c", + [] + ] + }, + "text-group-align-center-ref.html": [ + "919747cebb95bccca2c6f9256997a16b9eb330b9", + [] + ], + "text-group-align-center-vlr-ref.html": [ + "6b74aac823bbf5ca0974fb4fac352f9a67617f81", + [] + ], + "text-group-align-center-vlr.html.ini": [ + "e745a34ece80017ab4a4fca7ef2bc909c319515a", + [] + ], + "text-group-align-center.html.ini": [ + "cb703fd56d29845b0e11f9e269a535551b689271", + [] + ], + "text-group-align-end-ref.html": [ + "2c8d2da99d9c5e2a78a2e15c6ff3375578dc7806", + [] + ], + "text-group-align-end-vlr-ref.html": [ + "9ea04f6c6de06b5cb5a938f1c9410caf6de92135", + [] + ], + "text-group-align-end-vlr.html.ini": [ + "9b7c668c224d1427a11973f292993af7c73140c7", + [] + ], + "text-group-align-end.html.ini": [ + "181d3b1f66ccd5dd3ea700c5b4898b22b42bc26f", + [] + ], + "text-group-align-left-ref.html": [ + "f04180608ad05194476268e8e72af835b06f6220", + [] + ], + "text-group-align-left-vlr-ref.html": [ + "a7df839259bcad0c79fdcf05a752981e7f0d5804", + [] + ], + "text-group-align-left-vlr.html.ini": [ + "b25086d95a0669f36b90a3e4c958383b21fdaa9e", + [] + ], + "text-group-align-left.html.ini": [ + "91966281efd78aa1865395c5bf5b4ba4fea1799d", + [] + ], + "text-group-align-right-ref.html": [ + "1b11e6183661e4bea157c161c7eaad6196b5abf4", + [] + ], + "text-group-align-right-vlr-ref.html": [ + "5bfe0a766ad9adbee87dd9500601b5bba7eabb02", + [] + ], + "text-group-align-right-vlr.html.ini": [ + "b4d729f337dddd33411b718c8f36703e6222d8e3", + [] + ], + "text-group-align-right.html.ini": [ + "fe721b69bbbfcab14bf217deca6546927481a33a", + [] + ], + "text-group-align-start-ref.html": [ + "4c57fcbdcdc88e88cb1204b51e9aacd65d48d364", + [] + ], + "text-group-align-start-vlr-ref.html": [ + "051c622bb4bbe3ac7cfd36281222a17994384f26", + [] + ], + "text-group-align-start-vlr.html.ini": [ + "a1ebbbf4ef3d1117614e735d086061a893eabf57", + [] + ], + "text-group-align-start.html.ini": [ + "6de7b74d9b37f63fbc9cde941ba64cf13ad8f979", + [] + ] + }, "text-indent": { "reference": { "anonymous-flex-grid-item-001-ref.html": [ @@ -316626,11 +316952,15 @@ ] }, "text-transform-capitalize-001.html.ini": [ - "83483d77631ebaa0a77a19d292f9ff840793b675", + "8b9bfa40f90d4c1d006a0f75f24a3a31bacd69bd", [] ], "text-transform-capitalize-003.html.ini": [ - "38e66a2dc4a6c69a3dd79df3f84abe55bd072294", + "b989cd58434ad1c2651edd89edb3b96331cff4bd", + [] + ], + "text-transform-capitalize-005.html.ini": [ + "c06d2b0fcf72d84e5512352f5f74279544c73498", [] ], "text-transform-capitalize-007.html.ini": [ @@ -316641,12 +316971,16 @@ "892a514c8de51b620ba30af9b89244aaa370327e", [] ], + "text-transform-capitalize-014.html.ini": [ + "f0b7504e565abdf6d671ad61ed287bc662140cf7", + [] + ], "text-transform-capitalize-016.html.ini": [ "869d3178e27f1539e32ecd49339a5d6b2db5956f", [] ], "text-transform-capitalize-018.html.ini": [ - "87e51404e16bbebfa59694f95dfaa34426e0f4b4", + "c1e2194aeb0292472cc9aa12358f6b1d4f62de7c", [] ], "text-transform-capitalize-026.html.ini": [ @@ -321740,6 +322074,14 @@ "fa11815c34456b23ec7f2cecba409d20e8d156f1", [] ], + "block-size-expected.txt": [ + "206ec0c54c6990036b2f166294a9acb1f3f09613", + [] + ], + "block-size.html.ini": [ + "7384c11e28812eb1bd05475ec49e3de948035d13", + [] + ], "border-image-outset-expected.txt": [ "544158d5314751036f5a833009fecfbf7a57a7e6", [] @@ -321832,6 +322174,30 @@ "dbe8cc535f4a5550e9be13173890262a04459ce2", [] ], + "flex-basis-expected.txt": [ + "2e977c2f5dc1d3ef3c95242502341702b0c62d49", + [] + ], + "flex-basis.html.ini": [ + "62c3e2c0da0f47cc8da2da9eefc1d4cdf2d5ff13", + [] + ], + "flex-grow-expected.txt": [ + "27e9785950101070e12050a69fb9476df45c9e57", + [] + ], + "flex-grow.html.ini": [ + "d8f6e47a26a6ce96afa14aff4dc14e539c8d53ac", + [] + ], + "flex-shrink-expected.txt": [ + "6c4448181680165ff9ee830c94bd031c050f5cc9", + [] + ], + "flex-shrink.html.ini": [ + "5c7a77092388973734be3539584e720418fad159", + [] + ], "flood-opacity-expected.txt": [ "3bbcaf4990f69584471cb3b3dfa3ef5f2d637626", [] @@ -321864,6 +322230,14 @@ "f7ae7751fdf7f2b3434395517518f65e2a696a65", [] ], + "font-size-adjust-expected.txt": [ + "163d9cdc0309c7f952b2f8d9a709336b336a157a", + [] + ], + "font-size-adjust.html.ini": [ + "64e92c75075f0184164479c1a354a368f49b5236", + [] + ], "font-size-expected.txt": [ "70b3fbdabab2752d8cd5f6499ab4e13740a51d0d", [] @@ -321873,7 +322247,7 @@ [] ], "font-stretch-expected.txt": [ - "7a061b485b31c4060cacbf19704fcbae1b5485dd", + "52cbbc41877a52075d76a284fc60486ead715fd3", [] ], "font-stretch.html.ini": [ @@ -321912,6 +322286,14 @@ "2299fec2a724c653fd04c1058db1c2c3ab20cf44", [] ], + "gap-expected.txt": [ + "b522f1f81779c3059494757822d72e5a22b5d13a", + [] + ], + "gap.html.ini": [ + "0addf0e29d58c2e5e96994353a8338c8374af6a8", + [] + ], "grid-auto-columns-rows-expected.txt": [ "d784e94f1e25a902d6d6d81c9504e57f8105b592", [] @@ -321960,14 +322342,6 @@ "65e308f89b3cdcca101594d52672619711934331", [] ], - "letter-spacing-expected.txt": [ - "fc2c9333460bb16ffa4d8341ca0a5969938ec182", - [] - ], - "letter-spacing.html.ini": [ - "3f3e4c7e76f8bc3d840b969b274d9c8a28213200", - [] - ], "line-height-expected.txt": [ "9fd526acde4856fe0ddc4ac7ed5224ce4321f09f", [] @@ -322134,6 +322508,14 @@ "173fcd7d1f056ef4dc289da0dab561fcc0957fec", [] ], + "shape-margin-expected.txt": [ + "e1dac7fcc191ee59e2b7d25263d46f4355758a86", + [] + ], + "shape-margin.html.ini": [ + "1325fffddd125e0e49e1caa0e0fc940eb6e3ac48", + [] + ], "shape-outside-expected.txt": [ "bc8c5b78739f1412df6f63b0bf4aa6eb29d72222", [] @@ -322310,6 +322692,14 @@ "5130c07d0d2b7ec9f7846ae98c36ca0fbd378bba", [] ], + "width-expected.txt": [ + "310989396a549f891c8377d08e7ecca777137850", + [] + ], + "width.html.ini": [ + "c6c0b0a6bc45138cf8ac64a06271595971d17298", + [] + ], "word-spacing-expected.txt": [ "5c446c816a27ce4a6cdebca27bffa1ff1d53460d", [] @@ -330593,11 +330983,11 @@ [] ], "idlharness-expected.txt": [ - "b1725607ca99168f686e617b774afab082102936", + "8001b22951eb4ea522ed7856745f5186c52c7c44", [] ], "idlharness.html.ini": [ - "8f5c2762a1cf5ae4231890743ec976e8f27f27f1", + "6e3277406bb2b98cfbe7328de8f01b03679053d3", [] ], "iframe.html": [ @@ -330658,10 +331048,6 @@ "d5fe958db40f7f781b73cd31f82757a981f171da", [] ], - "scroll-behavior-main-frame-window.html.ini": [ - "dc6759f838e3e537aaf4ef03c47c3b52e1458640", - [] - ], "scroll-behavior-scrollintoview-nested.html.ini": [ "2bfa1166f1dae5798d20be4cde49808b376cfd6d", [] @@ -332382,7 +332768,7 @@ [] ], "has-complexity.html.ini": [ - "abe15aeacde200f0388f4f5429cb6dcc5498773e", + "c58a580bf38b9de40c071eeffddf9a7a42280983", [] ], "logical-combinations-in-has-expected.txt": [ @@ -332872,6 +333258,10 @@ "e8d3a523477e11650bea357b1e891faa1a3d9e26", [] ], + "delete-other-rule-crash.css": [ + "13f5d6acf006d3ee655a7821d7e9468310fc0f08", + [] + ], "green.ico": [ "691f61166f0d8f3c51d8e6441c9584c858223686", [] @@ -333158,10 +333548,6 @@ "d26dc7f131b91cd452355a6259d0baff7aaffc5c", [] ], - "ElementInternals-target-element-is-held-strongly.html.ini": [ - "fdce5ad83e1ee4393bd7eff4269cd10b729f35a0", - [] - ], "ElementInternals-validation-expected.txt": [ "ed5a28ed1e0622c5fb7749d1ed189191ed746998", [] @@ -334095,7 +334481,7 @@ [] ], "EventListener-incumbent-global-2.sub.html.ini": [ - "f7633f9781262ce61c8387b522dc5dd4e07b723e", + "fe841b994ae87561b29461c29866187b7329d53b", [] ], "EventListener-incumbent-global-subframe-1.sub.html": [ @@ -334782,14 +335168,6 @@ "2657bb761955202e50cd65f00431fdc415a09eb3", [] ], - "Range-mutations-dataChange.html.ini": [ - "c1f1d46ce54df403fe78ec637233281dbb7e2fef", - [] - ], - "Range-mutations-deleteData.html.ini": [ - "8a4d2feb07a10de291aaf74a7996c09fef195942", - [] - ], "Range-mutations-insertData.html.ini": [ "68d21f87b4c182cc3cf799202ad5c108fd19f577", [] @@ -336273,7 +336651,7 @@ [] ], "formatblock.html.ini": [ - "cf2a6f46cc2706010a1b8f94a9ce7e9176ca2784", + "8247fe6b6b711d75c510c855a63b8d0fd0023edc", [] ], "formatblock_1-1000-expected.txt": [ @@ -336613,7 +336991,7 @@ [] ], "removeformat.html.ini": [ - "e938d3adb87c29a2a33cb1ccd7ca4a3db3237830", + "3515b068077074c4786e086ab2d99038803b10a2", [] ], "strikethrough.html.ini": [ @@ -336676,7 +337054,7 @@ [] ], "image-src-change.html.ini": [ - "23803ef3a129782dacf4440beb982386608de5ac", + "f090197a3ee0516c717cc6d31208947ba1e608aa", [] ], "images-repeated-resource.html.ini": [ @@ -336931,10 +337309,6 @@ "742519bd05366561b598d57fd19ca8b859e6a6cc", [] ], - "iso2022jp-decode.html.ini": [ - "6f52998fafee1951702b906b6c79dd09c58bcf35", - [] - ], "iso2022jp-decoder.js": [ "f4bcd863ef54f9aaa907e5da4bf3c5857f5adb8f", [] @@ -337700,7 +338074,7 @@ [] ], "unsupported-labels.window.js.ini": [ - "450e960b98d0e4b0d49c321f740d312acdb15b08", + "c967c0a2dec75056a76da2b1e151372d540fa120", [] ] }, @@ -337964,7 +338338,7 @@ [] ], "uk-KOI8-U-late.tentative.html.ini": [ - "e4495a31d7a57197ae39ae8da893c085bd0b7ada", + "f5bc063e5e08b91e7c4c9f402c3b36054660381d", [] ], "uk-KOI8-U.tentative-expected.txt": [ @@ -337984,7 +338358,7 @@ [] ], "vi-windows-1258-late.tentative.html.ini": [ - "78be944beb26b89d5bbbe8e5c18af90e38024edf", + "317a3ccf86f0199530e6231d6ee24ccb78e4e598", [] ], "vi-windows-1258.tentative-expected.txt": [ @@ -338850,23 +339224,23 @@ [] ], "idlharness.any-expected.txt": [ - "4fe4540271c298c38658dbe0e1b24e5fede9363f", + "6e6763ddef7801866f506fff3ca335ca68fe046b", [] ], "idlharness.any.js.ini": [ - "59677c6882f20565a74f2df9402af78df88d89d5", + "10efdbe7dca5f15f365b74ffafa69bb0180eec63", [] ], "idlharness.any.serviceworker-expected.txt": [ - "a4f87f4c76c614417d98929d55dec8ff0a4121ca", + "f0d0c35bba7275b4cd039a81c12b20ec2fcaa107", [] ], "idlharness.any.sharedworker-expected.txt": [ - "a4f87f4c76c614417d98929d55dec8ff0a4121ca", + "f0d0c35bba7275b4cd039a81c12b20ec2fcaa107", [] ], "idlharness.any.worker-expected.txt": [ - "a4f87f4c76c614417d98929d55dec8ff0a4121ca", + "f0d0c35bba7275b4cd039a81c12b20ec2fcaa107", [] ], "interactionid-tap.html.ini": [ @@ -339542,7 +339916,7 @@ }, "cors": { "cors-cookies.any.js.ini": [ - "25463cf3ec256911e62621e37ad60edeada1f2ea", + "319b1b751831ac2ae7a7c0fb6519f3ebf37fb754", [] ], "cors-preflight-redirect.any-expected.txt": [ @@ -340955,8 +341329,8 @@ "686364eb61cdefa16dc669fef7e6a2b3742561b4", [] ], - "element-iframe.sub.html.ini": [ - "96b1dbd1f4dd749b14c3bf115ba193d92c7fa8bd", + "element-frame.sub.html.ini": [ + "fc10a51810062eed1b71a83eb620349128c45a13", [] ], "element-img.https.sub-expected.txt": [ @@ -340992,11 +341366,11 @@ [] ], "element-meta-refresh.https.optional.sub.html.ini": [ - "9874a8c90794c6daa1e2289e60a7982173db62b8", + "d25631d2d52ce8929152d33d3f59664f6921d304", [] ], "element-meta-refresh.optional.sub.html.ini": [ - "a74997843d6ea5b0677898fdf5310497fd62bc78", + "b31f66ee59e12105b675c2923c4162731387e129", [] ], "element-picture.https.sub.html.ini": [ @@ -341047,6 +341421,10 @@ "be183287eb3b80035a7bb3d1a3843fce41ffe7d5", [] ], + "window-history.https.sub.html.ini": [ + "b15ba7535f6af7b4e611a21a37c0a745fc32ffb0", + [] + ], "worker-dedicated-constructor.sub.html.ini": [ "da6289c1350e26985fe621228331fbcfb802ce0d", [] @@ -341463,7 +341841,7 @@ [] ], "assorted.window.js.ini": [ - "550507e604c63727f15daf39877102cff1a983b0", + "40e6698bfb61bd9e7429863b9b0be7045854a092", [] ], "resources": { @@ -341491,7 +341869,7 @@ [] ], "iframe.tentative.https.window.js.ini": [ - "abc126ce81bb6af375b9c4ed6a18aeb02945bebc", + "9132c01faa9ecb90ffa56c2d0b6596b61f8a0507", [] ], "iframe.tentative.window-expected.txt": [ @@ -341601,11 +341979,11 @@ ] }, "service-worker-background-fetch.https.window.js.ini": [ - "ff15806f1f68c5f74a9a324a6338986be83e3b09", + "1efc63a8b12cf6d1173d286215ef2a9757a94dd8", [] ], "service-worker-fetch.https.window.js.ini": [ - "8ad3d983f5f9151f6b499743a4b99dcd1306dec4", + "eaa7acf656311a660b824eedda6b958feb5d0e34", [] ], "shared-worker.window.js.ini": [ @@ -341942,7 +342320,7 @@ [] ], "focus-already-focused-iframe-same-site.html.ini": [ - "4f0bb0ce512506e160d3de8c8bdf6bbc231d11df", + "cd78228dd3869ed7ac233ad82d076832dd8df95e", [] ], "focus-event-after-focusing-iframes-expected.txt": [ @@ -342026,7 +342404,7 @@ [] ], "iframe-focus-with-different-site-intermediate-frame.html.ini": [ - "a4e9ffefd3d4c43282dea6fd72191db23d6006cb", + "501950368012f28203aead245411c7e608f36c68", [] ], "iframe-focus-with-same-as-top-intermediate-frame-expected.txt": [ @@ -343470,7 +343848,7 @@ [] ], "FileSystemFileHandle-create-sync-access-handle.https.tentative.window.js.ini": [ - "2d96c8eae5cc46b3d3602a0ad255c0c3de110c81", + "c3348a5c9aef335e28df011c41c92883beabaef3", [] ], "META.yml": [ @@ -343996,11 +344374,11 @@ [] ], "idlharness-extensions.https.window-expected.txt": [ - "2add0e7fd942673ae9c2b9deb57a862e2916864e", + "8bf042233bf225974c19a7b23d72c072bc8ef7d2", [] ], "idlharness-extensions.https.window.js.ini": [ - "1d70350c172ac21435fe1254a6b0de845b3e4667", + "c9dd14c3b317f44bbf8a47591793b07f95065f5e", [] ], "idlharness-extensions.window-expected.txt": [ @@ -344304,7 +344682,7 @@ [] ], "clamped-time-origin.html.ini": [ - "ab661818c92ffc42c403c6c65cbb42645b627317", + "9ce379403377a4f2a7e413462fbb5c53d78d2bf7", [] ], "cross-origin-isolated-timing-attack.https.html.headers": [ @@ -344368,12 +344746,16 @@ [] ], "anonymous-iframe": { + "anonymous-iframe-popup.tentative.https.window.js.ini": [ + "e222dfd551725762c48d5b69537476e130995685", + [] + ], "cookie-store.tentative.https.window.js.ini": [ "f9ef8df9679b96f3645832ded00a205bf6aaf236", [] ], "embedding.tentative.https.window.js.ini": [ - "21e5d4fae70b75cd36b1a9daa85da4e9a841668b", + "9bd26c2358c62e0a6b90d4c63bf08ce9325e35d4", [] ], "fenced-frame-bypass.tentative.https.window-expected.txt": [ @@ -344539,7 +344921,7 @@ [] ], "service-worker-controlled-after-restore.https.html.ini": [ - "33ae6cd3b8e4ec3c488be40135c9595cf611c14e", + "947eebb79e872c0b41bbc874374501b302b00766", [] ], "service-worker-unregister.https-expected.txt": [ @@ -344640,6 +345022,10 @@ "before-load-hash-twice.html.ini": [ "5827e20f32e674c3ac9966a1f11d5562542481b9", [] + ], + "before-load-hash.html.ini": [ + "951dcfce22ed3ca1d359f7193b57b8134c5fcedd", + [] ] }, "persisted-user-state-restoration": { @@ -345255,7 +345641,7 @@ [] ], "same-document-traversal-cross-document-traversal.html.ini": [ - "71dab1dde8f9cd56e469d48031b7028e256f5e9e", + "2ff88dbb4d2cd2746227b2b7e11436d22ae3cc27", [] ], "same-document-traversal-same-document-traversal-hashchange.html.ini": [ @@ -345749,7 +346135,7 @@ [] ], "history_pushstate_url_rewriting.html.ini": [ - "0eb3574961ce94252f312b80d9312a9cd539dedd", + "d28878e35aacebc03efcf47444d4c520fbd60f91", [] ], "joint_session_history": { @@ -345814,6 +346200,10 @@ "64920b4f4f5a4682f32b6fc37ddf89a198a0b3ef", [] ], + "traverse_the_history_2.html.ini": [ + "9f1fd20a0bd7a61e1eb2592927afca530ba5b1d6", + [] + ], "traverse_the_history_3-1.html": [ "c49bfd384a29a509fd1ecd764c3b6f895dbec31d", [] @@ -345929,7 +346319,7 @@ [] ], "location-protocol-setter-non-broken.html.ini": [ - "218b1cc1d61b5431ae3e46cc81b67f3082d7929a", + "74dcce93246ac325a91beaca6f4d04332bbfb647", [] ], "location-prototype-setting-cross-origin-domain.sub-expected.txt": [ @@ -346159,7 +346549,7 @@ [] ], "cross-origin-objects.html.ini": [ - "6502952eab898e3cb6dbc43600dacdb12eb72b5a", + "fa4bd4663ca6ec6c152c3f6e3f58a442dbe82a88", [] ], "frame-with-then.html": [ @@ -346234,7 +346624,7 @@ [] ], "parent-yes-child-no-subdomain.sub.https.html.ini": [ - "1524e6e285a6186fe7dd732b0faf4db6e3ea8ebf", + "9759a2896fb41ba60d224030864328515fc12c8c", [] ], "parent-yes-child-yes-port.sub.https.html.headers": [ @@ -346242,7 +346632,7 @@ [] ], "parent-yes-child-yes-port.sub.https.html.ini": [ - "1fe764980cdb004b33f17ae5ae9329436157fe58", + "5f428d85c58be189cc011c3e8b44b6892f5b6083", [] ], "parent-yes-child-yes-same.sub.https.html.headers": [ @@ -346250,7 +346640,7 @@ [] ], "parent-yes-child-yes-same.sub.https.html.ini": [ - "e3a89c0f7ce9961f842110f8818e4e27fd505f8b", + "2b7fa4f27546ce75c088fb484df17a380bfb685f", [] ], "parent-yes-child-yes-subdomain.sub.https.html.headers": [ @@ -346258,7 +346648,7 @@ [] ], "parent-yes-child-yes-subdomain.sub.https.html.ini": [ - "428253fdf40cc6bdee2242af4fe458fdb741e1e6", + "c5b33c34d9421058bf9af4a4af7c192dd1a96468", [] ] }, @@ -346276,7 +346666,11 @@ [] ], "parent-no-child1-yes-subdomain-child2-no-port.sub.https.html.ini": [ - "e5fb8dea59a6a992a74d4e88f84bb1078d1e04dd", + "ef214e6217597055b9f26ffbe8353d03cff7cac6", + [] + ], + "parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini": [ + "2a0462ef0b1606a5eff1448b2695394a50f998f0", [] ], "parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.headers": [ @@ -346284,7 +346678,7 @@ [] ], "parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.ini": [ - "1d37b551b8796e43084bd8f689e46e21474382f2", + "58f748d83e50a665f7036f1516379567eebf014f", [] ], "parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.headers": [ @@ -346292,7 +346686,7 @@ [] ], "parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.ini": [ - "5671887b26e265cf9ca1574df4eca12c8c4369bc", + "e5bf5d7d5b132c53ecf6d454686fb7da2d8d5942", [] ], "parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.headers": [ @@ -346300,23 +346694,19 @@ [] ], "parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini": [ - "55c9507947dd54f89a1ba668d8a092793a789cc8", + "870d618369d11b43e52dc7c558668b4de5cd8807", [] ], "parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.headers": [ "79a20f30fc0f486014c8b93edef7483605101504", [] ], - "parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.ini": [ - "9bcd06566805156e9c14fabd814b7d34a3a803aa", - [] - ], "parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.headers": [ "79a20f30fc0f486014c8b93edef7483605101504", [] ], "parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini": [ - "ce259823becd55217b53ed2a8347f27771d28166", + "55806ef001609af9235592387679abd651d7046f", [] ], "parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.headers": [ @@ -346324,7 +346714,7 @@ [] ], "parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.ini": [ - "d9ff6bde0a80622e37e7a08e8f5e16b2257c85d7", + "106475c717f61598f20664c33c404c9557599dc3", [] ], "parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html.headers": [ @@ -346332,7 +346722,7 @@ [] ], "parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini": [ - "71b884a38cb29b9ec5ed7504e50a3aad3f2a674f", + "5bd867877daf92d7e1d983b24ea07c375a13b7ad", [] ], "parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.headers": [ @@ -346340,23 +346730,19 @@ [] ], "parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.ini": [ - "8651d2934d723b9f6c0a22b0131f52c01516fc11", + "3be8b66c60fbd9a158e332ffde611ae30634ba03", [] ], "parent-yes-child1-yes-subdomain-child2-yes-subdomain2.sub.https.html.headers": [ "79a20f30fc0f486014c8b93edef7483605101504", [] ], - "parent-yes-child1-yes-subdomain-child2-yes-subdomain2.sub.https.html.ini": [ - "785b82bcbee81c3cc4c76982e3b589be6de6148a", - [] - ], "parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.headers": [ "79a20f30fc0f486014c8b93edef7483605101504", [] ], "parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.ini": [ - "55092ef7500f2092b4ef7e5c787589b55ffe0166", + "e3b0508f4657609580638d04ce6d4902d3c18ee9", [] ] }, @@ -346385,7 +346771,7 @@ [] ], "document-domain.sub.https.html.ini": [ - "d4bd40414d6af8e843189c6196a75f53f02afa70", + "acfa7b8b4fdd50604a63553313b331bb0609b854", [] ], "getter-special-cases": { @@ -346421,6 +346807,10 @@ "79a20f30fc0f486014c8b93edef7483605101504", [] ], + "javascript-url-yes.https.html.ini": [ + "189de0412095c179a135e6aa017e6c204b9e0446", + [] + ], "removed-iframe.sub.https.html.headers": [ "79a20f30fc0f486014c8b93edef7483605101504", [] @@ -346460,7 +346850,7 @@ [] ], "sandboxed-same-origin-iframe-no.https.html.ini": [ - "27d7b90a39f0b3627a686e2a6c41bd450bbc5872", + "e890d00d3b419bdec5486783adba60620b86972b", [] ], "sandboxed-same-origin-iframe-yes.https.html.headers": [ @@ -346468,7 +346858,7 @@ [] ], "sandboxed-same-origin-iframe-yes.https.html.ini": [ - "805a17e15d672b160c0c087c55acb1fd91cf8ce3", + "14cb1e6c42653c1e9878b1b91c0d340f355c96a9", [] ] }, @@ -346477,32 +346867,32 @@ [] ], "going-back.sub.https.html.ini": [ - "b8b3d6a7c0bfac2f3b71e6593f59743f498cbc95", + "9f1f582920d6579cb959b2e532f081cb5c381068", [] ], "iframe-navigation": { "parent-no-1-no-same-2-yes-port.sub.https.html.ini": [ - "ec2a502d92a980ccdf4976cc1155f85ad599095b", + "fbb118dcc01a3a8d051de3a925d773c8fef29a98", [] ], "parent-no-1-no-same-2-yes-subdomain.sub.https.html.ini": [ - "29d716063918c30f789ec92576f7e6dec2901fbe", + "d2d5d09345895be4919f76f10b769d852734f8bd", [] ], "parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html.ini": [ - "076b56dbf568243af2939dd9c4a28a3aef8b1963", + "5ca14add06a3599fa45246416cfc5125a8a396f4", [] ], "parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html.ini": [ - "0f6e6c5cc697b85bb3b915839572761b59421017", + "10a484bb04ac63e9bf7deaa45b6b45d19697df25", [] ], "parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html.ini": [ - "80582a0bda86f9a1fe51800c41e0d32fa97dea52", + "29817d3ce6772f9d9a9547561e709cbe471d006f", [] ], "parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html.ini": [ - "2d7a272b30800f5e65aa37b4f60b1caf199bc06d", + "88927c4b28d125a44c3875aad74858a81a7133ef", [] ], "parent-yes-1-no-same-2-no-port.sub.https.html.headers": [ @@ -346510,7 +346900,7 @@ [] ], "parent-yes-1-no-same-2-no-port.sub.https.html.ini": [ - "011d73afdc0110dbe8de576ed8fdce3909094f0d", + "8215e4ce046000d54a9b788291bfafdfa4509367", [] ], "parent-yes-1-no-same-2-no-subdomain.sub.https.html.headers": [ @@ -346518,7 +346908,7 @@ [] ], "parent-yes-1-no-same-2-no-subdomain.sub.https.html.ini": [ - "b8ea2ca58bb23a1ff95204f2ab640907ffac4c58", + "1ef993a1bda6a1bfc50f74461113f4e615317fad", [] ] }, @@ -346531,8 +346921,16 @@ [] ], "popups": { + "opener-no-openee-yes-port.sub.https.html.ini": [ + "c74f36ebda0f675ad69d8be4d43586cd94e1cab9", + [] + ], + "opener-no-openee-yes-same.sub.https.html.ini": [ + "58ef35f2c80c17debb94ae8430ca3e3095773256", + [] + ], "opener-no-openee-yes-subdomain.sub.https.html.ini": [ - "1368d4ebe063c13c54fee10ae3d296b08c8ba5ff", + "efdfcc444e51e4fd1b5f3feb1ead320b10cf9622", [] ], "opener-yes-openee-no-port.sub.https.html.headers": [ @@ -346540,7 +346938,7 @@ [] ], "opener-yes-openee-no-port.sub.https.html.ini": [ - "9b1a10aa46e106fe931b8c0ec758ed5b5297f91e", + "6cfbabff6796ee5a36819a9e2bbbd64e655f33e4", [] ], "opener-yes-openee-no-same.sub.https.html.headers": [ @@ -346556,7 +346954,7 @@ [] ], "opener-yes-openee-no-subdomain.sub.https.html.ini": [ - "83fcc1fe1ce693d1b36c9ca3daef9ab38cb52aa6", + "061e3f18656cfe8c5d730ac570d4e5483124f418", [] ], "opener-yes-openee-yes-port.sub.https.html.headers": [ @@ -346564,23 +346962,19 @@ [] ], "opener-yes-openee-yes-port.sub.https.html.ini": [ - "9f1c64b95be44d2188f1edc5dd3368ce3fbe45ea", + "e1431348cca8f106345fbafd820354e60e87f00c", [] ], "opener-yes-openee-yes-same.sub.https.html.headers": [ "79a20f30fc0f486014c8b93edef7483605101504", [] ], - "opener-yes-openee-yes-same.sub.https.html.ini": [ - "851a368312622c507f15313d07d8639a593a7979", - [] - ], "opener-yes-openee-yes-subdomain.sub.https.html.headers": [ "79a20f30fc0f486014c8b93edef7483605101504", [] ], "opener-yes-openee-yes-subdomain.sub.https.html.ini": [ - "3cc93c11dae56f86ae7b8d6cbd614c0743649202", + "29471533d75b0b9f62a218025ff28fffbc50ed76", [] ] }, @@ -346593,7 +346987,7 @@ [] ], "removing-iframes.sub.https.html.ini": [ - "45bad45437ae9feeabcb5419604a82c069208990", + "b5682cab8d8632e28e940af85337c53fed5f45a0", [] ], "resources": { @@ -346649,7 +347043,7 @@ }, "relaxing-the-same-origin-restriction": { "document_domain_access_details.sub.html.ini": [ - "61766e689ec4224e9dae6a463eff726dc29b6fbe", + "29f86924eef02d1e3b0ae455083488ecd296a665", [] ], "document_domain_setter.html.ini": [ @@ -346871,6 +347265,10 @@ "8e27e3b6177b42f374a333f285a09cf1323ada9a", [] ], + "noopener-noreferrer-sizing.window.js.ini": [ + "15e7fae81bce896a22c8d22593a5bbc3e4c95bab", + [] + ], "open-close": { "callback.js": [ "ae51265a213b228282aee82f30496e31f9d417ef", @@ -346938,6 +347336,10 @@ [] ] }, + "open-features-is-popup-condition.html.ini": [ + "e992545926abf7429b3ec9a22669cacceb710ca3", + [] + ], "open-features-negative-innerwidth-innerheight.html.ini": [ "ad6ace0710760cedf3840baf02a126775e92c870", [] @@ -346998,10 +347400,6 @@ "97ab60773abb587368339945de01df4af993a54b", [] ], - "open-features-non-integer-width.html.ini": [ - "1e059b010bdfe835d5f64e515f658e60674c8e98", - [] - ], "open-features-tokenization-noopener.html.ini": [ "efce1ae6e9edcabfa74899c229df8f185f87e1d4", [] @@ -347019,7 +347417,7 @@ [] ], "open-features-tokenization-top-left.html.ini": [ - "a5ba4c24deabf5feac62e046e01bf9f663a60048", + "dc5fb3e0c6cc729507fa8c6ce9a177ce7ff3a58b", [] ], "resources": { @@ -347092,11 +347490,11 @@ [] ], "window-open-noopener.html.ini": [ - "2220bb32d524339a473308465ce1fdebe7f9903e", + "19a9e9c62bbb23136f6dcaa7ea90b0ffc9c6425f", [] ], "window-open-windowfeatures-values.html.ini": [ - "ef909a9fbff128dcd041f2de23ab974043d2a261", + "d9e0e4f30172d211e80db333678752d7aedbe94b", [] ], "window-properties.https-expected.txt": [ @@ -347156,8 +347554,12 @@ "92fd5f321d0edf7af81f2e09935fde3c294d3220", [] ], + "opener-noopener.html.ini": [ + "08977dee0d9a7433bdef47526adb09fb77d6eab1", + [] + ], "opener-setter.html.ini": [ - "af4d6689fd7bbd52ef2c3b26c7735d6b29cd2b56", + "df656ac837b5f8d5028cda2cc9688b0464c4a451", [] ], "opener.html.ini": [ @@ -347192,6 +347594,10 @@ } }, "browsing-context-names": { + "choose-_parent-003.html.ini": [ + "83a3c62ce54a1ac6af7a67faffa030cdccf8f6b6", + [] + ], "choose-_top-001.html.ini": [ "32ae56a123bf75f51fdd6c2937085ed6f23ee367", [] @@ -348622,7 +349028,7 @@ [] ], "canvas-display-p3-drawImage-ImageBitmap-video.html.ini": [ - "4900e47dc25bca8b98835c8fccab40a3914f150d", + "321a431d20f1cbb55e932d790cda08755a2d4a82", [] ], "canvas-display-p3-drawImage-expected.txt": [ @@ -349216,7 +349622,7 @@ [] ], "offscreencanvas.resize.html.ini": [ - "a579b95449e376bc8f99b295e27e8be94cd3e647", + "0a174c5f33f56c60e824245f4d664c535c6548b7", [] ], "offscreencanvas.transferrable-expected.txt": [ @@ -349756,7 +350162,7 @@ [] ], "fetch.https.window.js.ini": [ - "2127d139df931ad03d8dd2a8c4ae1ebd398e4cb6", + "3b8a30b9f6d968dc579fc5b2bd03d47ceae6e628", [] ], "iframe-coep-credentialless.https.window.js.ini": [ @@ -349767,10 +350173,6 @@ "5e6b9120ee147329629026318b76757a21732510", [] ], - "image.https.window.js.ini": [ - "a048ac86484f29356c08bbe2a935a01e5f3345c7", - [] - ], "resources": { "common.js": [ "ce21c766f6c30fcb87147611ae1a6af9aa54ce0e", @@ -349823,7 +350225,7 @@ [] ], "dedicated-worker.https.html.ini": [ - "6bc5f6dc9a7127f1db057f8b4c431ea962406f0a", + "d92ca6a545858f27ac3b4363177a4a9dd87e2d58", [] ], "iframe-history-none-require-corp.https.html.ini": [ @@ -349937,7 +350339,7 @@ [] ], "reporting-subresource-corp.https.html.ini": [ - "12f401ec9857d92ca399601a430344f0c46690df", + "92de457ea561df436883f0f32c56fbd620bd5c8e", [] ], "reporting-to-document-reporting-endpoint.https.window.js.ini": [ @@ -350216,10 +350618,6 @@ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", [] ], - "coep-with-cross-origin.https.html.ini": [ - "02e5a9832f096d302194011075c29360f3f3b83d", - [] - ], "coep-with-same-origin.https.html.headers": [ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", [] @@ -350232,10 +350630,6 @@ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", [] ], - "coep-with-same-site.https.html.ini": [ - "06986c34c07abae401f3ef56c52e1eccc891aba9", - [] - ], "coop-coep-sandbox.https.html.headers": [ "4fff9d9fba4c81f953826ffea010a75be626b95d", [] @@ -350253,7 +350647,7 @@ [] ], "coop-navigate-same-origin-csp-sandbox.html.ini": [ - "07fb88f9053cc21e8f55f14041af11eac07b4ff1", + "a7102153e9b504a74092eb3b3075f8a48e116557", [] ], "coop-navigated-popup.https.html.headers": [ @@ -350276,26 +350670,22 @@ "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", [] ], + "coop-sandbox.https.html.ini": [ + "63b8eb62b2311c7e034dec970a76ae3f167b3e9c", + [] + ], "header-parsing-failures.https.html.ini": [ - "0395d5862b3e044ca8194db3057565e3ad48d74c", + "eb30ca950fa6cdd9afae8f43e9055639335a90c6", [] ], "header-parsing-non-ascii.https.html.headers": [ "54e44a7113def0babd42f726c878fc90db2e99f9", [] ], - "header-parsing-non-ascii.https.html.ini": [ - "352e7aad6f020561a33cc066d29ae815dd33f1e0", - [] - ], "header-parsing-repeated.https.html.headers": [ "85c58be8a1c60ed64b2efaed8a155fc5e087537e", [] ], - "header-parsing-repeated.https.html.ini": [ - "0ff031216698bcc77afe7110f069d5f7d0fd27e9", - [] - ], "header-parsing-successes.https.html.ini": [ "f545d7b1ba24a55f980a8cfdee522fd7d71f230d", [] @@ -350325,10 +350715,6 @@ "ab7b28948150ff64101ef080b0d9c7cc9a6a34d2", [] ], - "popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html.ini": [ - "eb3fd0485663ee6cfb5d98810486043aa6a2e766", - [] - ], "popup-same-site-unsafe-allow-outgoing-with-same-site.https.html.headers": [ "ab7b28948150ff64101ef080b0d9c7cc9a6a34d2", [] @@ -350349,17 +350735,9 @@ "34bd099a302f893f92586241ea38aac812bf28d0", [] ], - "popup-same-site-with-same-origin.https.html.ini": [ - "4a8a69c67ce65a40e37fc817e5763a78a2cf951a", - [] - ], "popup-same-site-with-same-site.https.html.headers": [ "34bd099a302f893f92586241ea38aac812bf28d0", [] - ], - "popup-same-site-with-same-site.https.html.ini": [ - "536e2c0b58482bac177e94efbe612cc3b60d62cf", - [] ] }, "iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.headers": [ @@ -350391,7 +350769,7 @@ [] ], "iframe-popup-same-origin-to-same-origin.https.html.ini": [ - "c6cd6b730183649c8f3a41dd1e35837e05470862", + "79b696010a173e30f79a6e092a7495b49b067323", [] ], "iframe-popup-same-origin-to-unsafe-none.https.html.headers": [ @@ -350399,7 +350777,7 @@ [] ], "iframe-popup-same-origin-to-unsafe-none.https.html.ini": [ - "59c33be4dc23119fc1364f47d317e10cb1c0e694", + "8eec1633c1b737c49a14249cda902fca3a7199de", [] ], "iframe-popup-unsafe-none-to-same-origin.https.html.headers": [ @@ -350407,7 +350785,7 @@ [] ], "iframe-popup-unsafe-none-to-same-origin.https.html.ini": [ - "3e09c283deb3d8ca3eb84b95803a97ca16aff88d", + "69d18ba491050ae07cfe15dd2a33f95540146399", [] ], "iframe-popup-unsafe-none-to-unsafe-none.https.html.headers": [ @@ -350419,7 +350797,7 @@ [] ], "javascript-url.https.html.ini": [ - "a613d3bad75f9c9582949bb450f3a4750c34fdd5", + "31b63d6fbe3a6c2aa560de421fb168005ace26f8", [] ], "navigate-to-aboutblank.https.html.ini": [ @@ -350427,7 +350805,7 @@ [] ], "navigate-top-to-aboutblank.https.html.ini": [ - "d5c6b7629520bbf8969208c96e72707a0ef0454e", + "1aeca853cfa3c55b386ca9cb36493b699d321c2b", [] ], "no-https.html.headers": [ @@ -350443,11 +350821,7 @@ [] ], "popup-redirect-cache.https.html.ini": [ - "5f9ca4e98d2c6479aa3793f2cea70104840669e8", - [] - ], - "popup-redirect-same-origin-allow-popups.https.html.ini": [ - "4cc8d43391fcd469555c9dcc045d76c782bf09eb", + "4cb8fb89c6d9843d523ea1b3668b9c70a9b04b53", [] ], "popup-same-origin-allow-popups-with-cross-origin.https.html.headers": [ @@ -350455,7 +350829,7 @@ [] ], "popup-same-origin-allow-popups-with-cross-origin.https.html.ini": [ - "ddd028e2ea76a0899bed36a40e2607dc3c213bb7", + "78395f064089f40dea0d537a111ffc600cd17768", [] ], "popup-same-origin-allow-popups-with-same-origin.https.html.headers": [ @@ -350494,6 +350868,10 @@ "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", [] ], + "popup-same-origin-with-same-site.https.html.ini": [ + "ef3655a482107a3d7f9f5dea04a0b3b74bed9fa3", + [] + ], "popup-unsafe-none-with-cross-origin.https.html.headers": [ "073ce7adfbd81cb7c0b2f91f96c8349b6677f26c", [] @@ -350515,7 +350893,7 @@ [] ], "popup-unspecified-with-same-origin.https.html.ini": [ - "cc0aa6279c4c6300209e802cc37a9fd36f33de32", + "0d2dc3b16bd511d0412a206007cdf2a888350dab", [] ], "popup-with-structured-header.https.html.headers": [ @@ -350529,7 +350907,7 @@ ], "access-reporting": { "access-from-coop-page-to-openee_coop-ro.https.html.ini": [ - "ef6ec988d5ce37413283b835433725af38794e01", + "78a07e61847da025280a55e15324eb8e6d96c235", [] ], "access-from-coop-page-to-openee_coop-ro_cross-origin.https.html.ini": [ @@ -350537,7 +350915,7 @@ [] ], "access-from-coop-page-to-opener_coop-ro.https.html.ini": [ - "75251f82e9084a5548933004eb1a3f2d5d5efe6c", + "3b5e3caa0859353f0f96155790b19503393d939b", [] ], "access-from-coop-page-to-opener_coop-ro_cross-origin.https.html.ini": [ @@ -350545,19 +350923,19 @@ [] ], "access-from-coop-page-to-other_coop-ro.https.html.ini": [ - "dd923b49d338c61b1c701f72a0fe7c9d21a51306", + "ad1f3046344665f83be193b63ccc46c1a691c671", [] ], "access-from-coop-page-to-other_coop-ro_cross-origin.https.html.ini": [ - "dd5c96b2e6d713af4e5402595b2b6e459a64352e", + "56b8e031cc1caaee836abb34f380ea522c92155c", [] ], "access-to-coop-page-from-openee_coop-ro.https.html.ini": [ - "bf827e7921d353b76aa69e62ef999129f23aa7d3", + "45761bcac8beb541cddf6110a9432b612089da0b", [] ], "access-to-coop-page-from-openee_coop-ro_cross-origin.https.html.ini": [ - "a07396ec29b90d8998c0949887aa263615f8ad36", + "c12963c37c283f6c853bb9f9ef36b7cf83c9d0df", [] ], "access-to-coop-page-from-opener_coop-ro.https.html.ini": [ @@ -350577,7 +350955,7 @@ [] ], "property-blur.https.html.ini": [ - "152c3587065cb6376d75605f2797e9a2104f048c", + "727d82003a3f7ca6fb0edb5a0c10719dae733c93", [] ], "property-close.https.html.ini": [ @@ -350585,7 +350963,7 @@ [] ], "property-closed.https.html.ini": [ - "ad0e9b09c8038704d41611c2b79cea264d3166a5", + "3ee2c65727bbe62139956bca2812b7f5ca1986eb", [] ], "property-focus.https.html.ini": [ @@ -350593,17 +350971,13 @@ [] ], "property-frames.https.html.ini": [ - "21215fd305f462e4142845a404889820349c098d", + "f6d2d333bad5ce93e388b23469807f3f04336d18", [] ], "property-indexed-getter.https.html.headers": [ "64f4d5fedffd208b7174c7d8e0bce4e99ce1ac0f", [] ], - "property-indexed-getter.https.html.ini": [ - "4186abaa2b3e6224e09a8c01ede807a9f1651fa8", - [] - ], "property-length.https.html.ini": [ "5a1cdeb06f5da40830935462d15cf02f567f8dcb", [] @@ -350613,7 +350987,7 @@ [] ], "property-location-set.https.html.ini": [ - "2f7117844e127f6a83ab378339e2027d18eea311", + "7f801da8aa2919ebc0db9e12801099b5ad2aecb2", [] ], "property-named-getter.https.html.headers": [ @@ -350621,35 +350995,31 @@ [] ], "property-opener-get.https.html.ini": [ - "e053a92320caf24980ff5f4d623361e7485303db", - [] - ], - "property-opener-set.https.html.ini": [ - "5c096b165ef8879b38c62e8c116bc3dc39ae7263", + "76173f058e7af335f35213295dd3b1a188840c64", [] ], "property-postmessage-1.https.html.ini": [ - "943353e4f9e25b62aaec539cff959e753180bc02", + "ab4e882800645f49b748ce816f1108237bde01a8", [] ], "property-postmessage-2.https.html.ini": [ - "586bba13313b39313f8fbebcc6071a2c38596100", + "426cf305bd7453933de82985822e531bebd9958c", [] ], "property-self.https.html.ini": [ - "911a48fe0d6eaeb845e1ec91e968d70a1ba6b4f2", + "189215bc7f4f6a65585c207e1ea409f9b0320ac5", [] ], "property-top.https.html.ini": [ - "f989a1455a8ba373848579c707526c997bdb5f20", + "7bd46c45dea7626c43b604418611570c9f08691d", [] ], "property-window.https.html.ini": [ - "78ab09d6a8d589bf1883847508b9769c9cd037dc", + "799db67cf15e60af5be3156b0c11c7bb738c4426", [] ], "report-to-both_coop-ro.https.html.ini": [ - "46d3e2453d8b141994297fa9ca23abea51bbb623", + "3533c77b1462c6bc0e3dc3c640117c164f1fdd91", [] ], "reporting-observer.html.ini": [ @@ -350671,7 +351041,7 @@ [] ], "reporting-redirect-with-same-origin-allow-popups.https.html.ini": [ - "8030187e3a1965ce1f930b870396f1c180227ae5", + "6f1d038e5dd4f3474f52cf8d1ad4d3191d8fda2c", [] ], "reporting-redirect-with-unsafe-none.https.html.ini": [ @@ -350773,7 +351143,7 @@ [] ], "reporting-redirect-with-same-origin-allow-popups.https.html.ini": [ - "8030187e3a1965ce1f930b870396f1c180227ae5", + "6f1d038e5dd4f3474f52cf8d1ad4d3191d8fda2c", [] ] }, @@ -350793,7 +351163,7 @@ } }, "resource-popup.https.html.ini": [ - "f030a189f9ec459fd336f1b123ed5796391ab211", + "d0377346a70f14690894f549322e3009fa10b258", [] ], "resources": { @@ -350869,7 +351239,7 @@ [] ], "iframe-popup-to-so.https.html.ini": [ - "e3a14cedcbe3ad3c6aca7ec0a8af4f792a026b11", + "b62b4dc0b58bdd2d5f8e6f25de66a5f79fd881ac", [] ], "iframe-popup-to-soap.https.html.headers": [ @@ -350913,7 +351283,7 @@ [] ], "iframe-popup.https.html.ini": [ - "51dea9892a1a00fd09fb795c64c44dc95857d766", + "f3681f22e7aaacd0c447883a6d4c2e4b530cfde0", [] ], "iframe-popup.https_1-2-expected.txt": [ @@ -350981,7 +351351,7 @@ [] ], "popup-un.https.html.ini": [ - "3825ee4b58097e7262bc7d1e1cff1fcc0684f5fa", + "245d44f04bd04c497a587d0b1f23c067a3808476", [] ], "popup-with-cross-origin.https-expected.txt": [ @@ -350993,7 +351363,7 @@ [] ], "popup-with-cross-origin.https.html.ini": [ - "4e17baa0cc7389cbdb7ad5478ca25b3c307b8269", + "fca3b7c3e8f677f571d091f75a427352539790f5", [] ], "popup-with-same-origin.https-expected.txt": [ @@ -351017,7 +351387,7 @@ [] ], "popup-with-same-site.https.html.ini": [ - "38b2f93760f06bd187430b8f5f7bbf6bf5844c2b", + "3a041615f7f308fb0c8f2869d86440d2ef622f63", [] ] } @@ -351085,7 +351455,7 @@ [] ], "document-cookie.html.ini": [ - "fc63f6d0f5c4c265aefdac70e3e4bfadb1f17af6", + "87ed3754a09930097225b085f7f8528dd5256968", [] ], "document-lastModified.html.headers": [ @@ -351577,6 +351947,14 @@ [] ], "render-blocking": { + "remove-attr-script-keeps-blocking.tentative.html.ini": [ + "6e59c182c3cb184fd873dc908acef135f413420b", + [] + ], + "script-inserted-script.html.ini": [ + "e11044cfb6253752396bd957d05295fc1d8c2c07", + [] + ], "script-inserted-stylesheet-link.tentative.html.ini": [ "64be6e97171f830f84edb718f094f89392c8f731", [] @@ -355393,6 +355771,12 @@ "33c86ddd4cc1e31dd5451d99d1621abf6e3f8861", [] ], + "focus-management": { + "focus-event-targets-simple.html.ini": [ + "785071f129622ced228752338d96d9f1620aa3af", + [] + ] + }, "focusgroup": { "tentative": { "resources": { @@ -357270,7 +357654,7 @@ [] ], "resource-selection-invoke-audio-constructor.html.ini": [ - "832554d322a83d49960e5586a1b22eb166cf8708", + "a6241fe3c693f1539664cbff854a4f2741ea7202", [] ], "resource-selection-invoke-in-sync-event-expected.txt": [ @@ -357302,7 +357686,7 @@ [] ], "resource-selection-invoke-insert-source.html.ini": [ - "ffcd9afbc824c17e78504dcb765aa69f74d34cef", + "c9aa5a8a7b056ef8c40be57c89f2804e57b809e0", [] ], "resource-selection-invoke-load.html.ini": [ @@ -357310,7 +357694,7 @@ [] ], "resource-selection-invoke-pause-networkState.html.ini": [ - "e889ab762e3f0df906ff3f35139c60e0c4a89904", + "77d3898365040adfae7095931f4275904e092036", [] ], "resource-selection-invoke-pause.html.ini": [ @@ -357325,8 +357709,12 @@ "33e2bbbf2db5f400c6b95c9f46e33d3e663a43c5", [] ], + "resource-selection-invoke-remove-src.html.ini": [ + "d46d8e21a17a4bd65146835331cfbd4a54690eeb", + [] + ], "resource-selection-invoke-set-src-not-in-document.html.ini": [ - "7fe38a1b008003d6f1e3f989dfbec12f6ade05fc", + "ff3d9aa5444592ad3736b4dc0c0fd662f926278a", [] ], "resource-selection-invoke-set-src.html.ini": [ @@ -357820,6 +358208,10 @@ "96afaef346374e70cdf2fec425f19f7a1239e175", [] ], + "track-cue-rendering-after-controls-removed.html.ini": [ + "e6b2b3097264796f5b71620c20759dbdc209d6c3", + [] + ], "track-cue-rendering-line-doesnt-fit-ref.html": [ "8354041eb2a0aa57b283e12d9c0390f16327ac80", [] @@ -358287,19 +358679,19 @@ [] ], "sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini": [ - "7774528cba503b088738104d94c86dde95a92e8b", + "7d22c4482048821e3c3586ad2496e0d23c9ced10", [] ], "sandbox-top-navigation-child.tentative.sub.window.js.ini": [ - "ce6897a13e1dfb8c0b1412cb27eff9d89af02617", + "4d916ea98cfcaa51a6b60d1bddcd140e3d53fb5e", [] ], "sandbox-top-navigation-escalate-privileges.tentative.sub.window.js.ini": [ - "5a471c5d14bef67abb14524830cb1dee4d5a5683", + "8a0440cc94d8893999376b60e056bdea0444d13b", [] ], "sandbox-top-navigation-grandchild.tentative.sub.window.js.ini": [ - "f6d097fe095955bb078b69bde166b123ba27c40a", + "2a9af6474ceb2571eeb0f25c00742721efe87c1a", [] ], "stash.py": [ @@ -358575,7 +358967,7 @@ [] ], "image-loading-lazy-base-url-2.html.ini": [ - "51b5b40a4444ed297f2eb1c6a07fac84ea65894a", + "2e3fbd978f5bd3b40547ee704387081df3fc15fa", [] ], "image-loading-lazy-base-url-expected.txt": [ @@ -358594,6 +358986,10 @@ "05a60034ad0683c72db70f659c66075ac52c17bf", [] ], + "image-loading-lazy-data-url-to-https.html.ini": [ + "dc2ee4a3cde411b377f878919fbba20090c2111f", + [] + ], "image-loading-lazy-expected.txt": [ "724ecac7ecfd4ce12ff9faf48d58d6c79ef61472", [] @@ -358807,10 +359203,6 @@ } }, "srcset": { - "avoid-reload-on-resize.html.ini": [ - "68252033ef1ac29abb24d3e42fe54d7a5c977b7a", - [] - ], "common.js": [ "d4d2c7534c7fadac56a59a09455180f57697a6d9", [] @@ -359020,8 +359412,12 @@ [] ] }, + "text-plain.window.js.ini": [ + "1736b695b3d69f7b52a95fccd8b6d03e90da41e6", + [] + ], "urlencoded2.window.js.ini": [ - "c14d03067bea6c73844940da6d6c6f69188902a6", + "f668ba4015561031a75d9b5da69bddce4441eb16", [] ] }, @@ -359039,7 +359435,7 @@ [] ], "rel-button-target.html.ini": [ - "12a80ad04dadb978f7708cf81d7932098afc3487", + "eaf0969a095f79638be6ac7f9e5de89eed0af65e", [] ], "rel-form-target.html.ini": [ @@ -359375,7 +359771,7 @@ [] ], "selectmenu-form-state-restore.tentative.html.ini": [ - "2dbfcd2a827090ec23178c8e097b29712ffd5de1", + "5860c3a2c6059c5e9b42492368f43b3e93764281", [] ], "selectmenu-keyboard.tentative.html.ini": [ @@ -359783,7 +360179,7 @@ [] ], "activation-behavior.window.js.ini": [ - "f5ddbc8ba5601734ab87044f39ecc6f83acbeddc", + "51f89168d66291ee98e720c1e12744e04dbd0a77", [] ] }, @@ -359942,7 +360338,7 @@ [] ], "popover-focus-2.tentative.html.ini": [ - "4da507b5fa6f83ea20ce950e365d0c26546cc3aa", + "5edd59699365bc8b848f3bab3157b2e6cf355b1e", [] ], "popover-hidden-display-ref.tentative.html": [ @@ -361697,7 +362093,7 @@ [] ], "span-limits.html.ini": [ - "79cf2eb0904d09e77886dd0be4ecdf5637bc6865", + "78bcb8cae33f014765ae3d8cb2ccb1c89fbb2021", [] ] } @@ -364018,7 +364414,7 @@ }, "timers": { "negative-settimeout.any.js.ini": [ - "80e633e8f58e4fe51beac4a4ef046c40019eab2f", + "cac620ae34217b76f1c6e2070f003083e1734594", [] ] }, @@ -365225,7 +365621,7 @@ [] ], "webtransport-h3.https.sub.any.js.ini": [ - "66e623f8d70d32122d5a1abe3b40c9baf4ed21c2", + "56976838fb4c1a633308d33f511fd67f40327851", [] ], "wpt-server-wpt-flags.sub.html.ini": [ @@ -365670,7 +366066,7 @@ [] ], "badging.idl": [ - "28578621c9a4b1586798403a9c4ebc60cb5310ef", + "f34dfa7e04af9caedd85eecaed8acf68e65d1546", [] ], "battery-status.idl": [ @@ -365702,7 +366098,7 @@ [] ], "compute-pressure.idl": [ - "92a105bd52757050768247e048488214128371fa", + "2a11b84c45d5f14f6ec6f71961515f0b66783933", [] ], "console.idl": [ @@ -365710,7 +366106,7 @@ [] ], "contact-api.idl": [ - "d7f2ba5d959ee316f8045697177c0b052302107a", + "aece81664e4fdd3c4beec5e4d36da109f8dc5ba6", [] ], "content-index.idl": [ @@ -365746,7 +366142,7 @@ [] ], "css-animations.idl": [ - "eda1d0f72a4e40df879bf74ea5d862cf61598279", + "6620e0156dc85c040da7997d9d2e351147a47354", [] ], "css-cascade.idl": [ @@ -365846,11 +366242,11 @@ [] ], "css-view-transitions.idl": [ - "26c2e304066ee2e41f98acebeaacf0220124e797", + "c7ac9f336cfef03302c0df7db1cb1f9e573d0f1c", [] ], "cssom-view.idl": [ - "a61f17ea4885fb51dba7ef2d8b9780b4a67f5415", + "2046b38533f4c9d5f4ccd1ee709ce45208344acf", [] ], "cssom.idl": [ @@ -365906,7 +366302,7 @@ [] ], "event-timing.idl": [ - "2f8e031ce15d9b80a675e1c963f1c37123ee302b", + "741a05dc6bcd23d945577408c759b31affb15e5e", [] ], "eyedropper-api.idl": [ @@ -365914,7 +366310,7 @@ [] ], "fetch.idl": [ - "ba69c462f623e8d01cef07822f3b93039cf1676b", + "866d09d31bd9b9916dfcadefb17a9ec56a99cdf1", [] ], "fido.idl": [ @@ -365942,7 +366338,7 @@ [] ], "gamepad-extensions.idl": [ - "29ab815c411b4ce399570e9493f86559bfc0c85c", + "ddfc0d9c06ac9f4a2bff1737913097bb7ab21fcc", [] ], "gamepad.idl": [ @@ -365982,7 +366378,7 @@ [] ], "html.idl": [ - "d053798c05747683eb6ff5715292953490d7848e", + "70eb5eff761578bae240ee39987059063603994e", [] ], "idle-detection.idl": [ @@ -366054,7 +366450,7 @@ [] ], "manifest-incubations.idl": [ - "5342b611fcc6b7efb1b50661e804cc98fd330ba3", + "bab3998dedd1353ba95b824a36500f1ab9a69987", [] ], "mathml-core.idl": [ @@ -366154,7 +366550,7 @@ [] ], "payment-handler.idl": [ - "109e405268fbd058ad503dc08bccec3e60dc1dc4", + "c76ef0983f694234275a396a342ae0ab024c07fb", [] ], "payment-request.idl": [ @@ -366166,7 +366562,7 @@ [] ], "performance-timeline.idl": [ - "d3a5a278055eba415342f9958b6e228715dd9eb4", + "cdd8fafd8c64e6b50cc08e96a6b88655b34ce139", [] ], "periodic-background-sync.idl": [ @@ -366186,7 +366582,7 @@ [] ], "permissions.idl": [ - "701392194df95548d0f6d6f95641e4a4e3fcb557", + "fbcb674e5618af1e96b9044cbd0b29ef82d06c14", [] ], "picture-in-picture.idl": [ @@ -366218,7 +366614,7 @@ [] ], "priority-hints.idl": [ - "15c90bbe1ab7e22f9bbcb8bfac99d3b6341a07f8", + "cbff6a5222d0a911dd2ba041031e3027451d0609", [] ], "private-click-measurement.idl": [ @@ -366258,7 +366654,7 @@ [] ], "resource-timing.idl": [ - "65f0d4d4e5d9b22226bcc234aebfb21133865c53", + "242df0bd804af4cfa790b0f421d62beba58761b3", [] ], "sanitizer-api.idl": [ @@ -366278,11 +366674,11 @@ [] ], "screen-capture.idl": [ - "4c64a2f35cbeb6f8c57068dcb8216ab613d10b63", + "9abd4d2c1adf02fd063d24aeaeecb10e994fee1b", [] ], "screen-orientation.idl": [ - "62bc864282234f41cceb8d2d199af1e88a96ae78", + "df8a1db53920d618454e642efeec8b155097afbc", [] ], "screen-wake-lock.idl": [ @@ -366290,7 +366686,7 @@ [] ], "scroll-animations.idl": [ - "1ba137c3674461b55d36d2367851d46259e297eb", + "30ecbd81c908d8aff8b97c1b5f25b943fae2454e", [] ], "scroll-to-text-fragment.idl": [ @@ -366298,11 +366694,11 @@ [] ], "secure-payment-confirmation.idl": [ - "6a68f059e56b02c745ea9c224a8e30fd444ad19b", + "6b6083b165e77441751c56b30f2e831ec7903b2b", [] ], "selection-api.idl": [ - "6aaa1ae94604674cee83228cc84ea11c24f775d0", + "c1eed2a9cf243d27ba24a385fb15cfd691e37065", [] ], "serial.idl": [ @@ -366418,7 +366814,11 @@ [] ], "web-animations.idl": [ - "6030dad332f052a4a572889cde1cd73b1b128327", + "ed612302a47f5a9118f90288c86d1e69ab51463e", + [] + ], + "web-app-launch.idl": [ + "c3b6e39f3fab58e231d79625b6e3903d32edec57", [] ], "web-bluetooth.idl": [ @@ -366442,11 +366842,11 @@ [] ], "webaudio.idl": [ - "092ab52a01c73c16270abdf916e705cd29a2ead9", + "1569de204bd9ff0d8d784cd0347c35a9ab1f645f", [] ], "webauthn.idl": [ - "d35ebbfc919b399ce4a5edefec83958494e2ab1b", + "ef27322312f1cb8e9e7282a7369c0b673c113b5f", [] ], "webcodecs-aac-codec-registration.idl": [ @@ -366486,7 +366886,7 @@ [] ], "webgpu.idl": [ - "f2e038c2047d142fbad56312704e3ea5947988b2", + "5b4fcc1aa8c42aedf132d877b4f78ef1fc0ec03d", [] ], "webhid.idl": [ @@ -366502,11 +366902,11 @@ [] ], "webnn.idl": [ - "2f900b505b9479a9d17bc05d4f64be6c9d405238", + "c8a09aed9e9a72058e5c06a5483b3c740a9867fd", [] ], "webrtc-encoded-transform.idl": [ - "f1747f511507041740a7c69f70092540556f6555", + "13f3999db1222c4d8c901111ccd90cb8128ec115", [] ], "webrtc-ice.idl": [ @@ -366522,7 +366922,7 @@ [] ], "webrtc-stats.idl": [ - "237c7e474c974337caa37332101c16f9a8601f73", + "397d7838b799ed148ccd608fc27d6cbd7a39f74e", [] ], "webrtc-svc.idl": [ @@ -366538,7 +366938,7 @@ [] ], "webtransport.idl": [ - "1aa5a512da711faf1dea192f7d4f57250a601e99", + "ba705807f1298de1185c7f10231070b96fd8a3da", [] ], "webusb.idl": [ @@ -366620,7 +367020,7 @@ [] ], "cross-origin-iframe.sub.html.ini": [ - "547df299e57f1b3c7250a4bdc155e1a9cab3fec1", + "07d81d61eb21ccacea7007af6c7d05c7a789caf1", [] ], "idlharness.window-expected.txt": [ @@ -366913,14 +367313,14 @@ "observe-cross-origin-animated-image.tentative.html.ini": [ "c9f0590e8b0c879d47c4d05dd889b41f18668920", [] - ], - "observe-cross-origin-tao-animated-image.tentative.html.ini": [ - "1cd483bde895dd98ddd0bc113ae4761fe696ccb5", - [] ] }, + "cross-origin-image.sub.html.ini": [ + "c890a02a9ae5066f711b8a2aba4ca2ae8658b1ea", + [] + ], "first-paint-equals-lcp-text.html.ini": [ - "7d56e9397679a858bc0ea8f4e1681b27b96c2601", + "db9b7231021c83ea6b995cd605e1343a8fb654ce", [] ], "image-upscaling-expected.txt": [ @@ -367056,7 +367456,7 @@ [] ], "freeze.html.ini": [ - "38d7adaceef563a79aea605eff043db12b081828", + "a184acb0bf70097d4a7da5c378f85df1afdb7be3", [] ], "resources": { @@ -367121,7 +367521,7 @@ [] ], "csp-early-hints-absent-final-absent.h2.window.js.ini": [ - "d55450eb4c7914d8ff9bed827e0009b15be332c1", + "08b5950f319480f7afd6b22093dfb2596c90661c", [] ], "csp-early-hints-absent-final-allowed.h2.window.js.ini": [ @@ -367133,7 +367533,7 @@ [] ], "csp-early-hints-allowed-final-absent.h2.window.js.ini": [ - "989e58ba306126ae8d3f59f6b35d13ff2eed8f5f", + "c53530f115a0d4227a9930724a7caf5cc7ed0e35", [] ], "csp-early-hints-allowed-final-allowed.h2.window.js.ini": [ @@ -367153,7 +367553,7 @@ [] ], "csp-early-hints-disallowed-final-disallowed.h2.window.js.ini": [ - "3e116223aecd0b524ef6af7118a31a9c70420c49", + "2aa08d2c04abd9bcf012352980a3e80d97d9b583", [] ], "iframe-coep-disallow.h2.html.headers": [ @@ -367197,7 +367597,7 @@ [] ], "preload-without-as.h2.window.js.ini": [ - "6ac50adc38d97bcaca9743e9e8069256b7db0bc4", + "ed8057a60b5c4be4ff7179c77c5f4cee2492b909", [] ], "preload-without-csp-document-disallow.h2.window.js.ini": [ @@ -367209,11 +367609,11 @@ [] ], "redirect-cross-origin.h2.window.js.ini": [ - "44a1ffce2d0eaaeef32194fccbf381a0ec4e9280", + "6210ef72820f5c5705a1302908581f096e60330f", [] ], "redirect-same-origin-between-early-hints.h2.window.js.ini": [ - "66bceec28452a2a6d3c4034fbbe05aed0a70024a", + "33dd97a825fb2ac4ed1df48bc52a614bbb5dbed1", [] ], "redirect-same-origin.h2.window.js.ini": [ @@ -367476,7 +367876,7 @@ [] ], "longtask-in-sibling-iframe-crossorigin.html.ini": [ - "9aec8da79cfcdf2cf8308e10bb38a7567175ddd5", + "1281282548f76eb5fca264b5a580bc9f37e8275d", [] ], "longtask-sync-xhr.html.ini": [ @@ -368200,7 +368600,7 @@ ] }, "ignored-properties-001.html.ini": [ - "72e28090ec5f96a3d73a1aa34c4b0d14a1cf2f75", + "f779190fb74e4065db3ee9deee4b617b02213af3", [] ], "legacy-scriptminsize-attribute-ref.html": [ @@ -369260,7 +369660,7 @@ [] ], "mediasource-avtracks.html.ini": [ - "395d921ffa795d66aed85c8d87f795dce25396db", + "cf16bf59f16ed119490b3c876b184a8af21098e2", [] ], "mediasource-buffered-expected.txt": [ @@ -369332,7 +369732,7 @@ [] ], "mediasource-duration.html.ini": [ - "e23991a44d05dc947b282963b19b18ecddc52cab", + "cbf0c1cc41c16493afc10a58bfcb4b82584c4e02", [] ], "mediasource-endofstream-expected.txt": [ @@ -370616,40 +371016,6 @@ [] ] }, - "native-io": { - "DIR_METADATA": [ - "61612cf5bf09116a06c8fd490c40d365a3572c2f", - [] - ], - "META.yml": [ - "22a45c20c9b847433b0f7d9b793d8c1a96f17336", - [] - ], - "OWNERS": [ - "136f6d974686307d2f437c81894ede912ca656a5", - [] - ], - "README.md": [ - "eb1a8d268cebf1f308925cbc1fe30a2478b9fa2c", - [] - ], - "concurrent_io": { - "operation_helpers.js": [ - "8ff1ce236afd6994aff50f615b2c7e287763cb7f", - [] - ] - }, - "resources": { - "opaque-origin-sandbox.html": [ - "b3490c3341a892052ccab603722059cf8bca0cd5", - [] - ], - "support.js": [ - "f7821067fbfb92566fd774f609d35412146d88a2", - [] - ] - } - }, "navigation-api": { "META.yml": [ "de4f6c9a335bd4b7d5e99d14d37b904fe5d54182", @@ -370981,6 +371347,10 @@ "580dc21c19e71cbc51833c5d458ee34bc5e66717", [] ], + "navigate-initial-about-blank.html.ini": [ + "9ae2538c065ce18ef7e1b4bc224012d3483d40bc", + [] + ], "navigate-intercept-interrupted.html.ini": [ "5df966b3082d4dd15b10bad9ef94202e51794b84", [] @@ -371109,7 +371479,7 @@ }, "scroll-behavior": { "after-transition-intercept-handler-modifies.html.ini": [ - "81269fb15e30009b5547992fbc0ca854a12ca540", + "61cb1657f2ae6ad5810ee5721301e6c25fbb872a", [] ] }, @@ -371256,7 +371626,7 @@ ] }, "test-performance-attributes.sub.html.ini": [ - "d0a1c619e930382e80cc1a15856054973d3f5ca5", + "d7b47d0c8300a04573cada3f3f3c7f5d6034a2a2", [] ] }, @@ -371732,7 +372102,7 @@ [] ], "app-can-make-payment.js": [ - "f55cf21208eb768ccbfe28ec9d939b691cb3c260", + "cd27bce02e0920167cf19fce4c150eeadcad949c", [] ], "app-change-payment-method.js": [ @@ -371756,7 +372126,7 @@ [] ], "can-make-payment-event-constructor.https.serviceworker.js": [ - "01ce642d2342accaeadbbdc1f2f022dabd7a9689", + "5b334d9c3aca0a974c9c32063c5b56d2214a89e2", [] ], "can-make-payment-event.https-expected.txt": [ @@ -371768,11 +372138,11 @@ [] ], "idlharness.https.any.js.ini": [ - "0972e39406968b317da939f18a565875a2bc12bb", + "e65a5dbdc49d92c78602e52edcca87b8a51e8ce1", [] ], "idlharness.https.any.serviceworker-expected.txt": [ - "0174ac7ddfc3ff2acd2f6614d00936b38ca15d81", + "4e6173b7dd1bfce8515cb71c4e96ebe9c6b58b0f", [] ], "idlharness.https.any.sharedworker-expected.txt": [ @@ -372028,7 +372398,7 @@ [] ], "pending_beacon-sendondiscard.tentative.https.window.js.ini": [ - "0afa3eb6ba538b31e263ed102d977b93203d55f3", + "f2617066b9bde1c31163f7a9ea75abd921327f74", [] ], "pending_beacon-sendonhidden.tentative.https.window.js.ini": [ @@ -372125,7 +372495,7 @@ [] ], "performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini": [ - "af1aaca9dc47d6b282f5743c5c7ba78d915e7528", + "0316ca75e06945c0d66a3102c41aad823e57e5dd", [] ], "performance-navigation-timing-same-origin-replace.tentative.window.js.ini": [ @@ -372368,6 +372738,10 @@ "a54ad04c8585af431bd123c07479959332908ee2", [] ], + "unload-allowed-by-default.tentative.window.js.ini": [ + "6360a03d9b2e0a9a6e94ac5a30cf26dc57b5e32c", + [] + ], "vertical-scroll-main-frame-manual.tentative.html.headers": [ "8d9c01e14835acbc0af74b5b9157a4a8b95243f8", [] @@ -375736,7 +376110,7 @@ [] ], "reporting-isolated-across-navigations.https.sub.html.ini": [ - "ff4e0da62988e1ce1a8790cd7ccbb7fbc8f8f93e", + "a20d66455b19b74ac1f8e1f917dd2bc5e21dec8a", [] ], "resources": { @@ -375843,6 +376217,10 @@ "4fe4a41af350f4987197ffa3727c3c9a0b40100a", [] ], + "callback-exception.html.ini": [ + "a3b72563f3722036f7798399f92a764cdb659dc2", + [] + ], "callback-iframe.html.ini": [ "516c69436cb5e5697f9f77fd211fd4e8e9b6ad81", [] @@ -375876,7 +376254,11 @@ [] ], "deadline-max-rAF-dynamic.html.ini": [ - "f827d6250bf610959f743f72b5d29b4f9522627d", + "f581f8945f25e23e294a4c6eb69e03b5f16c4599", + [] + ], + "deadline-max-rAF.html.ini": [ + "ff1add8eb5eddf272807a4a0078afbb6ae0a2ece", [] ], "deadline-max-timeout-dynamic.html.ini": [ @@ -375984,7 +376366,7 @@ [] ], "content-type-parsing.html.ini": [ - "affb928e47ef29adb6b3458452c5fd797915d146", + "d64197bdd4f04836640e679b833b75c76e4035ed", [] ], "frameset-timing.html": [ @@ -376024,7 +376406,7 @@ [] ], "nested-context-navigations-iframe.html.ini": [ - "58d4c1014736b3b59f15fd1d5f7fb57a923ac48b", + "1c863b1c874497b9d7e062e1f223c1855f77a256", [] ], "nextHopProtocol-is-tao-protected.https.html.ini": [ @@ -376036,7 +376418,7 @@ [] ], "no-entries-for-cross-origin-css-fetched-memory-cache.sub.html.ini": [ - "ff8840b1c4670c311ffe8732818d81842e38a5aa", + "95e0598cae0b74bde122230a1afb28ffaeb460fc", [] ], "ping-rt-entries-expected.txt": [ @@ -376434,7 +376816,7 @@ ] }, "response-status-code.html.ini": [ - "5496d8a03c56938d14b220e199ef0960a2fd1590", + "46b003af0cc7885ca6cce572ecfc8ffe22e2e871", [] ], "sleep.py": [ @@ -376630,7 +377012,7 @@ [] ], "idlharness.js": [ - "bda4a31fb0ee617b53a668325a54bb50ce46e3ba", + "46aa11e5ca123c2af1327fce7f9df4a1b7974fdc", [] ], "idlharness.js.headers": [ @@ -377493,6 +377875,14 @@ "d5d199068c5b0465f96ed643af8d7d20a889312e", [] ], + "idlharness.window-expected.txt": [ + "aab2a3eb9b8dff1640f41a1b2707743c8422d7a1", + [] + ], + "idlharness.window.js.ini": [ + "61d4af159f4ab22f4895677658e7e9710bd25491", + [] + ], "modify-line-flex-row.tentative-expected.txt": [ "28340e708604225d83759ee7662da3d4b90bf989", [] @@ -378397,7 +378787,7 @@ [] ], "cache-add.https.any.js.ini": [ - "6af02218b5b2c5ed518ec57e09f313d9239354bc", + "b2db2c56e6b40c7dd380a487f6fdfd51cd292d29", [] ], "cache-add.https.any.serviceworker-expected.txt": [ @@ -378655,11 +379045,11 @@ [] ], "about-blank-replacement.https.html.ini": [ - "c59a16f3f05b2c5ffde6c477c227fb8ad9b3cf6a", + "44673f0a5f7c3367517b39b82019fb80db5262b9", [] ], "client-navigate.https.html.ini": [ - "3c0cf64aa232d2b5c99f8a70eec0ec3298a69ac3", + "19fc7b481cdc260032e848ff33dfa8dcef5fb27c", [] ], "client-url-of-blob-url-worker.https-expected.txt": [ @@ -380555,7 +380945,7 @@ [] ], "unregister-immediately-during-extendable-events.https.html.ini": [ - "5f5d44ef6825889ebe4a83a500c41ac97fecd7c6", + "4507f109d4a7c9681a8acaa819e15213d5906200", [] ], "unregister-then-register-new-script.https-expected.txt": [ @@ -381367,7 +381757,7 @@ [] ], "navigation-timing-sizes.https.html.ini": [ - "53d3be246cc879df8cd5fbba1dfcd751f27eaf33", + "ece08a3a9ffc971eddf864869e026cc95c7078a8", [] ], "no-vary-search": { @@ -381449,7 +381839,7 @@ }, "prerender": { "about-blank-iframes.html.ini": [ - "555cff455097ed25c106f1cbafc86927235e9801", + "aa7329b40fda09970de4cfdfdb3687abdac26c78", [] ], "accept-clint-hint-cache.https.html.ini": [ @@ -381469,7 +381859,7 @@ [] ], "cookies.https.html.ini": [ - "e492233ce6056e6972e7fcc6cd38da4040e007c7", + "5a0542c78c305e8ae7c8882037c529d6cb76fd4f", [] ], "credentialed-prerender-opt-in.html.ini": [ @@ -381477,7 +381867,7 @@ [] ], "cross-origin-iframe.html.ini": [ - "47d7e2cbb9b011b92293505ba14572be6896b61b", + "1cda8fac1349b9f2d2e29f7cb4bd47f30a7991ec", [] ], "cross-origin-isolated.https.html.ini": [ @@ -381501,7 +381891,7 @@ [] ], "csp-script-src-self.html.ini": [ - "23f1c74d2192d78ec8bfdc0e18f8bc75d497bf36", + "148ccc34a2f468be254420f002ae638f46567238", [] ], "csp-script-src-unsafe-inline.html.ini": [ @@ -381517,7 +381907,7 @@ [] ], "iframe-added-post-activation.html.ini": [ - "6b9bf4fd20cef688bed633eea961bafe048aa419", + "639ddc1b8df708a9655f77e69e9ca9fe83c28ed6", [] ], "indexeddb.html.ini": [ @@ -381549,7 +381939,7 @@ [] ], "referrer-policy-from-rules.html.ini": [ - "c96a9be02b0806a01546d4b2c341b10d0ac3dc43", + "d0cdf48e1836c842433cf2c8d731e59a18443330", [] ], "referrer-policy-mismatch.html.ini": [ @@ -381901,10 +382291,6 @@ "f7436e42ce4c2e580e9bb7e95962fb4ba8d98405", [] ], - "storage-foundation-access.https.html": [ - "db965fa928f2ad01285e362d9c8fb7d374acd29c", - [] - ], "storage-persist.https.html": [ "ab5fabd9e3099fbf1fd47f2d01461ec64b4352fa", [] @@ -381987,11 +382373,11 @@ ] }, "response-code-non-successful.html.ini": [ - "dc41559188572c33f486292f66492bb9956ba088", + "4b1e4a64903e62075427fb7902f93c5b28e27eec", [] ], "response-code-successful.html.ini": [ - "a98d0a405b61e8ed2b63e3d52c20cec2c96617ee", + "4a3d841c51c3b173582d290b60a027d80f4d59e6", [] ], "restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html.ini": [ @@ -382015,7 +382401,7 @@ [] ], "restriction-bluetooth.tentative.https.html.ini": [ - "ebc3e375c39a321111cc155ac1f4dd9137b73fb7", + "8dacf33334b4b93b78abf35afd65e007ea45c378", [] ], "restriction-broadcast-channel.html.ini": [ @@ -382023,7 +382409,7 @@ [] ], "restriction-dedicated-worker.https.html.ini": [ - "4aeadc53fb826a843e3a9ceedf09e3d68e77daa4", + "9362fa3dfd23e482e1bc3618d11486040fcb6064", [] ], "restriction-encrypted-media-unsupported-config.https.html.ini": [ @@ -382039,7 +382425,7 @@ [] ], "restriction-idle-detection.https.html.ini": [ - "407d3c40961570600c0c4b973b71285416e8d7ca", + "f9c08def1f4bbd3f39648fd0af9d2505164882c8", [] ], "restriction-local-file-system-access.https.html.ini": [ @@ -382067,7 +382453,7 @@ [] ], "restriction-message-boxes.html.ini": [ - "a19061396a8e8780f34563f70ec2627d23d9f65a", + "aeb2a55b80067815a8f7a29f90ebe9516a3f2544", [] ], "restriction-midi-sysex.https.html.ini": [ @@ -382091,7 +382477,7 @@ [] ], "restriction-prompt-by-before-unload.html.ini": [ - "465f205d31b2c64fbf8abc8dfd6932d663df3e38", + "9071c15b87697193ea73217de7e7e382282251e6", [] ], "restriction-push.https.html.ini": [ @@ -382103,7 +382489,7 @@ [] ], "restriction-screen-capture.https.html.ini": [ - "d5fb1f04fe0f3bcad366f5563e21fbd7616ee3c7", + "eae5030bd126293522bc44be0c8a546ec4d529db", [] ], "restriction-screen-orientation-lock.https.html.ini": [ @@ -382139,7 +382525,7 @@ [] ], "restriction-speech-synthesis.html.ini": [ - "c8b329d54aa3a58e3d46a6bcf37e2690d62df42e", + "6984300e6cd9030dfa2b49775fba95f141b0a14c", [] ], "restriction-storage-persist.https.html.ini": [ @@ -382151,11 +382537,11 @@ [] ], "restriction-web-hid.https.html.ini": [ - "4491024d2e5ae8cf511a63876628a7319d0102cc", + "671c261bfcebc4283a2354688253e2257bb58b8a", [] ], "restriction-web-locks.https.html.ini": [ - "eb9f2ef76f3bb3a5a3e5124c258c2ba9d0bb3076", + "d55497aebf9840b327c385139090af4fabebdd0b", [] ], "restriction-web-nfc.https.html.ini": [ @@ -382167,7 +382553,7 @@ [] ], "restriction-web-share.https.html.ini": [ - "9e705b807a47eb8a7ae02e2c4c116679250d9b98", + "6a5f19de3f558db0115949b8889e905aa1e511cb", [] ], "restriction-web-usb.https.html.ini": [ @@ -382223,31 +382609,23 @@ [] ], "session-history-subframe-navigation.https.html.ini": [ - "ff00e55636afe27f0cbbc2f55f6f17bcddde7d85", + "84a416f1206f12bd4d47f090e54f4276f6db2fa4", [] ], "session-history-subframe-reload.https.html.ini": [ - "c8f6acf6e919124cbc6201d409da22fa221cfa92", + "833b7bd0c827f6b2dc1d36fffffd5b2d9302e22f", [] ], "state-and-event.html.ini": [ "1024f525bd89563ef01ad1c2f508ec36b8f28b41", [] ], - "storage-foundation.https-expected.txt": [ - "8b137891791fe96927ad78e64b0aad7bded08bdc", - [] - ], - "storage-foundation.https.html.ini": [ - "a2e584a5ba4ee75cb1f182211699ba662a268d4d", - [] - ], "visibility-state.html.ini": [ "74ef4a0fc139ef3b8530e09f82b46971cc467f68", [] ], "web-database.https.html.ini": [ - "178759eaa953c1f7a6472ead78acda9f925b3e56", + "2d394993c0aea51dfce56d09ddffa0d888ad3a2b", [] ], "windowclient-navigate-to-cross-origin-url-on-iframe.https.html.ini": [ @@ -382263,7 +382641,7 @@ [] ], "workers.html.ini": [ - "bea4222f27851dccbb90476168b980946342743c", + "a986d42ada540991b539b92e5597b2487a0aafc3", [] ] } @@ -382301,14 +382679,6 @@ "9cb5880aa39ca83ee43e24622c2f18c6970a01e0", [] ], - "SpeechSynthesisUtterance-basics.https-expected.txt": [ - "b298faad294628c96925b89f8cacad395f00f97f", - [] - ], - "SpeechSynthesisUtterance-basics.https.html.ini": [ - "aee42a993935f72c91aa1925101b44466fb1d52e", - [] - ], "historical-expected.txt": [ "126cd0d91f1118a67579f553b521c2f77302e989", [] @@ -382373,6 +382743,10 @@ "8a7d54555472bc0b62505c770b780be2302c79cd", [] ], + "partitioned-estimate-usage-details-caches.tentative.https.sub.html.ini": [ + "286fa1fc75fd08c6e6765651a60bf205d054ed58", + [] + ], "resources": { "partitioned-estimate-usage-details-caches-helper-frame.html": [ "13786d7ceafca799bd44c20482085278283303ca", @@ -386072,7 +386446,7 @@ [] ], "a-element-xhtml.xhtml.ini": [ - "0e56240999a61fc731006830a78b69bf32d31ce0", + "bdea44bed35037d5e0e848cebbc0e0bba1f232f8", [] ], "a-element-xhtml_include=javascript-expected.txt": [ @@ -386084,7 +386458,7 @@ [] ], "a-element.html.ini": [ - "42b42a2f205f6715a88c460a185d74b6104ab8bf", + "09107dee302b6cb2697e9f933407ecbcaaaf2cd2", [] ], "a-element_include=javascript-expected.txt": [ @@ -386096,7 +386470,7 @@ [] ], "failure.html.ini": [ - "97ce9874698c763da51039b3e9d709d2bb581aff", + "764b2f94de861ef7f831c167e385c7c717af9ffb", [] ], "idlharness-shadowrealm.window-expected.txt": [ @@ -386107,6 +386481,10 @@ "1fb49415db04546f898a6416b2794ee4d1c1e4ad", [] ], + "percent-encoding.window.js.ini": [ + "36d57023fae6a0fbf2d834ab075a368470e527de", + [] + ], "resources": { "a-element-origin.js": [ "cb7d4a895c40c456c3f4c0ade050115319ad410c", @@ -386142,7 +386520,7 @@ [] ], "toascii.window.js.ini": [ - "f1a9b16df7d1ee5bef2cd897d4ab8341aa1e0cea", + "bfb782f6ca2103ebe15ca2d59c0db841957c0d78", [] ], "url-constructor.any.js.ini": [ @@ -386170,7 +386548,7 @@ [] ], "url-setters-a-area.window.js.ini": [ - "71ef2b0e1f86b48b1865eadb849054e12797e108", + "6dad5c955bc387a704253dfa24ef45d13517becc", [] ], "url-setters-a-area.window_include=javascript-expected.txt": [ @@ -386186,7 +386564,7 @@ [] ], "url-setters-stripping.any.js.ini": [ - "ad2f860fc3677f34b0f5d29d7f7248d15cd4099b", + "68d160ce46ff159431e4f42981317470276bf2b6", [] ], "url-setters-stripping.any.worker-expected.txt": [ @@ -386194,7 +386572,7 @@ [] ], "url-setters.any.js.ini": [ - "2cdb9571d4477e1a7b3ab2e4d56c4cb80477b6da", + "51787b791efbe3762ce212b7427c13170ed2767f", [] ], "url-setters.any.worker_include=javascript-expected.txt": [ @@ -386218,7 +386596,7 @@ [] ], "urlsearchparams-delete.any.js.ini": [ - "e35316b04d7b07af1c492394667bdc0a1388039d", + "8c158fa34ac4150093a4f6cb864d42e3e0f50722", [] ], "urlsearchparams-delete.any.worker-expected.txt": [ @@ -386226,11 +386604,11 @@ [] ], "urlsearchparams-get.any.js.ini": [ - "9c74fd4fd8d68e549eeced0730dbb78e09125ef9", + "3c8d8fe063c7c49fbcb1055276c06a368a83863c", [] ], "urlsearchparams-stringifier.any.js.ini": [ - "6439b79b689574cbf46c27472392e52da9df0484", + "e3259c3a89c26e14f9cb23a2047b939b33fdaeb8", [] ] }, @@ -386268,7 +386646,7 @@ [] ], "case-sensitivity.any.js.ini": [ - "81bad87251b9b211619ad95dc0c42ccdd07b796a", + "133dfaa7deb97cadec522c04d9b9f5730aaaf70b", [] ], "idlharness-shadowrealm.window-expected.txt": [ @@ -386438,7 +386816,7 @@ ], "constructor": { "compile.any.js.ini": [ - "04173d1fcd126861ce77f457b555b4a5a2a49b2e", + "541072a1ad91fe9003b0d4d19928e4196a7727ba", [] ] }, @@ -387212,7 +387590,7 @@ } }, "idlharness.window-expected.txt": [ - "80e721fefaf6e0784a8b03e8d531c962a36089a5", + "c38dda9605a6aec523ada48404a5df60ff4d1c70", [] ], "idlharness.window.js.ini": [ @@ -387240,7 +387618,7 @@ }, "Animation": { "finished.html.ini": [ - "1311a6a60d04d6b5f64dd34510156105b8ae9754", + "b8cc7340df3faf93b73bab05ed350ced950ab260", [] ] }, @@ -387460,7 +387838,7 @@ [] ], "sibling-iframe-timeline.html.ini": [ - "fda793bb285bae3f6cddefbd47036b789da06e18", + "f045b6a37708965347f53163dac9716363838a90", [] ], "timelines.html.ini": [ @@ -387867,7 +388245,7 @@ [] ], "resource-timing-attributes-consistent.https.tentative.sub.html.ini": [ - "a0a908d6947b5061a2061c9692b18ad18b67e2c7", + "46f534798aa0d34229da9cfca960f7f2b6c242d6", [] ], "resources": { @@ -387885,7 +388263,7 @@ ] }, "reuse-web-bundle-resource.https.tentative.html.ini": [ - "9c8170d687145a60ee382ebe341035c0d6883a15", + "750959d85f19b8ff6e7e3536e7e8b4d4f720af2f", [] ] }, @@ -387939,7 +388317,7 @@ [] ], "sharedworker-multiple.tentative.https.html.ini": [ - "d8bf264011d4080217ef892d547ee92890c3aed3", + "169cb7017e6155b39330d75a57e12438d22bcd2f", [] ] }, @@ -388246,7 +388624,7 @@ }, "the-analysernode-interface": { "test-analyser-output.html.ini": [ - "9673c067ce940429c2761735c2f54f3ac6212694", + "46c0f33d523445e66925373e5ff601b757d07600", [] ] }, @@ -388347,6 +388725,10 @@ "5574a563d6f48095e521ecc4aaf7060541d3c725", [] ], + "audioworkletnode-output-channel-count.https.html.ini": [ + "97f1aa6933157db4fc4564d7095f4c274919d1ec", + [] + ], "audioworkletprocessor-promises.https-expected.txt": [ "ecc24fe05e8a87fcd79a9de92e21f7e38207ca0f", [] @@ -388508,10 +388890,6 @@ "active-processing.https.html.ini": [ "c45c45fe5e591f0dc58cabb2654573f2813efe78", [] - ], - "convolver-response-4-chan.html.ini": [ - "9c0d59a77e7824048b91f56b2f8d52d4e5c76459", - [] ] }, "the-delaynode-interface": { @@ -388526,11 +388904,7 @@ }, "the-mediaelementaudiosourcenode-interface": { "mediaElementAudioSourceToScriptProcessorTest.html.ini": [ - "93fe64730d11fed13a1e159500ac6ed2bbba250a", - [] - ], - "no-cors.https.html.ini": [ - "af268033c7d6d8d28ea340ce3a1dfe37ad488677", + "a30e93bec60672e5c3ef628de095c7d7f052633b", [] ] } @@ -389642,6 +390016,10 @@ [] ], "broadcastchannel": { + "cross-partition.https.tentative.html.ini": [ + "2362edfb754c767805ed68346edaa8a25cce04ae", + [] + ], "opaque-origin-expected.txt": [ "3a5c2ffe73c81c2ab474909924caf7197bc2cc92", [] @@ -389650,6 +390028,10 @@ "78a2399e152728ede2bb513b81091cbdee406093", [] ], + "origin.window.js.ini": [ + "df1f5ad7646d059bae0d9e4c1b34180c99a3e8e3", + [] + ], "resources": { "cross-origin.html": [ "5078b6fc8e46f556fe1b86c7e1aa5a141c132be1", @@ -389717,7 +390099,7 @@ [] ], "worker-post-after-close.any.js.ini": [ - "be207b65f5e4c4892a8ea9cd2348035548674423", + "38e85428689067832d346340f862f98b5478bf08", [] ] }, @@ -389735,7 +390117,7 @@ [] ], "broadcastchannel-incumbent.sub.html.ini": [ - "b7ed439511b5a8337fc4d9c8cf7de759e0ea3891", + "6742e10278a81a61ec2e9df0addcb894fba30326", [] ], "support": { @@ -389860,15 +390242,15 @@ [] ], "idlharness.https.any-expected.txt": [ - "ab8aed910df143d7f68e3bd1152b1d81f50b5584", + "858b47cb4486a976a4c03eb06d0ce71c1e82528a", [] ], "idlharness.https.any.js.ini": [ - "38d8bc33f28fe39696f388385484ffb6badec6e3", + "4c1b1e45742e3bb6e941f3ddf7febfa09a951fdd", [] ], "idlharness.https.any.worker-expected.txt": [ - "21d0d61afc33675f6780646bbefa71ca6c8728e6", + "a4befa254796a510009d0b0ad9fcafe85eefdb4b", [] ], "resources": { @@ -390060,7 +390442,7 @@ [] ], "RTCPeerConnection-onicecandidateerror.https.html.ini": [ - "ba907ae99240675e340754dc91272e55efab18bc", + "14dff26b362efb1a35516e5684a2813747ea2afd", [] ], "RTCPeerConnection-operations.https.html.ini": [ @@ -390722,11 +391104,11 @@ [] ], "supported-stats.https-expected.txt": [ - "f16996062400725e983d7034d007d6e5a929c395", + "fe1bbcffbec81d71ee377f232f5b392e23edd6e3", [] ], "supported-stats.https.html.ini": [ - "1b34d1184b152bcae16f5256e0f9525a787255a5", + "a68414e979610f469861df570d128ca7cd5f9cf2", [] ] }, @@ -391198,6 +391580,10 @@ }, "WebSocket": { "bufferedAmount": { + "bufferedAmount-defineProperty-setter.html.ini": [ + "fa43da553b335be7d3bf92bc193903ba0368ae2f", + [] + ], "bufferedAmount-getting_wpt_flags=h2-expected.txt": [ "0eef06727c15c4c2b3cab9caa943d822ad85058b", [] @@ -391366,7 +391752,7 @@ [] ], "close.any.js.ini": [ - "381caf018a44cbf4f4e93a35e8fc96bd229c3229", + "2dc8a8214aefa60c11c782de446684c23651a54d", [] ], "constructor.any.serviceworker_wpt_flags=h2-expected.txt": [ @@ -392436,10 +392822,6 @@ "d4bd2b74c2db0e560114109af960c7f38cb38575", [] ], - "audio_has_no_subtitles.html.ini": [ - "6a131e93824e3d10701a21726ed463f487d76d3d", - [] - ], "background.png": [ "6d16cc84c4dd3b8777bd83d97888eaf8d351f6b5", [] @@ -394910,7 +395292,7 @@ [] ], "events_referenceSpace_reset_inline.https.html.ini": [ - "1ce49284877fef1bb51c9f36344d5b108ffe05c9", + "00c1d56bf0b835c4ab75baee491703b102791134", [] ], "events_session_select.https.html.ini": [ @@ -395106,7 +395488,7 @@ [] ], "webxr_feature_policy.https.html.ini": [ - "aca8d11e37fdb151b89e48366c881f580db8854e", + "3d63abd4392aee449927491e8455a99ed9b2a2fc", [] ], "xrBoundedReferenceSpace_updates.https.html.ini": [ @@ -395266,7 +395648,7 @@ [] ], "xrSession_requestAnimationFrame_getViewerPose.https.html.ini": [ - "13ee403018cff6c6a876a924f21469c64bebaf7a", + "fa08ed77a357690955e996efebc11d38a94595b4", [] ], "xrSession_requestAnimationFrame_timestamp.https.html.ini": [ @@ -395278,7 +395660,7 @@ [] ], "xrSession_requestReferenceSpace_features.https.html.ini": [ - "819352f75170ff7890e8f4299266d5e4e7158570", + "81dc9682bc0745cce68aeddc332af318428ccd6c", [] ], "xrSession_requestSessionDuringEnd.https.html.ini": [ @@ -395691,10 +396073,6 @@ "7459f592861bee94ea55c66b080de46afc0a6b7a", [] ], - "data-url-shared.html.ini": [ - "298751cfede5f6617127beeb81b91edbfa0c1477", - [] - ], "dedicated-worker-from-blob-url.window.js.ini": [ "282999e38b34fbb255ff0a9021e8419d9f039d02", [] @@ -395704,7 +396082,7 @@ [] ], "dedicated-worker-in-data-url-context.window.js.ini": [ - "8e3ebef3e6e51467127721e825be154a6e3bcac3", + "491bbc07d1a0296cc85e4779c53f2d568be5445a", [] ], "dedicated-worker-parse-error-failure-expected.txt": [ @@ -395801,7 +396179,7 @@ [] ], "setInterval.html.ini": [ - "61d568f712814e4c0d0f4b085cc2bd14e93ab916", + "8cb5e5ea82fb3089324fe052166e411433315e4f", [] ], "setInterval.js": [ @@ -395830,10 +396208,6 @@ "1c6515f8e201ef9439a48434033acafaecd68517", [] ], - "redirect.html.ini": [ - "3a0f10f26cb7bf5f58f70a9cb9691f6886a5421a", - [] - ], "redirect.js": [ "2db48544a2d7d7f55201043e73297283cd99c263", [] @@ -395896,10 +396270,6 @@ "a96c08844202e430201d9b9e32f6fef6b36f46ac", [] ], - "003.html.ini": [ - "a724a8c2de86b803ca7aaec68b9da645014b4a9b", - [] - ], "003.js": [ "e64e4e2179f0fb51347eea052f889b025af8e70a", [] @@ -395922,6 +396292,10 @@ "20dd1edbee379463379621a420c8042f1c71f8dd", [] ], + "003.html.ini": [ + "df5625513ab314bd0b1b1468fd54a697f69f4879", + [] + ], "003.js": [ "6e378ef20fff1485d9e374b8bb5747d3dd12f965", [] @@ -395986,10 +396360,6 @@ "a17a9a3a12cefe883a5d4dee4d5a45bef120d050", [] ], - "report-error-cross-origin.sub.any.js.ini": [ - "fb1eade954f9eca22934300938d415d4e2ec149a", - [] - ], "report-error-helper.js": [ "7fc6d0dd64bc82527621a90f848d080a195ed212", [] @@ -396543,6 +396913,10 @@ "68d7e91d451e6143ef5a68c2686b785ba178e1f0", [] ], + "003.html.ini": [ + "df5625513ab314bd0b1b1468fd54a697f69f4879", + [] + ], "003.js": [ "1a9c5a7ee816a95c8bbd8510ea234c917d8df2f0", [] @@ -396576,7 +396950,7 @@ [] ], "shared-worker-in-data-url-context.window.js.ini": [ - "5f4813ffa460d69a9f767322ae29502df3cdc1c1", + "e0d2ea3da3267420c2716d5c8b4fc826e331f0c1", [] ], "shared-worker-parse-error-failure.html.ini": [ @@ -397007,6 +397381,10 @@ "2fad3599d5cf2b189b422bbe2dd4ff9a2f134817", [] ], + "get-decode-split.html.ini": [ + "5afb0df2749d98a18d59972e8a6d999e325b6e25", + [] + ], "multiple.html.ini": [ "00af5bf1a025b0dd72bbf0b8b1bebe1a2f64af30", [] @@ -397732,7 +398110,7 @@ [] ], "send-timeout-events.htm.ini": [ - "3811a2d18320f59f6f50d6850af08c226d38ae09", + "7f24ac7b6faf42128c982518b866ad564eb9a103", [] ], "setrequestheader-combining.window-expected.txt": [ @@ -414545,6 +414923,41 @@ ] } }, + "getAvailability": { + "reject_opaque_origin.https.html": [ + "8745fc9551bba2148632563b5f125b21e2d1427c", + [ + null, + {} + ] + ], + "sandboxed_iframe.https.window.js": [ + "c5e3d1e89038cf99bc7553ca5014e48b215dbc6d", + [ + "bluetooth/getAvailability/sandboxed_iframe.https.window.html", + { + "script_metadata": [ + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "/bluetooth/resources/bluetooth-test.js" + ], + [ + "script", + "/bluetooth/resources/bluetooth-fake-devices.js" + ] + ] + } + ] + ] + }, "getDevices": { "granted-devices-with-services.https.window.js": [ "3228543617decdc9a213883d650ba33ffd9b90c1", @@ -414598,6 +415011,13 @@ } ] ], + "reject_opaque_origin.https.html": [ + "64b2808fbce3663ee447b8ecd3d00b6fc07a73f7", + [ + null, + {} + ] + ], "returns-same-bluetooth-device-object.https.window.js": [ "81c0f6a97e947c9a469ca74a180d595f493561e2", [ @@ -414623,6 +415043,32 @@ ] } ] + ], + "sandboxed_iframe.https.window.js": [ + "22cfd17d466489b37c20e3148fb6c3f566f52263", + [ + "bluetooth/getDevices/sandboxed_iframe.https.window.html", + { + "script_metadata": [ + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "/bluetooth/resources/bluetooth-test.js" + ], + [ + "script", + "/bluetooth/resources/bluetooth-fake-devices.js" + ] + ] + } + ] ] }, "idl": { @@ -415612,7 +416058,7 @@ ] }, "cross-origin-iframe.sub.https.window.js": [ - "a5e6fac25e3bf2156002c21fac7bd2d46f6983f5", + "d802a862791e98e5a8694e34bd4fbaf554b9f9b5", [ "bluetooth/requestDevice/cross-origin-iframe.sub.https.window.html", { @@ -415845,6 +416291,13 @@ } ] ], + "reject_opaque_origin.https.html": [ + "df348dd39e0b62cb38605b94e0c98e4e155c1dbc", + [ + null, + {} + ] + ], "request-from-iframe.https.window.js": [ "d3f3cf897ff6f4eb97253f63843db888824a54fa", [ @@ -415872,7 +416325,7 @@ ] ], "request-from-sandboxed-iframe.https.window.js": [ - "17a9da333a5d5c8f4f5af2932ad76f01e0408475", + "2101cf0d6b747836f60d04c07774e3a100efed1f", [ "bluetooth/requestDevice/request-from-sandboxed-iframe.https.window.html", { @@ -415923,6 +416376,32 @@ } ] ], + "sandboxed_iframe.https.window.js": [ + "e9192a9305b14763d3cabe7c6ddfb3b38f1015da", + [ + "bluetooth/requestDevice/sandboxed_iframe.https.window.html", + { + "script_metadata": [ + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "/bluetooth/resources/bluetooth-test.js" + ], + [ + "script", + "/bluetooth/resources/bluetooth-fake-devices.js" + ] + ] + } + ] + ], "single-filter-single-service.https.window.js": [ "67afad0b930c7930614f3ed17a0db78e1aa20d69", [ @@ -415950,6 +416429,41 @@ ] ] }, + "requestLEScan": { + "reject_opaque_origin.https.html": [ + "272c5aa760cf7f5bedc24e2d652d68164ab353d3", + [ + null, + {} + ] + ], + "sandboxed_iframe.https.window.js": [ + "32d1e74b778d9932b5104824b69cf21cf6a3ff6b", + [ + "bluetooth/requestLEScan/sandboxed_iframe.https.window.html", + { + "script_metadata": [ + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "/bluetooth/resources/bluetooth-test.js" + ], + [ + "script", + "/bluetooth/resources/bluetooth-fake-devices.js" + ] + ] + } + ] + ] + }, "server": { "connect": { "connection-succeeds.https.window.js": [ @@ -438348,6 +438862,13 @@ {} ] ], + "font-style-interpolation.html": [ + "4666025d545860405b62a2571a0b74e3a2a06d8a", + [ + null, + {} + ] + ], "font-variation-settings-composition.html": [ "58f037415e23801fb2c540e5ae3b032cdd4ff0c8", [ @@ -446714,7 +447235,7 @@ ] ], "registered-property-cssom.html": [ - "95c4c17b598be2109227aa0cde6e02d9e6b1147d", + "6231e27e770a8d68ce408ddffcda29196c74e24a", [ null, {} @@ -453078,6 +453599,13 @@ {} ] ], + "text-align-match-parent-002.html": [ + "19596e36aff5c532efae6fa81dc5c72887947cb6", + [ + null, + {} + ] + ], "text-align-webkit-match-parent.html": [ "aaf481a9d1e4bd6e9dc950584a9dfb4938614f3f", [ @@ -455817,7 +456345,7 @@ ] ], "animation-duration.html": [ - "d31f165dff49223e3132249abe8e7193dd1c2b77", + "fa78ece016dec262d5ab5d3272ac0ed9f4addeab", [ null, {} @@ -455831,7 +456359,7 @@ ] ], "animation-iteration-count.html": [ - "4ff575612e06806077fffa08edd75c9159fc2ae5", + "627b281c7fd8b1c970de3cd06dac850d9b43b807", [ null, {} @@ -455957,7 +456485,7 @@ ] ], "block-size.html": [ - "d1a1e0957755af2d199b5abf2e1df521bdc9eb9b", + "311df4d422796c298485045884a8a32c42dddc2a", [ null, {} @@ -456293,7 +456821,7 @@ ] ], "flex-basis.html": [ - "5795abbb714c08591d8e83a80cde52d916862bca", + "de0d62ee6b73ae897d189d32825faadb70d52876", [ null, {} @@ -456314,14 +456842,14 @@ ] ], "flex-grow.html": [ - "9c04ad30c865c5218f60b89752f64dbd90bdaeee", + "bee9e56eab7b36a2111a04f0a578d2858e4ca8f4", [ null, {} ] ], "flex-shrink.html": [ - "30ee7db84d810536bc00e9e8f66e94f80b23c2a3", + "3992fa4749bb569cf152bc790fa2bfff6bed4adf", [ null, {} @@ -456412,7 +456940,7 @@ ] ], "font-size-adjust.html": [ - "71cb54c7272896313de39551f3cb5029b4fc7de9", + "be065987ce13fc09abf527fe3af473b25394092e", [ null, {} @@ -456426,7 +456954,7 @@ ] ], "font-stretch.html": [ - "3871ff3e04fdd1bbf9fb55fa7d899e239995e311", + "40cffaf04495af0a59386e37ef1e2e54e2f9a41c", [ null, {} @@ -456517,7 +457045,7 @@ ] ], "gap.html": [ - "e07d1cd54d514b7b84867fdfafbe8f1720fdd88e", + "20ff5816a7c04b3868430e03d66a7dd6b17f3675", [ null, {} @@ -456629,7 +457157,7 @@ ] ], "letter-spacing.html": [ - "ccbf0a0e6ac6739617d4ea1dbee1d795427ae918", + "9d313c13955a385920a60fc8e836bf8b296c6e95", [ null, {} @@ -456678,7 +457206,7 @@ ] ], "logical.html": [ - "9a2b208b3832d02c49793a24d0c21a84f4e0e62b", + "2e451d6aa99c3a63c463eeb889cd4ddbab1db36c", [ null, {} @@ -457007,7 +457535,7 @@ ] ], "shape-margin.html": [ - "ca517bbef44e891f43006eb07ccf180852b32ad9", + "60adc7aff50d60355cea232a81d73869d36cbbc1", [ null, {} @@ -457049,7 +457577,7 @@ ] ], "stroke-dasharray.html": [ - "6e8fdc4a8014eaae1b96579f83cbc398bfb463bf", + "6c3731cc48063961395b6e729eb7e95cc148e925", [ null, {} @@ -457399,7 +457927,7 @@ ] ], "width.html": [ - "29b3382b1dd4a2eabf6f8b9a46c94c82060fdb34", + "9f15043733f8919f880d81d31c9b49b87788e933", [ null, {} @@ -464080,6 +464608,13 @@ {} ] ], + "only-of-type.html": [ + "28a0ae7655b29af9bb0a50a5f188eeb8b7e57d35", + [ + null, + {} + ] + ], "parsing": { "parse-attribute.html": [ "a8fcfb24f5a9b1350adda6e59af814f1111325c1", @@ -536090,11 +536625,12 @@ "semantics": { "disabled-elements": { "disabled-event-dispatch.tentative.html": [ - "c5e34a2341b4108c3ba43d683c2920f4ab179ad7", + "e2b8846fc3dbe982b614e81c83fdfa99280bb650", [ null, { - "testdriver": true + "testdriver": true, + "timeout": "long" } ] ], @@ -536106,7 +536642,7 @@ ] ], "event-propagate-disabled.tentative.html": [ - "0c00cc8db078b027acca3eec4b70d4092c19df08", + "9c8642d10f99b16d41401f28489104d4b4a651cf", [ null, { @@ -544405,7 +544941,7 @@ ] ], "popover-attribute-basic.tentative.html": [ - "1bc32dbace31840ddb7d9f7bf3aedc9169067df2", + "d16e34f896e7bdc258595dda60319907fccb1df5", [ null, { @@ -544436,7 +544972,7 @@ ] ], "popover-focus-2.tentative.html": [ - "e0effbd866c4f512b87599931d539e460b56b9c9", + "569b633886cf6a77546a5bd6680b339ff05db1c3", [ null, { @@ -544479,7 +545015,7 @@ ] ], "popover-light-dismiss.tentative.html": [ - "83573c86f06f838a8d810e01c4d9f95eee256526", + "3c48bd9274e88e61d023071610d765b83dd68f4b", [ null, { @@ -563658,2442 +564194,6 @@ ] ] }, - "native-io": { - "capacity_allocation_async_basic.tentative.https.any.js": [ - "93e2e9873a8512464344949680f318c78efa4df7", - [ - "native-io/capacity_allocation_async_basic.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Acquiring, displaying and releasing capacity." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/capacity_allocation_async_basic.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Acquiring, displaying and releasing capacity." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/capacity_allocation_async_basic.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Acquiring, displaying and releasing capacity." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/capacity_allocation_async_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Acquiring, displaying and releasing capacity." - ], - [ - "global", - "window,worker" - ] - ] - } - ] - ], - "capacity_allocation_async_failure_handling.tentative.https.any.js": [ - "8bbeef5f29cbf69632b92c3487b035d668d1e949", - [ - "native-io/capacity_allocation_async_failure_handling.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failure handling for capacity allocation." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/capacity_allocation_async_failure_handling.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failure handling for capacity allocation." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/capacity_allocation_async_failure_handling.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failure handling for capacity allocation." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/capacity_allocation_async_failure_handling.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failure handling for capacity allocation." - ], - [ - "global", - "window,worker" - ] - ] - } - ] - ], - "capacity_allocation_sync_basic.tentative.https.any.js": [ - "3ec2db383efda674f5c1df16c964d57fd20da5c8", - [ - "native-io/capacity_allocation_sync_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Acquiring, displaying and releasing capacity." - ], - [ - "global", - "dedicatedworker" - ] - ] - } - ] - ], - "capacity_allocation_sync_failure_handling.tentative.https.any.js": [ - "82ba65890b634b74fde17ad7fcd67904912d3d6a", - [ - "native-io/capacity_allocation_sync_failure_handling.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failure handling for capacity allocation." - ], - [ - "global", - "dedicatedworker" - ] - ] - } - ] - ], - "close_async.tentative.https.any.js": [ - "6913762e0cc191729628ab6bd508eb03ac1fe276", - [ - "native-io/close_async.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: close()." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/close_async.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: close()." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/close_async.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: close()." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/close_async.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: close()." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ] - ], - "close_sync.tentative.https.any.js": [ - "a063842451f8b7a32158de2ea41d313aae942d26", - [ - "native-io/close_sync.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: close()." - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "concurrent_io": { - "concurrent_io_flush_async.tentative.https.any.js": [ - "ea51f878ad05b3d66f730a634a1fa4537f89f33e", - [ - "native-io/concurrent_io/concurrent_io_flush_async.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent io while flush is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ] - ] - } - ], - [ - "native-io/concurrent_io/concurrent_io_flush_async.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent io while flush is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ] - ] - } - ], - [ - "native-io/concurrent_io/concurrent_io_flush_async.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent io while flush is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ] - ] - } - ], - [ - "native-io/concurrent_io/concurrent_io_flush_async.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent io while flush is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ] - ] - } - ] - ], - "concurrent_io_getLength_async.tentative.https.any.js": [ - "e34018507efd1f442c17071fddc650c01b022381", - [ - "native-io/concurrent_io/concurrent_io_getLength_async.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while getLength is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ] - ] - } - ], - [ - "native-io/concurrent_io/concurrent_io_getLength_async.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while getLength is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ] - ] - } - ], - [ - "native-io/concurrent_io/concurrent_io_getLength_async.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while getLength is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ] - ] - } - ], - [ - "native-io/concurrent_io/concurrent_io_getLength_async.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while getLength is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ] - ] - } - ] - ], - "concurrent_io_read_async.tentative.https.any.js": [ - "a680ff5c8f46f12dd683a1fd9337cef70d9a624c", - [ - "native-io/concurrent_io/concurrent_io_read_async.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while read is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/concurrent_io/concurrent_io_read_async.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while read is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/concurrent_io/concurrent_io_read_async.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while read is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/concurrent_io/concurrent_io_read_async.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while read is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ] - ], - "concurrent_io_setLength_async.tentative.https.any.js": [ - "39b42163562f7312df260c3c4374ef2514656cc2", - [ - "native-io/concurrent_io/concurrent_io_setLength_async.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent io while setLength is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/concurrent_io/concurrent_io_setLength_async.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent io while setLength is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/concurrent_io/concurrent_io_setLength_async.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent io while setLength is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/concurrent_io/concurrent_io_setLength_async.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent io while setLength is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ] - ], - "concurrent_io_write_async.tentative.https.any.js": [ - "e71186d31169eebf172258742051288fbbb69ae6", - [ - "native-io/concurrent_io/concurrent_io_write_async.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while write is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/concurrent_io/concurrent_io_write_async.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while write is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/concurrent_io/concurrent_io_write_async.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while write is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/concurrent_io/concurrent_io_write_async.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Concurrent IO while write is resolving." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "operation_helpers.js" - ], - [ - "script", - "../resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ] - ] - }, - "delete_async_basic.tentative.https.any.js": [ - "149ce2a63f4fbffd0bccf2e31dad5fe3877c4e3e", - [ - "native-io/delete_async_basic.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File deletion is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/delete_async_basic.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File deletion is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/delete_async_basic.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File deletion is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/delete_async_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File deletion is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ] - ], - "delete_sync_basic.tentative.https.any.js": [ - "49a8292c55c0d9e59c40515612867e80c1a6c3db", - [ - "native-io/delete_sync_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: File deletion is reflected in listing." - ], - [ - "global", - "dedicatedworker" - ] - ] - } - ] - ], - "detach_iframe_during_delete.https.window.js": [ - "773421652a812c70e35a42f91bc5c8513d4293a0", - [ - "native-io/detach_iframe_during_delete.https.window.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: delete() does not crash in detached iframes." - ], - [ - "global", - "window" - ] - ] - } - ] - ], - "detach_iframe_during_getAll.https.window.js": [ - "e5e90371953634f1d6af9199e19e9f005153f155", - [ - "native-io/detach_iframe_during_getAll.https.window.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: getAll() does not crash in detached iframes." - ], - [ - "global", - "window" - ] - ] - } - ] - ], - "detach_iframe_during_open.https.window.js": [ - "0c6625901adf90db14ed2efa4f170f1f923f1cf1", - [ - "native-io/detach_iframe_during_open.https.window.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: open() does not crash in detached iframes." - ], - [ - "global", - "window" - ] - ] - } - ] - ], - "detach_iframe_during_releaseCapacity.https.window.js": [ - "a7672971306e7307b4dfea449ea0914dd1bea494", - [ - "native-io/detach_iframe_during_releaseCapacity.https.window.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: releaseCapacity() does not crash in detached iframes." - ], - [ - "global", - "window" - ] - ] - } - ] - ], - "detach_iframe_during_requestCapacity.https.window.js": [ - "4585c89ab64be085d4508ccf5dc3c9f2ec19e8ff", - [ - "native-io/detach_iframe_during_requestCapacity.https.window.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: requestCapacity() does not crash in detached iframes." - ], - [ - "global", - "window" - ] - ] - } - ] - ], - "detached_iframe.https.window.js": [ - "1f34ab0d59bc16bbb1a6a03ba9222d64c03f656a", - [ - "native-io/detached_iframe.https.window.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Do not crash in detached iframes." - ], - [ - "global", - "window" - ] - ] - } - ] - ], - "flush_async_basic.tentative.https.any.js": [ - "eb091d237bd3a87c98470f51c70e08707adf1eed", - [ - "native-io/flush_async_basic.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Flushed data is read back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/flush_async_basic.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Flushed data is read back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/flush_async_basic.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Flushed data is read back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/flush_async_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Flushed data is read back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ] - ], - "flush_sync_basic.tentative.https.any.js": [ - "8d125e2908ec8a1a524fe6f4f1bff53edee7ca91", - [ - "native-io/flush_sync_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Flushed data is read back." - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "getLength_setLength_async_basic.tentative.https.any.js": [ - "5c6f231cba207f087cec4b0a8195f20b3c8965ea", - [ - "native-io/getLength_setLength_async_basic.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Assigned length is observed back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/getLength_setLength_async_basic.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Assigned length is observed back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/getLength_setLength_async_basic.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Assigned length is observed back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/getLength_setLength_async_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Assigned length is observed back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "getLength_setLength_sync_basic.tentative.https.any.js": [ - "196b20bfac83a7fe9bc6213b22329109140346b3", - [ - "native-io/getLength_setLength_sync_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Assigned length is observed back." - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "opaque_origin.https.window.js": [ - "d3d8597c54ca73731c13d8e0c351662249079f7a", - [ - "native-io/opaque_origin.https.window.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Interface is not exposed in opaque origins." - ], - [ - "global", - "window" - ] - ] - } - ] - ], - "open_async_failure_handling.tentative.https.any.js": [ - "de924e4dc066d5833af4403d51791cba0a466580", - [ - "native-io/open_async_failure_handling.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failures of open are properly handled." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/open_async_failure_handling.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failures of open are properly handled." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/open_async_failure_handling.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failures of open are properly handled." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/open_async_failure_handling.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failures of open are properly handled." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "open_getAll_async_basic.tentative.https.any.js": [ - "6cb7704003c83bacf09d7ffa48999a0d188f6cbb", - [ - "native-io/open_getAll_async_basic.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File creation is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/open_getAll_async_basic.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File creation is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/open_getAll_async_basic.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File creation is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/open_getAll_async_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File creation is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ] - ], - "open_getAll_sync_basic.tentative.https.any.js": [ - "dd7d029fb0d3fbfae4ceea20b0b1ed8565794a71", - [ - "native-io/open_getAll_sync_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: File creation is reflected in listing." - ], - [ - "global", - "dedicatedworker" - ] - ] - } - ] - ], - "open_sync_failure_handling.tentative.https.any.js": [ - "cfef0f4db456aa3c15029445d4935695095c4584", - [ - "native-io/open_sync_failure_handling.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Failures of open are properly handled." - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "read_write_async_basic.tentative.https.any.js": [ - "ef07dfca533ee89ee1facde6916b2e4b42eaf2b1", - [ - "native-io/read_write_async_basic.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Written bytes are read back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_async_basic.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Written bytes are read back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_async_basic.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Written bytes are read back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_async_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Written bytes are read back." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "read_write_async_buffer_offset.tentative.https.any.js": [ - "a487771065f18dbd588a22fd60dbf1adc5d99e24", - [ - "native-io/read_write_async_buffer_offset.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Read/write correctly offsets into the source buffer" - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_async_buffer_offset.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Read/write correctly offsets into the source buffer" - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_async_buffer_offset.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Read/write correctly offsets into the source buffer" - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_async_buffer_offset.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Read/write correctly offsets into the source buffer" - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "read_write_async_bufferlength.tentative.https.any.js": [ - "7424d24e5231fc5bafc3413cf68232773acfc883", - [ - "native-io/read_write_async_bufferlength.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Read/Write correctly handle small buffer lengths." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_async_bufferlength.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Read/Write correctly handle small buffer lengths." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_async_bufferlength.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Read/Write correctly handle small buffer lengths." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_async_bufferlength.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Read/Write correctly handle small buffer lengths." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "read_write_correct_arraybufferview_async_basic.tentative.https.any.js": [ - "46bcc8d5bd85dbb60edc4e824f6bc729f85582f4", - [ - "native-io/read_write_correct_arraybufferview_async_basic.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Transferred buffer is of the same type as input." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_correct_arraybufferview_async_basic.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Transferred buffer is of the same type as input." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_correct_arraybufferview_async_basic.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Transferred buffer is of the same type as input." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/read_write_correct_arraybufferview_async_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Transferred buffer is of the same type as input." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "read_write_correct_arraybufferview_sync_basic.tentative.https.any.js": [ - "82c21ff016ada626a0bf23d0c565cfbdad70fc2d", - [ - "native-io/read_write_correct_arraybufferview_sync_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Transferred buffer is of the same type as input." - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "read_write_sync_basic.tentative.https.any.js": [ - "d1db256ba30a58515c097a483cd8a72ca2c43eae", - [ - "native-io/read_write_sync_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Written bytes are read back." - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "read_write_sync_buffer_offset.tentative.https.any.js": [ - "a4b651eaa2c24f1f5b4afdb614204c67a338d457", - [ - "native-io/read_write_sync_buffer_offset.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Read/write correctly offsets into the source buffer" - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "read_write_sync_bufferlength.tentative.https.any.js": [ - "3f45f2702c3152c5ffea4c0caba6abc482f2188e", - [ - "native-io/read_write_sync_bufferlength.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Read/Write correctly handle small buffer lengths." - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "rename_async_basic.tentative.https.any.js": [ - "47c9ffc6b919417dfbc47499b8029d13788cd8bf", - [ - "native-io/rename_async_basic.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File renaming is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/rename_async_basic.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File renaming is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/rename_async_basic.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File renaming is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/rename_async_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: File renaming is reflected in listing." - ], - [ - "global", - "window,worker" - ] - ] - } - ] - ], - "rename_async_failure_handling.tentative.https.any.js": [ - "59f6f83070eb4a1492252e17fdeee8ccaab81fe4", - [ - "native-io/rename_async_failure_handling.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failures of rename are properly handled." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/rename_async_failure_handling.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failures of rename are properly handled." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/rename_async_failure_handling.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failures of rename are properly handled." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "native-io/rename_async_failure_handling.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Failures of rename are properly handled." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ] - ], - "rename_sync_basic.tentative.https.any.js": [ - "e5183143c3b1179fc0812c799a209cd666193a6b", - [ - "native-io/rename_sync_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: File renaming is reflected in listing." - ], - [ - "global", - "dedicatedworker" - ] - ] - } - ] - ], - "rename_sync_failure_handling.tentative.https.any.js": [ - "b113741981f465ce31e801777402061822b4afc1", - [ - "native-io/rename_sync_failure_handling.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Failures of rename are properly handled." - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "setLength_bounds_async.tentative.https.any.js": [ - "8882bf2562f7d85097aaf8b75d747d987e5bf94d", - [ - "native-io/setLength_bounds_async.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Out-of-bounds errors for setLength." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/setLength_bounds_async.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Out-of-bounds errors for setLength." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/setLength_bounds_async.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Out-of-bounds errors for setLength." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/setLength_bounds_async.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Out-of-bounds errors for setLength." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "setLength_bounds_sync.tentative.https.any.js": [ - "99b4452be64fa59f06190121aaca7114dcfd66ff", - [ - "native-io/setLength_bounds_sync.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: Out-of-bounds errors for setLength." - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "setLength_capacity_allocation_async.tentative.https.any.js": [ - "7ed3984f02aa913c334b8d2d74015c996727122f", - [ - "native-io/setLength_capacity_allocation_async.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: SetLength respects the allocated capacities." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/setLength_capacity_allocation_async.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: SetLength respects the allocated capacities." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/setLength_capacity_allocation_async.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: SetLength respects the allocated capacities." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/setLength_capacity_allocation_async.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: SetLength respects the allocated capacities." - ], - [ - "global", - "window,worker" - ] - ] - } - ] - ], - "setLength_capacity_allocation_sync.tentative.https.any.js": [ - "f8cbb8de8db6f3a6fb4e9a2f17f4277e0cf2d643", - [ - "native-io/setLength_capacity_allocation_sync.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: SetLength respects the allocated capacities." - ], - [ - "global", - "dedicatedworker" - ] - ] - } - ] - ], - "trustworthy_origin_failure.tentative.http.any.js": [ - "42637160937582a13a06137da70b23ce70c3c26b", - [ - "native-io/trustworthy_origin_failure.tentative.http.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Interface is not exposed in untrustworthy origin." - ], - [ - "global", - "window,dedicatedworker" - ] - ] - } - ], - [ - "native-io/trustworthy_origin_failure.tentative.http.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Interface is not exposed in untrustworthy origin." - ], - [ - "global", - "window,dedicatedworker" - ] - ] - } - ] - ], - "write_capacity_allocation_async.tentative.https.any.js": [ - "91544fe7cf37ba747e29de10f79220a9496d7385", - [ - "native-io/write_capacity_allocation_async.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Write respects the allocated capacities." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/write_capacity_allocation_async.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Write respects the allocated capacities." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/write_capacity_allocation_async.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Write respects the allocated capacities." - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "native-io/write_capacity_allocation_async.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Write respects the allocated capacities." - ], - [ - "global", - "window,worker" - ] - ] - } - ] - ], - "write_capacity_allocation_sync.tentative.https.any.js": [ - "b72b1f645da0146ef1a9804a64a009f853239eed", - [ - "native-io/write_capacity_allocation_sync.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "NativeIO API: Write respects the allocated capacities." - ], - [ - "global", - "dedicatedworker" - ] - ] - } - ] - ], - "write_getLength_async_basic.tentative.https.any.js": [ - "428d63ebd577fa12d7d9d8b42e35011cab16111f", - [ - "native-io/write_getLength_async_basic.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: getLength reports written bytes." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/write_getLength_async_basic.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: getLength reports written bytes." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/write_getLength_async_basic.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: getLength reports written bytes." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ], - [ - "native-io/write_getLength_async_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: getLength reports written bytes." - ], - [ - "global", - "window,worker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ], - "write_getLength_sync_basic.tentative.https.any.js": [ - "09e97fe6fe9639e1f1733f19b1260566f3146c85", - [ - "native-io/write_getLength_sync_basic.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "Synchronous NativeIO API: getLength reports written bytes." - ], - [ - "global", - "dedicatedworker" - ], - [ - "script", - "resources/support.js" - ] - ] - } - ] - ] - }, "navigation-api": { "currententrychange-event": { "anchor-click.html": [ @@ -570205,7 +568305,7 @@ ] ], "can-make-payment-event.https.html": [ - "28c001c654e1445dfa00193269fabadbf17fc2f0", + "941c206e3b36fc91175e414bf773dd54e5d7d982", [ null, { @@ -590827,7 +588927,7 @@ ] ], "animation-timeline-computed.html": [ - "a77233aab901de334e98f2e643e82a19cf8093c6", + "5789417c6aa4ea41fb98602b8c90dceaed185e60", [ null, {} @@ -590869,7 +588969,7 @@ ] ], "animation-timeline-parsing.html": [ - "dc22778fa7a94094b7be14d176312a01fd145f9b", + "1a30f11f851824801abc2b9501037c509588112d", [ null, {} @@ -600197,15 +598297,6 @@ } ] ], - "storage-foundation.https.html": [ - "6be77bad8fd4cf7d93b282463549323b3a918baf", - [ - null, - { - "timeout": "long" - } - ] - ], "visibility-state.html": [ "023ee512938784a9919efac7c42d9bc50be11505", [ @@ -626632,7 +624723,7 @@ }, "webnn": { "idlharness.https.any.js": [ - "5f538319417294fa99adb006a490beb5fea8d176", + "6122134268c82dfc96327bb5fd56b248aa809076", [ "webnn/idlharness.https.any.html", {
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/idbobjectstore_batchGetAll_largeValue.tentative.any.js.ini b/third_party/blink/web_tests/external/wpt/IndexedDB/idbobjectstore_batchGetAll_largeValue.tentative.any.js.ini index 5d511ef..8378ee77 100644 --- a/third_party/blink/web_tests/external/wpt/IndexedDB/idbobjectstore_batchGetAll_largeValue.tentative.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/IndexedDB/idbobjectstore_batchGetAll_largeValue.tentative.any.js.ini
@@ -1,6 +1,7 @@ [idbobjectstore_batchGetAll_largeValue.tentative.any.html] expected: if (flag_specific == "") and (product == "chrome"): OK + if flag_specific == "disable-site-isolation-trials": OK TIMEOUT [Get upper/lower excluded] expected: [PASS, TIMEOUT] @@ -13,9 +14,7 @@ [idbobjectstore_batchGetAll_largeValue.tentative.any.worker.html] - expected: - if flag_specific == "disable-site-isolation-trials": OK - TIMEOUT + expected: TIMEOUT [Get bound range with maxCount] expected: [PASS, TIMEOUT] @@ -23,5 +22,4 @@ expected: [PASS, TIMEOUT] [Get upper/lower excluded] - expected: - if product == "chrome": TIMEOUT + expected: TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/animation-worklet/playback-rate.https.html.ini b/third_party/blink/web_tests/external/wpt/animation-worklet/playback-rate.https.html.ini index 6cc1e27..cb4ee35 100644 --- a/third_party/blink/web_tests/external/wpt/animation-worklet/playback-rate.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/animation-worklet/playback-rate.https.html.ini
@@ -16,3 +16,7 @@ [When playback rate is updated, the underlying effect is properly updated with the current time of its scroll-linked WorkletAnimation and produces correct visual result.] expected: FAIL + + [The playback rate set before the animation started playing affects the rate of progress of the current time] + expected: + if product == "chrome": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/getAvailability/reject_opaque_origin.https.html b/third_party/blink/web_tests/external/wpt/bluetooth/getAvailability/reject_opaque_origin.https.html new file mode 100644 index 0000000..8745fc9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/getAvailability/reject_opaque_origin.https.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + 'use strict'; + + promise_test(async (t) => { + await promise_rejects_dom( + t, 'SecurityError', navigator.bluetooth.getAvailability(), + 'getAvailability() should throw a SecurityError DOMException when called from a context where the top-level document has an opaque origin.'); + }, 'Calls to Bluetooth APIs from an origin with opaque top origin get blocked.'); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/getAvailability/reject_opaque_origin.https.html.headers b/third_party/blink/web_tests/external/wpt/bluetooth/getAvailability/reject_opaque_origin.https.html.headers new file mode 100644 index 0000000..c7e4e7c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/getAvailability/reject_opaque_origin.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: sandbox allow-scripts \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/getAvailability/sandboxed_iframe.https.window.js b/third_party/blink/web_tests/external/wpt/bluetooth/getAvailability/sandboxed_iframe.https.window.js new file mode 100644 index 0000000..c5e3d1e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/getAvailability/sandboxed_iframe.https.window.js
@@ -0,0 +1,27 @@ +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js +// META: script=/bluetooth/resources/bluetooth-test.js +// META: script=/bluetooth/resources/bluetooth-fake-devices.js + +'use strict'; + +let iframe = document.createElement('iframe'); + +bluetooth_test(async () => { + await getConnectedHealthThermometerDevice(); + await new Promise(resolve => { + iframe.src = '/bluetooth/resources/health-thermometer-iframe.html'; + iframe.sandbox.add('allow-scripts'); + iframe.allow = 'bluetooth'; + document.body.appendChild(iframe); + iframe.addEventListener('load', resolve); + }); + await new Promise(resolve => { + iframe.contentWindow.postMessage({type: 'GetAvailability'}, '*'); + + window.addEventListener('message', (messageEvent) => { + assert_false(/^FAIL: .*/.test(messageEvent.data)); + resolve(); + }); + }); +}, 'Calls to Bluetooth APIs from a sandboxed iframe are valid.'); \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/reject_opaque_origin.https.html b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/reject_opaque_origin.https.html new file mode 100644 index 0000000..64b2808 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/reject_opaque_origin.https.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + 'use strict'; + + promise_test(async (t) => { + await promise_rejects_dom( + t, 'SecurityError', navigator.bluetooth.getDevices(), + 'getDevices() should throw a SecurityError DOMException when called from a context where the top-level document has an opaque origin.'); + }, 'Calls to Bluetooth APIs from an origin with opaque top origin get blocked.'); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/reject_opaque_origin.https.html.headers b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/reject_opaque_origin.https.html.headers new file mode 100644 index 0000000..c7e4e7c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/reject_opaque_origin.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: sandbox allow-scripts \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/sandboxed_iframe.https.window.js b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/sandboxed_iframe.https.window.js new file mode 100644 index 0000000..22cfd17d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/sandboxed_iframe.https.window.js
@@ -0,0 +1,27 @@ +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js +// META: script=/bluetooth/resources/bluetooth-test.js +// META: script=/bluetooth/resources/bluetooth-fake-devices.js + +'use strict'; + +let iframe = document.createElement('iframe'); + +bluetooth_test(async () => { + await getConnectedHealthThermometerDevice(); + await new Promise(resolve => { + iframe.src = '/bluetooth/resources/health-thermometer-iframe.html'; + iframe.sandbox.add('allow-scripts'); + iframe.allow = 'bluetooth'; + document.body.appendChild(iframe); + iframe.addEventListener('load', resolve); + }); + await new Promise(resolve => { + iframe.contentWindow.postMessage({type: 'GetDevices'}, '*'); + + window.addEventListener('message', (messageEvent) => { + assert_false(/^FAIL: .*/.test(messageEvent.data)); + resolve(); + }); + }); +}, 'Calls to Bluetooth APIs from a sandboxed iframe are valid.'); \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/cross-origin-iframe.sub.https.window.js b/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/cross-origin-iframe.sub.https.window.js index a5e6fac..d802a86 100644 --- a/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/cross-origin-iframe.sub.https.window.js +++ b/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/cross-origin-iframe.sub.https.window.js
@@ -24,5 +24,5 @@ const messageEvent = await windowWatcher.wait_for('message'); assert_equals( messageEvent.data, - 'SecurityError: Failed to execute \'requestDevice\' on \'Bluetooth\': Access to the feature "bluetooth" is disallowed by permissions policy.'); + 'FAIL: SecurityError: Failed to execute \'requestDevice\' on \'Bluetooth\': Access to the feature "bluetooth" is disallowed by permissions policy.'); }, test_desc);
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/reject_opaque_origin.https.html b/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/reject_opaque_origin.https.html new file mode 100644 index 0000000..df348dd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/reject_opaque_origin.https.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + 'use strict'; + + promise_test(async (t) => { + await promise_rejects_dom( + t, 'SecurityError', navigator.bluetooth.requestDevice(), + 'requestDevice() should throw a SecurityError DOMException when called from a context where the top-level document has an opaque origin.'); + }, 'Calls to Bluetooth APIs from an origin with opaque top origin get blocked.'); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/reject_opaque_origin.https.html.headers b/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/reject_opaque_origin.https.html.headers new file mode 100644 index 0000000..c7e4e7c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/reject_opaque_origin.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: sandbox allow-scripts \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/request-from-sandboxed-iframe.https.window.js b/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/request-from-sandboxed-iframe.https.window.js index 17a9da33..2101cf0 100644 --- a/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/request-from-sandboxed-iframe.https.window.js +++ b/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/request-from-sandboxed-iframe.https.window.js
@@ -5,7 +5,8 @@ 'use strict'; const test_desc = 'Request device from a unique origin. ' + 'Should reject with SecurityError.'; -const expected = 'SecurityError: Failed to execute \'requestDevice\' on ' + +const expected = + 'FAIL: SecurityError: Failed to execute \'requestDevice\' on ' + '\'Bluetooth\': Access to the feature "bluetooth" is disallowed by ' + 'permissions policy.';
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/sandboxed_iframe.https.window.js b/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/sandboxed_iframe.https.window.js new file mode 100644 index 0000000..e9192a9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/requestDevice/sandboxed_iframe.https.window.js
@@ -0,0 +1,27 @@ +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js +// META: script=/bluetooth/resources/bluetooth-test.js +// META: script=/bluetooth/resources/bluetooth-fake-devices.js + +'use strict'; + +let iframe = document.createElement('iframe'); + +bluetooth_test(async () => { + await getConnectedHealthThermometerDevice(); + await new Promise(resolve => { + iframe.src = '/bluetooth/resources/health-thermometer-iframe.html'; + iframe.sandbox.add('allow-scripts'); + iframe.allow = 'bluetooth'; + document.body.appendChild(iframe); + iframe.addEventListener('load', resolve); + }); + await new Promise(resolve => { + iframe.contentWindow.postMessage({type: 'RequestDevice'}, '*'); + + window.addEventListener('message', (messageEvent) => { + assert_false(/^FAIL: .*/.test(messageEvent.data)); + resolve(); + }); + }); +}, 'Calls to Bluetooth APIs from a sandboxed iframe are valid.'); \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/requestLEScan/reject_opaque_origin.https.html b/third_party/blink/web_tests/external/wpt/bluetooth/requestLEScan/reject_opaque_origin.https.html new file mode 100644 index 0000000..272c5aa7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/requestLEScan/reject_opaque_origin.https.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + 'use strict'; + + promise_test(async (t) => { + await promise_rejects_dom( + t, 'SecurityError', navigator.bluetooth.requestLEScan(), + 'requestLEScan() should throw a SecurityError DOMException when called from a context where the top-level document has an opaque origin.'); + }, 'Calls to Bluetooth APIs from an origin with opaque top origin get blocked.'); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/requestLEScan/reject_opaque_origin.https.html.headers b/third_party/blink/web_tests/external/wpt/bluetooth/requestLEScan/reject_opaque_origin.https.html.headers new file mode 100644 index 0000000..c7e4e7c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/requestLEScan/reject_opaque_origin.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: sandbox allow-scripts \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/requestLEScan/sandboxed_iframe.https.window.js b/third_party/blink/web_tests/external/wpt/bluetooth/requestLEScan/sandboxed_iframe.https.window.js new file mode 100644 index 0000000..32d1e74b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/bluetooth/requestLEScan/sandboxed_iframe.https.window.js
@@ -0,0 +1,27 @@ +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js +// META: script=/bluetooth/resources/bluetooth-test.js +// META: script=/bluetooth/resources/bluetooth-fake-devices.js + +'use strict'; + +let iframe = document.createElement('iframe'); + +bluetooth_test(async () => { + await getConnectedHealthThermometerDevice(); + await new Promise(resolve => { + iframe.src = '/bluetooth/resources/health-thermometer-iframe.html'; + iframe.sandbox.add('allow-scripts'); + iframe.allow = 'bluetooth'; + document.body.appendChild(iframe); + iframe.addEventListener('load', resolve); + }); + await new Promise(resolve => { + iframe.contentWindow.postMessage({type: 'RequestLEScan'}, '*'); + + window.addEventListener('message', (messageEvent) => { + assert_false(/^FAIL: .*/.test(messageEvent.data)); + resolve(); + }); + }); +}, 'Calls to Bluetooth APIs from a sandboxed iframe are valid.'); \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/resources/health-thermometer-iframe.html b/third_party/blink/web_tests/external/wpt/bluetooth/resources/health-thermometer-iframe.html index 78774b4..f9f7a6f 100644 --- a/third_party/blink/web_tests/external/wpt/bluetooth/resources/health-thermometer-iframe.html +++ b/third_party/blink/web_tests/external/wpt/bluetooth/resources/health-thermometer-iframe.html
@@ -17,13 +17,20 @@ window.addEventListener('message', (messageEvent) => { switch (messageEvent.data.type) { case 'GetAvailability': - navigator.bluetooth.getAvailability().then( - availability => parent.postMessage(availability, '*')); + navigator.bluetooth.getAvailability() + .then(availability => parent.postMessage(availability, '*')) + .catch(err => parent.postMessage(`FAIL: ${err}`, '*')); + break; + case 'GetDevices': + navigator.bluetooth.getDevices() + .then(devices => parent.postMessage('Success', '*')) + .catch(err => parent.postMessage(`FAIL: ${err}`, '*')); break; case 'RequestDevice': - test_driver.click(document.getElementsByTagName("button")[0]) - .then(() => navigator.bluetooth - .requestDevice({filters: [{services: ['generic_access']}]})) + test_driver.click(document.getElementsByTagName('button')[0]) + .then( + () => navigator.bluetooth.requestDevice( + {filters: [{services: ['generic_access']}]})) .then(device => { if (device.constructor.name === 'BluetoothDevice') { parent.postMessage('Success', '*'); @@ -32,7 +39,22 @@ `FAIL: requestDevice in iframe returned ${device.name}`, '*'); } }) - .catch(err => parent.postMessage(`${err.name}: ${err.message}`, '*')); + .catch(err => parent.postMessage(`FAIL: ${err.name}: ${err.message}`, '*')); + break; + case 'RequestLEScan': + test_driver.click(document.getElementsByTagName('button')[0]) + .then( + () => navigator.bluetooth.requestLEScan( + {filters: [{name: 'Health Thermometer'}]})) + .then(leScan => { + if (leScan.active) { + parent.postMessage('Success', '*'); + leScan.stop(); + } else { + parent.postMessage(`FAIL: the LE scan hasn't been initiated.`, '*'); + } + }) + .catch(err => parent.postMessage(`FAIL: ${err.name}: ${err.message}`, '*')); break; case 'RequestAndConnect': requestDeviceWithOptionsAndConnect(messageEvent.data.options)
diff --git a/third_party/blink/web_tests/external/wpt/compute-pressure/idlharness.https.window.js.ini b/third_party/blink/web_tests/external/wpt/compute-pressure/idlharness.https.window.js.ini deleted file mode 100644 index abd6630..0000000 --- a/third_party/blink/web_tests/external/wpt/compute-pressure/idlharness.https.window.js.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[idlharness.https.window.html] - [PressureObserver interface: operation requestPermission()] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/gen/top.meta/script-src-self/sharedworker-import.http.html.ini b/third_party/blink/web_tests/external/wpt/content-security-policy/gen/top.meta/script-src-self/sharedworker-import.http.html.ini index 862676a..6116a21f 100644 --- a/third_party/blink/web_tests/external/wpt/content-security-policy/gen/top.meta/script-src-self/sharedworker-import.http.html.ini +++ b/third_party/blink/web_tests/external/wpt/content-security-policy/gen/top.meta/script-src-self/sharedworker-import.http.html.ini
@@ -1,14 +1,38 @@ [sharedworker-import.http.html] expected: - if flag_specific == "disable-layout-ng": [OK, TIMEOUT] + if (flag_specific == "") and (product == "chrome"): [OK, TIMEOUT] [Content Security Policy: Expects blocked for sharedworker-import to cross-http origin and keep-origin redirection from http context.: securitypolicyviolation] - expected: FAIL + expected: + if product == "chrome": [FAIL, NOTRUN] + FAIL [Content Security Policy: Expects blocked for sharedworker-import to cross-http origin and no-redirect redirection from http context.: securitypolicyviolation] - expected: FAIL + expected: + if product == "chrome": [FAIL, NOTRUN] + FAIL [Content Security Policy: Expects blocked for sharedworker-import to cross-http origin and swap-origin redirection from http context.: securitypolicyviolation] - expected: FAIL + expected: + if product == "chrome": [FAIL, NOTRUN] + FAIL [Content Security Policy: Expects blocked for sharedworker-import to same-http origin and swap-origin redirection from http context.: securitypolicyviolation] - expected: FAIL + expected: + if product == "chrome": [FAIL, NOTRUN] + FAIL + + [Content Security Policy: Expects blocked for sharedworker-import to same-http origin and swap-origin redirection from http context.] + expected: + if product == "chrome": [PASS, NOTRUN] + + [Content Security Policy: Expects blocked for sharedworker-import to cross-http origin and swap-origin redirection from http context.] + expected: + if product == "chrome": [PASS, NOTRUN] + + [Content Security Policy: Expects blocked for sharedworker-import to cross-http origin and no-redirect redirection from http context.] + expected: + if product == "chrome": [PASS, NOTRUN] + + [Content Security Policy: Expects blocked for sharedworker-import to cross-http origin and keep-origin redirection from http context.] + expected: + if product == "chrome": [PASS, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/history.sub.html.ini b/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/history.sub.html.ini new file mode 100644 index 0000000..9728b70 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/history.sub.html.ini
@@ -0,0 +1,3 @@ +[history.sub.html] + expected: + if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini b/third_party/blink/web_tests/external/wpt/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini index 05edd2d5..6e73299 100644 --- a/third_party/blink/web_tests/external/wpt/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini +++ b/third_party/blink/web_tests/external/wpt/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini
@@ -1,4 +1,3 @@ [prefetch-header-allowed.html] expected: - if flag_specific == "disable-layout-ng": [OK, TIMEOUT] - if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT] + if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/cookie-store/cookieListItem_attributes.https.any.js.ini b/third_party/blink/web_tests/external/wpt/cookie-store/cookieListItem_attributes.https.any.js.ini deleted file mode 100644 index 6bd74be8..0000000 --- a/third_party/blink/web_tests/external/wpt/cookie-store/cookieListItem_attributes.https.any.js.ini +++ /dev/null
@@ -1,10 +0,0 @@ -[cookieListItem_attributes.https.any.serviceworker.html] - -[cookieListItem_attributes.https.any.html] - [CookieListItem - cookieStore.set with expires set to a timestamp 10 years in the future] - expected: - if os == "win": FAIL - - [CookieListItem - cookieStore.set with expires set to a Date 10 years in the future] - expected: - if os == "win": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_set_arguments.https.any.js.ini b/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_set_arguments.https.any.js.ini new file mode 100644 index 0000000..c228d130 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_set_arguments.https.any.js.ini
@@ -0,0 +1,11 @@ +[cookieStore_set_arguments.https.any.serviceworker.html] + [cookieStore.set with expires set to a future Date] + expected: + if os == "win": [FAIL, PASS] + + [cookieStore.set with expires set to a future timestamp] + expected: + if os == "win": [FAIL, PASS] + + +[cookieStore_set_arguments.https.any.html]
diff --git a/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_subscribe_arguments.https.any.js.ini b/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_subscribe_arguments.https.any.js.ini index ced6aca..c6bd59e 100644 --- a/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_subscribe_arguments.https.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_subscribe_arguments.https.any.js.ini
@@ -1,9 +1,5 @@ [cookieStore_subscribe_arguments.https.any.html] expected: - if (flag_specific == "") and (os == "win"): [OK, ERROR] - [CookieStore.unsubscribe is idempotent] - expected: - if (flag_specific == "") and (os == "win"): [PASS, NOTRUN] - + if os == "win": ERROR [cookieStore_subscribe_arguments.https.any.serviceworker.html]
diff --git a/third_party/blink/web_tests/external/wpt/credential-management/fedcm-network-requests.https.html.ini b/third_party/blink/web_tests/external/wpt/credential-management/fedcm-network-requests.https.html.ini index 12ce602c..14f5926 100644 --- a/third_party/blink/web_tests/external/wpt/credential-management/fedcm-network-requests.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/credential-management/fedcm-network-requests.https.html.ini
@@ -1,8 +1,7 @@ [fedcm-network-requests.https.html] expected: - if (flag_specific == "") and (os == "linux") and (product == "chrome"): TIMEOUT - if (flag_specific == "") and (os == "win"): TIMEOUT - if flag_specific == "disable-layout-ng": [OK, TIMEOUT] + if (product == "content_shell") and (os == "win"): [OK, TIMEOUT] + if product == "chrome": TIMEOUT [nonce is not required in FederatedIdentityProvider.] expected: if product == "chrome": NOTRUN
diff --git a/third_party/blink/web_tests/external/wpt/css/css-anchor-position/anchor-position-inline-004.html.ini b/third_party/blink/web_tests/external/wpt/css/css-anchor-position/anchor-position-inline-004.html.ini deleted file mode 100644 index 4b68313d..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-anchor-position/anchor-position-inline-004.html.ini +++ /dev/null
@@ -1,96 +0,0 @@ -[anchor-position-inline-004.html] - [.target 1] - expected: - if product == "chrome": FAIL - - [.target 2] - expected: - if product == "chrome": FAIL - - [.target 3] - expected: - if product == "chrome": FAIL - - [.target 4] - expected: - if product == "chrome": FAIL - - [.target 5] - expected: - if product == "chrome": FAIL - - [.target 6] - expected: - if product == "chrome": FAIL - - [.target 7] - expected: - if product == "chrome": FAIL - - [.target 8] - expected: - if product == "chrome": FAIL - - [.target 9] - expected: - if product == "chrome": FAIL - - [.target 10] - expected: - if product == "chrome": FAIL - - [.target 11] - expected: - if product == "chrome": FAIL - - [.target 12] - expected: - if product == "chrome": FAIL - - [.target 13] - expected: - if product == "chrome": FAIL - - [.target 14] - expected: - if product == "chrome": FAIL - - [.target 15] - expected: - if product == "chrome": FAIL - - [.target 16] - expected: - if product == "chrome": FAIL - - [.target 17] - expected: - if product == "chrome": FAIL - - [.target 18] - expected: - if product == "chrome": FAIL - - [.target 19] - expected: - if product == "chrome": FAIL - - [.target 20] - expected: - if product == "chrome": FAIL - - [.target 21] - expected: - if product == "chrome": FAIL - - [.target 22] - expected: - if product == "chrome": FAIL - - [.target 23] - expected: - if product == "chrome": FAIL - - [.target 24] - expected: - if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations-dynamic-changes.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations-dynamic-changes.tentative.html.ini index 9037285..0269492 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations-dynamic-changes.tentative.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations-dynamic-changes.tentative.html.ini
@@ -10,4 +10,4 @@ [Animations preserve their startTime when changed] expected: - if product == "chrome": [PASS, FAIL] + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness-expected.txt index 2036d89..f5a629d7 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 94 tests; 91 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 96 tests; 91 PASS, 5 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation PASS Partial interface CSSRule: original interface defined @@ -63,6 +63,7 @@ PASS CSSKeyframesRule interface: existence and properties of interface prototype object's @@unscopables property PASS CSSKeyframesRule interface: attribute name PASS CSSKeyframesRule interface: attribute cssRules +FAIL CSSKeyframesRule interface: attribute length assert_true: The prototype object must have a property "length" expected true got false PASS CSSKeyframesRule interface: operation appendRule(CSSOMString) PASS CSSKeyframesRule interface: operation deleteRule(CSSOMString) PASS CSSKeyframesRule interface: operation findRule(CSSOMString) @@ -70,6 +71,7 @@ PASS Stringification of keyframes PASS CSSKeyframesRule interface: keyframes must inherit property "name" with the proper type PASS CSSKeyframesRule interface: keyframes must inherit property "cssRules" with the proper type +FAIL CSSKeyframesRule interface: keyframes must inherit property "length" with the proper type assert_inherits: property "length" not found in prototype chain PASS CSSKeyframesRule interface: keyframes must inherit property "appendRule(CSSOMString)" with the proper type PASS CSSKeyframesRule interface: calling appendRule(CSSOMString) on keyframes with too few arguments must throw TypeError PASS CSSKeyframesRule interface: keyframes must inherit property "deleteRule(CSSOMString)" with the proper type
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness.html.ini b/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness.html.ini index c676700..f0c5706 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness.html.ini
@@ -7,3 +7,9 @@ [Document interface: attribute onanimationcancel] expected: FAIL + + [CSSKeyframesRule interface: attribute length] + expected: FAIL + + [CSSKeyframesRule interface: keyframes must inherit property "length" with the proper type] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/content-visibility-auto-selection-crash.html b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/content-visibility-auto-selection-crash.html new file mode 100644 index 0000000..4cfe62e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/content-visibility-auto-selection-crash.html
@@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> +<head> + <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com"> + <link rel="help" href="https://drafts.csswg.org/css-contain/#content-visibility"> + <meta name="assert" content="Changes to selection that result in no selection do not cause a crash."> + <style> + * { + content-visibility: auto; + } + </style> + <script> + document.addEventListener('DOMContentLoaded', () => { + document.documentElement.convertPointFromNode({}, marquee, {}) + textarea.setSelectionRange(0, 0, 'forward') + input.setAttribute('type', 'number') + document.documentElement.getBoundingClientRect() + }) + </script> +</head> +<body> + <marquee id='marquee'></marquee> + <textarea id='textarea'></textarea> + <input id='input'></input> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-007v.html.ini b/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-007v.html.ini index 0ef2b0d..88bd2eab 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-007v.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-007v.html.ini
@@ -7,34 +7,34 @@ expected: if flag_specific == "disable-layout-ng": FAIL - [.flexbox > img 11] - expected: - if flag_specific == "disable-layout-ng": FAIL - - [.flexbox > img 6] - expected: - if flag_specific == "disable-layout-ng": FAIL - - [.flexbox > img 12] - expected: - if flag_specific == "disable-layout-ng": FAIL - - [.flexbox > img 9] - expected: - if flag_specific == "disable-layout-ng": FAIL - - [.flexbox > img 7] - expected: - if flag_specific == "disable-layout-ng": FAIL - [.flexbox > img 14] expected: - if flag_specific == "disable-layout-ng": FAIL - - [.flexbox > img 10] - expected: - if flag_specific == "disable-layout-ng": FAIL + if flag_specific == "disable-layout-ng": [PASS, FAIL] [.flexbox > img 1] expected: - if flag_specific == "disable-layout-ng": FAIL + if flag_specific == "disable-layout-ng": [PASS, FAIL] + + [.flexbox > img 11] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL] + + [.flexbox > img 7] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL] + + [.flexbox > img 9] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL] + + [.flexbox > img 6] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL] + + [.flexbox > img 10] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL] + + [.flexbox > img 12] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-order-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-order-001-ref.html new file mode 100644 index 0000000..0c68e139 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-order-001-ref.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Fonts reference</title> +<style> + div { + margin: 10px; + font: 20px monospace; + background: yellow; + width: 10ch; + font-size-adjust: 1.0; + } +</style> +<body> + <p>Test passes if both blocks render the same, and there is no red:</p> + <div>The quick brown fox jumps over the lazy dog</div> + <div>The quick brown fox jumps over the lazy dog</div> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-order-001.html b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-order-001.html new file mode 100644 index 0000000..a8b56a30 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-order-001.html
@@ -0,0 +1,42 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Fonts Test: font-size-adjust effect on font-dependent units</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" title="2.6 Relative sizing: the font-size-adjust property" + href="https://drafts.csswg.org/css-fonts/#font-size-adjust-prop"> +<link rel="help" title="6.1.1. Font-relative Lengths: the em, rem, ex, rex, cap, rcap, ch, rch, ic, ric, lh, rlh units" + href="https://drafts.csswg.org/css-values-4/#font-relative-lengths"> +<meta name="assert" content="font-size-adjust affects the size of the 'ch' unit consistently regardless of the ordering of properties."> +<link rel="match" href="font-size-adjust-order-001-ref.html"> +<style> + div { + margin: 10px; + font: 20px monospace; + background: yellow; + } + #bg { + width: 12ch; + height: 2em; + background: red; + position: absolute; + z-index: -1; + } + #test1 { + /* Size the font by its ex-height; this will enlarge the glyphs + so the red background block is hidden. */ + font-size-adjust: 1.0; + width: 10ch; + } + #test2 { + /* This should work exactly the same. */ + width: 10ch; + font-size-adjust: 1.0; + } +</style> +<body> + <p>Test passes if both blocks render the same, and there is no red:</p> + <div id="bg"></div> + <div id="test1">The quick brown fox jumps over the lazy dog</div> + <div id="bg"></div> + <div id="test2">The quick brown fox jumps over the lazy dog</div> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-units-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-units-001-ref.html new file mode 100644 index 0000000..008c500d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-units-001-ref.html
@@ -0,0 +1,26 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Fonts reference</title> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> +<style> + div { + margin: 10px; + font: 100px/1 Ahem; + font-size-adjust: 0.8; /* this matches Ahem's ex-height metric */ + background: orange; + width: 2ch; + height: 1ex; + } + #test1 { + background: blue; + } + #test2 { + background: blue; + } +</style> +<body> + <p>Test passes if the blue rectangles are both the same size as the orange one.</p> + <div id="test1"></div> + <div id="test2"></div> + <div></div> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-units-001.html b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-units-001.html new file mode 100644 index 0000000..4e27ef1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-size-adjust-units-001.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Fonts Test: font-size-adjust effect on font-dependent units</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" title="2.6 Relative sizing: the font-size-adjust property" + href="https://drafts.csswg.org/css-fonts/#font-size-adjust-prop"> +<link rel="help" title="6.1.1. Font-relative Lengths: the em, rem, ex, rex, cap, rcap, ch, rch, ic, ric, lh, rlh units" + href="https://drafts.csswg.org/css-values-4/#font-relative-lengths"> +<meta name="assert" content="Font-relative units like ch and ex are affected by font-size-adjust, +because they are derived from metrics of the _used_ font."> +<link rel="match" href="font-size-adjust-units-001-ref.html"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> +<style> + div { + margin: 10px; + font: 100px/1 Ahem; + font-size-adjust: 0.8; /* this matches Ahem's ex-height metric */ + background: orange; + width: 2ch; + height: 1ex; + } + #test1 { + background: blue; + font-size-adjust: 0.4; + width: 4ch; + height: 2ex; + } + #test2 { + background: blue; + font-size-adjust: 1.6; + width: 1ch; + height: 0.5ex; + } +</style> +<body> + <p>Test passes if the blue rectangles are both the same size as the orange one.</p> + <div id="test1"></div> + <div id="test2"></div> + <div></div> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-left-side-ref.html b/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-left-side-ref.html new file mode 100644 index 0000000..5a31517 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-left-side-ref.html
@@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html> + +<head> + <meta charset="utf-8"> + <title>CSS Grid Test: Verify correct behavior of track-sizing</title> + <link rel="author" title="Brandon Stewart" href="mailto:brandonstewart@apple.com"> + <link rel="help" href="https://drafts.csswg.org/css-grid-3/#track-sizing"> +</head> + +<body> +<style> +grid { + display: grid; + grid-template-columns: 50px 1fr; + grid-template-rows: 50px 250px; + width: 300px; + height: 100px; +} + +box1 { + height: 50px; + width: 50px; + background-color: blue; +} + +box2 { + height: 50px; + background-color: red; +} + +box3 { + width: 100px; + height: 50px; + background-color: purple; + z-index: 1; +} + +box4 { + height: 50px; + background-color: green; +} +</style> + +<grid> + <box1>1</box1> + <box2>2</box2> + <box3>3</box3> + <box4>4</box4> +</grid> + +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-left-side.html b/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-left-side.html new file mode 100644 index 0000000..cd1b78a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-left-side.html
@@ -0,0 +1,54 @@ +<!DOCTYPE html> +<html> + +<head> + <meta charset="utf-8"> + <title>CSS Grid Test: Verify correct behavior of track-sizing</title> + <link rel="author" title="Brandon Stewart" href="mailto:brandonstewart@apple.com"> + <link rel="help" href="https://drafts.csswg.org/css-grid-3/#track-sizing"> + <link rel="match" href="masonry-track-sizing-overflow-left-side-ref.html"> +</head> + +<body> +<style> +grid { + display: grid; + grid-template-columns: auto 1fr; + grid-template-rows: masonry; + width: 300px; + height: 100px; +} + +box1 { + height: 50px; + width: 50px; + background-color: blue; +} + +box2 { + height: 50px; + background-color: red; +} + +box3 { + width: 100px; + height: 50px; + background-color: purple; + z-index: 1; +} + +box4 { + height: 50px; + background-color: green; +} +</style> + +<grid> + <box1>1</box1> + <box2>2</box2> + <box3>3</box3> + <box4>4</box4> +</grid> + +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-right-side-ref.html b/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-right-side-ref.html new file mode 100644 index 0000000..51e657e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-right-side-ref.html
@@ -0,0 +1,54 @@ +<!DOCTYPE html> +<html> + +<head> + <meta charset="utf-8"> + <title>CSS Grid Test: Verify correct behavior of track-sizing</title> + <link rel="author" title="Brandon Stewart" href="mailto:brandonstewart@apple.com"> + <link rel="help" href="https://drafts.csswg.org/css-grid-3/#track-sizing"> +</head> + +<body> +<style> +grid { + display: grid; + grid-template-columns: 1fr 50px; + grid-template-rows: 1fr 50px; + width: 300px; + height: 100px; +} + +box1 { + height: 50px; + background-color: red; +} + +box2 { + height: 50px; + width: 50px; + background-color: blue; +} + +box3 { + height: 50px; + background-color: green; +} + +box4 { + width: 100px; + height: 50px; + background-color: purple; + z-index: 1; +} + +</style> + +<grid> + <box1>1</box1> + <box2>2</box2> + <box3>3</box3> + <box4>4</box4> +</grid> + +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-right-side.html b/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-right-side.html new file mode 100644 index 0000000..e4c17fd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/masonry/tentative/track-sizing/masonry-track-sizing-overflow-right-side.html
@@ -0,0 +1,56 @@ +<!DOCTYPE html> +<html> + +<head> + <meta charset="utf-8"> + <title>CSS Grid Test: Verify correct behavior of track-sizing</title> + <link rel="author" title="Brandon Stewart" href="mailto:brandonstewart@apple.com"> + <link rel="help" href="https://drafts.csswg.org/css-grid-3/#track-sizing"> + <link rel="match" href="masonry-track-sizing-overflow-right-side-ref.html"> +</head> + +<body> +<style> +grid { + display: grid; + grid-template-columns: 1fr auto; + grid-template-rows: masonry; + width: 300px; + height: 100px; +} + +box1 { + width: 1fr; + height: 50px; + background-color: red; +} + +box2 { + height: 50px; + width: 50px; + background-color: blue; +} + +box3 { + height: 50px; + background-color: green; +} + +box4 { + width: 100px; + height: 50px; + background-color: purple; + z-index: 1; +} + +</style> + +<grid> + <box1>1</box1> + <box2>2</box2> + <box3>3</box3> + <box4>4</box4> +</grid> + +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/subgrid/subgrid-baseline-002.html.ini b/third_party/blink/web_tests/external/wpt/css/css-grid/subgrid/subgrid-baseline-002.html.ini index c8f5d5e..4300e380 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-grid/subgrid/subgrid-baseline-002.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/subgrid/subgrid-baseline-002.html.ini
@@ -1,2 +1,4 @@ [subgrid-baseline-002.html] - expected: CRASH + expected: + if os == "win": [TIMEOUT, CRASH] + CRASH
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-rtl.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-rtl.html.ini index 9451204..46ebc05b 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-rtl.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-rtl.html.ini
@@ -1,4 +1,3 @@ [Initial-letter-breaking-rtl.html] expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL - if (os == "linux") and (product == "chrome"): FAIL + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vrl.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vrl.html.ini index e5040af..5e2b2a7 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vrl.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vrl.html.ini
@@ -1,3 +1,4 @@ [Initial-letter-breaking-vrl.html] expected: - if flag_specific == "disable-layout-ng": FAIL + if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL + if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-margins.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-margins.html.ini index ca081035..902a0ff9 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-margins.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-margins.html.ini
@@ -1,3 +1,4 @@ [initial-letter-block-position-margins.html] expected: - if flag_specific == "disable-layout-ng": FAIL + if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL + if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby.html.ini index 1136475..eede05d 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby.html.ini
@@ -1,4 +1,3 @@ [initial-letter-block-position-raise-under-ruby.html] expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL - if (os == "linux") and (product == "chrome"): FAIL + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial-vlr.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial-vlr.html.ini index 1e3e903..984123ce 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial-vlr.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial-vlr.html.ini
@@ -1,4 +1,3 @@ [initial-letter-drop-initial-vlr.html] expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL - if (os == "linux") and (product == "chrome"): FAIL + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial.html.ini index bda49d3..497ccbc 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial.html.ini
@@ -1,4 +1,3 @@ [initial-letter-drop-initial.html] expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL - if (os == "linux") and (product == "chrome"): FAIL + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-001-vlr.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-001-vlr.html.ini index 72b9d1f..bd18bc0 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-001-vlr.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-001-vlr.html.ini
@@ -1,3 +1,4 @@ [initial-letter-float-001-vlr.html] expected: - if flag_specific == "disable-layout-ng": FAIL + if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL + if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-layout-text-decoration-underline.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-layout-text-decoration-underline.html.ini index 7b6eb18..6679ea68 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-layout-text-decoration-underline.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-layout-text-decoration-underline.html.ini
@@ -1,3 +1,4 @@ [initial-letter-layout-text-decoration-underline.html] expected: - if flag_specific == "disable-layout-ng": FAIL + if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL + if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-vrl.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-vrl.html.ini index 4f49317..1bf7046 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-vrl.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-vrl.html.ini
@@ -1,4 +1,3 @@ [initial-letter-raise-initial-vrl.html] expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL - if (os == "linux") and (product == "chrome"): FAIL + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-sunk-initial-vrl.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-sunk-initial-vrl.html.ini index 77a501b5..145423c1 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-sunk-initial-vrl.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-sunk-initial-vrl.html.ini
@@ -1,3 +1,4 @@ [initial-letter-sunk-initial-vrl.html] expected: - if flag_specific == "disable-layout-ng": FAIL + if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL + if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-000.html.ini b/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-000.html.ini index 78f81bd..44c5cfb 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-000.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-000.html.ini
@@ -1,24 +1,24 @@ [getclientrects-000.html] [vertical-lr ltr] expected: - if product == "chrome": [PASS, FAIL] + if product == "chrome": FAIL [vertical-rl rtl] expected: - if product == "chrome": [PASS, FAIL] + if product == "chrome": FAIL [vertical-lr rtl] expected: - if product == "chrome": [PASS, FAIL] + if product == "chrome": FAIL [horizontal-tb ltr] expected: - if product == "chrome": [PASS, FAIL] + if product == "chrome": FAIL [vertical-rl ltr] expected: - if product == "chrome": [PASS, FAIL] + if product == "chrome": FAIL [horizontal-tb rtl] expected: - if product == "chrome": [PASS, FAIL] + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-overflow/scrollable-overflow-input-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-overflow/scrollable-overflow-input-001.html.ini index 0fd1d59..6351a3d 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-overflow/scrollable-overflow-input-001.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-overflow/scrollable-overflow-input-001.html.ini
@@ -1,4 +1,3 @@ [scrollable-overflow-input-001.html] expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL - if (os == "linux") and (product == "chrome"): FAIL + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-overflow/scrollable-overflow-input-002.html.ini b/third_party/blink/web_tests/external/wpt/css/css-overflow/scrollable-overflow-input-002.html.ini deleted file mode 100644 index 6e03ac5..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-overflow/scrollable-overflow-input-002.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[scrollable-overflow-input-002.html] - expected: - if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-paint-api/parse-input-arguments-018.https.html.ini b/third_party/blink/web_tests/external/wpt/css/css-paint-api/parse-input-arguments-018.https.html.ini index 44bac53..21e3049 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-paint-api/parse-input-arguments-018.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-paint-api/parse-input-arguments-018.https.html.ini
@@ -1,4 +1,3 @@ [parse-input-arguments-018.https.html] expected: - if flag_specific == "disable-layout-ng": PASS - CRASH + if (os == "linux") and (flag_specific == ""): CRASH
diff --git a/third_party/blink/web_tests/external/wpt/css/css-paint-api/setTransform-001.https.html.ini b/third_party/blink/web_tests/external/wpt/css/css-paint-api/setTransform-001.https.html.ini new file mode 100644 index 0000000..6af47e05 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-paint-api/setTransform-001.https.html.ini
@@ -0,0 +1,3 @@ +[setTransform-001.https.html] + expected: + if os == "win": [PASS, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/registered-property-cssom.html.ini b/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/registered-property-cssom.html.ini index 8a56b75e..d1d9acd1 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/registered-property-cssom.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/registered-property-cssom.html.ini
@@ -1,6 +1,3 @@ [registered-property-cssom.html] - [CSSOM setters function as expected for unregistered properties] - expected: FAIL - - [Formerly valid values are still readable from inline styles but are computed as the unset value] + [Initially unregistered values from stylesheet] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ruby/ruby-text-combine-upright-002a.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ruby/ruby-text-combine-upright-002a.html.ini deleted file mode 100644 index 894ea23..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ruby/ruby-text-combine-upright-002a.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[ruby-text-combine-upright-002a.html] - expected: - if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/text-align-008.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/text-align-match-parent-001.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/css/css-text/text-align/text-align-008.html rename to third_party/blink/web_tests/external/wpt/css/css-text/text-align/text-align-match-parent-001.html
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/text-align-match-parent-002.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/text-align-match-parent-002.html new file mode 100644 index 0000000..19596e36 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/text-align-match-parent-002.html
@@ -0,0 +1,23 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text Test: text-align - computed value for match-parent on the root element</title> +<link rel="help" href="https://drafts.csswg.org/css-text/#valdef-text-align-match-parent"> +<meta name="assert" content="'text-align: match-parent' on the root element with 'direction: rtl' should compute to 'start'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + html { + text-align: match-parent; + direction: rtl; + } + #log { + direction: ltr; + text-align: start; + } +</style> +<div id="log"></div> +<script> + test(() => { + assert_equals(getComputedStyle(document.documentElement).textAlign, 'start'); + }); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/support/fake-group-align.css b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/support/fake-group-align.css new file mode 100644 index 0000000..d1a7d1aa --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/support/fake-group-align.css
@@ -0,0 +1,27 @@ +.group { + inline-size: min-content; +} + +.group-align-left { + /* Only the one that matches the inline axis will apply */ + margin-bottom: auto; + margin-right: auto; +} + +.group-align-right { + /* Only the one that matches the inline axis will apply */ + margin-top: auto; + margin-left: auto; +} + +.group-align-center { + margin-inline: auto; +} + +.group-align-start { + margin-inline-end: auto; +} + +.group-align-end { + margin-inline-start: auto; +}
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/support/test-helpers.css b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/support/test-helpers.css new file mode 100644 index 0000000..d79e79c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/support/test-helpers.css
@@ -0,0 +1,9 @@ +.text-container { + inline-size: 200px; + border: 1px solid black; + display: inline-block; +} + +.pre { + white-space: pre; +}
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/support/test-helpers.js b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/support/test-helpers.js new file mode 100644 index 0000000..27b6a7b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/support/test-helpers.js
@@ -0,0 +1,36 @@ +const simpleTestString = `ABCDEFGHIJKLO +AAAAAAAA +AAAA +AA +A`; + +function generateSimpleTest({ textGroupAlign, textAlign, direction, writingMode }) { + if (!direction) + direction = "ltr"; + if (!writingMode) + writingMode = "horizontal-tb"; + + const container = document.createElement("div"); + container.textContent = simpleTestString; + container.style = `text-group-align: ${textGroupAlign}; text-align: ${textAlign}; direction: ${direction}; writing-mode: ${writingMode}`; + container.classList.add("text-container", "pre"); + document.body.append(container); +} + +function generateSimpleReference({ textGroupAlign, textAlign, direction, writingMode }) { + if (!direction) + direction = "ltr"; + if (!writingMode) + writingMode = "horizontal-tb"; + + const container = document.createElement("div"); + container.classList.add("text-container", "pre"); + container.style = `text-align: ${textAlign}; direction: ${direction}; writing-mode: ${writingMode}`; + + const group = document.createElement("div"); + group.textContent = simpleTestString; + group.classList.add("group", `group-align-${textGroupAlign}`); + container.append(group); + + document.body.append(container); +}
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-ref.html new file mode 100644 index 0000000..919747c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>Reference: text-group-align: center</title> +<link rel="stylesheet" href="support/test-helpers.css"> +<link rel="stylesheet" href="support/fake-group-align.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleReference({ textGroupAlign: "center", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-vlr-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-vlr-ref.html new file mode 100644 index 0000000..6b74aac --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-vlr-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>Reference: text-group-align: center</title> +<link rel="stylesheet" href="support/test-helpers.css"> +<link rel="stylesheet" href="support/fake-group-align.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleReference({ textGroupAlign: "center", writingMode: "vertical-lr", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-vlr.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-vlr.html new file mode 100644 index 0000000..e18cf34 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-vlr.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<title>text-group-align: center</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-group-align-property"> +<link rel="match" href="text-group-align-center-vlr-ref.html"> +<link rel="stylesheet" href="support/test-helpers.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleTest({ textGroupAlign: "center", writingMode: "vertical-lr", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-vlr.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-vlr.html.ini new file mode 100644 index 0000000..e745a34 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center-vlr.html.ini
@@ -0,0 +1,2 @@ +[text-group-align-center-vlr.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center.html new file mode 100644 index 0000000..e4acc744 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<title>text-group-align: center</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-group-align-property"> +<link rel="match" href="text-group-align-center-ref.html"> +<link rel="stylesheet" href="support/test-helpers.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleTest({ textGroupAlign: "center", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center.html.ini new file mode 100644 index 0000000..cb703fd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-center.html.ini
@@ -0,0 +1,2 @@ +[text-group-align-center.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-ref.html new file mode 100644 index 0000000..2c8d2da9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>Reference: text-group-align: end</title> +<link rel="stylesheet" href="support/test-helpers.css"> +<link rel="stylesheet" href="support/fake-group-align.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleReference({ textGroupAlign: "end", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-vlr-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-vlr-ref.html new file mode 100644 index 0000000..9ea04f6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-vlr-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>Reference: text-group-align: end</title> +<link rel="stylesheet" href="support/test-helpers.css"> +<link rel="stylesheet" href="support/fake-group-align.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleReference({ textGroupAlign: "end", writingMode: "vertical-lr", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-vlr.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-vlr.html new file mode 100644 index 0000000..1f690b44 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-vlr.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<title>text-group-align: end</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-group-align-property"> +<link rel="match" href="text-group-align-end-vlr-ref.html"> +<link rel="stylesheet" href="support/test-helpers.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleTest({ textGroupAlign: "end", writingMode: "vertical-lr", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-vlr.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-vlr.html.ini new file mode 100644 index 0000000..9b7c668 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end-vlr.html.ini
@@ -0,0 +1,2 @@ +[text-group-align-end-vlr.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end.html new file mode 100644 index 0000000..1929f59e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<title>text-group-align: end</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-group-align-property"> +<link rel="match" href="text-group-align-end-ref.html"> +<link rel="stylesheet" href="support/test-helpers.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleTest({ textGroupAlign: "end", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end.html.ini new file mode 100644 index 0000000..181d3b1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-end.html.ini
@@ -0,0 +1,2 @@ +[text-group-align-end.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-ref.html new file mode 100644 index 0000000..f041806 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>Reference: text-group-align: left</title> +<link rel="stylesheet" href="support/test-helpers.css"> +<link rel="stylesheet" href="support/fake-group-align.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleReference({ textGroupAlign: "left", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-vlr-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-vlr-ref.html new file mode 100644 index 0000000..a7df839 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-vlr-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>Reference: text-group-align: left</title> +<link rel="stylesheet" href="support/test-helpers.css"> +<link rel="stylesheet" href="support/fake-group-align.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleReference({ textGroupAlign: "left", writingMode: "vertical-lr", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-vlr.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-vlr.html new file mode 100644 index 0000000..4a9ed599 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-vlr.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<title>text-group-align: left</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-group-align-property"> +<link rel="match" href="text-group-align-left-vlr-ref.html"> +<link rel="stylesheet" href="support/test-helpers.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleTest({ textGroupAlign: "left", writingMode: "vertical-lr", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-vlr.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-vlr.html.ini new file mode 100644 index 0000000..b25086d9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left-vlr.html.ini
@@ -0,0 +1,2 @@ +[text-group-align-left-vlr.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left.html new file mode 100644 index 0000000..e74de0e1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<title>text-group-align: left</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-group-align-property"> +<link rel="match" href="text-group-align-left-ref.html"> +<link rel="stylesheet" href="support/test-helpers.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleTest({ textGroupAlign: "left", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left.html.ini new file mode 100644 index 0000000..9196628 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-left.html.ini
@@ -0,0 +1,2 @@ +[text-group-align-left.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-ref.html new file mode 100644 index 0000000..1b11e61 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>Reference: text-group-align: right</title> +<link rel="stylesheet" href="support/test-helpers.css"> +<link rel="stylesheet" href="support/fake-group-align.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleReference({ textGroupAlign: "right", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-vlr-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-vlr-ref.html new file mode 100644 index 0000000..5bfe0a7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-vlr-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>Reference: text-group-align: right</title> +<link rel="stylesheet" href="support/test-helpers.css"> +<link rel="stylesheet" href="support/fake-group-align.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleReference({ textGroupAlign: "right", writingMode: "vertical-lr", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-vlr.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-vlr.html new file mode 100644 index 0000000..9f612aa9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-vlr.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<title>text-group-align: right</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-group-align-property"> +<link rel="match" href="text-group-align-right-vlr-ref.html"> +<link rel="stylesheet" href="support/test-helpers.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleTest({ textGroupAlign: "right", writingMode: "vertical-lr", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-vlr.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-vlr.html.ini new file mode 100644 index 0000000..b4d729f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right-vlr.html.ini
@@ -0,0 +1,2 @@ +[text-group-align-right-vlr.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right.html new file mode 100644 index 0000000..688022a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<title>text-group-align: right</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-group-align-property"> +<link rel="match" href="text-group-align-right-ref.html"> +<link rel="stylesheet" href="support/test-helpers.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleTest({ textGroupAlign: "right", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right.html.ini new file mode 100644 index 0000000..fe721b69b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-right.html.ini
@@ -0,0 +1,2 @@ +[text-group-align-right.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-ref.html new file mode 100644 index 0000000..4c57fcbd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>Reference: text-group-align: start</title> +<link rel="stylesheet" href="support/test-helpers.css"> +<link rel="stylesheet" href="support/fake-group-align.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleReference({ textGroupAlign: "start", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-vlr-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-vlr-ref.html new file mode 100644 index 0000000..051c622b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-vlr-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>Reference: text-group-align: start</title> +<link rel="stylesheet" href="support/test-helpers.css"> +<link rel="stylesheet" href="support/fake-group-align.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleReference({ textGroupAlign: "start", writingMode: "vertical-lr", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-vlr.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-vlr.html new file mode 100644 index 0000000..6dce935 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-vlr.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<title>text-group-align: start</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-group-align-property"> +<link rel="match" href="text-group-align-start-vlr-ref.html"> +<link rel="stylesheet" href="support/test-helpers.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleTest({ textGroupAlign: "start", writingMode: "vertical-lr", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-vlr.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-vlr.html.ini new file mode 100644 index 0000000..a1ebbbf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start-vlr.html.ini
@@ -0,0 +1,2 @@ +[text-group-align-start-vlr.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start.html new file mode 100644 index 0000000..0951f2c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<title>text-group-align: start</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-group-align-property"> +<link rel="match" href="text-group-align-start-ref.html"> +<link rel="stylesheet" href="support/test-helpers.css"> +<body> +<script src="support/test-helpers.js"></script> +<script> +for (let direction of ["ltr", "rtl"]) { + for (let textAlign of ["start", "end", "left", "right", "center"]) { + generateSimpleTest({ textGroupAlign: "start", direction, textAlign }); + } + document.body.append(document.createElement("br")); +} +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start.html.ini new file mode 100644 index 0000000..6de7b74 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-group-align/text-group-align-start.html.ini
@@ -0,0 +1,2 @@ +[text-group-align-start.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-001.html.ini index 83483d7..8b9bfa4 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-001.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-001.html.ini
@@ -1,3 +1,4 @@ [text-transform-capitalize-001.html] expected: - if product == "chrome": FAIL + if (os == "linux") and (product == "chrome"): FAIL + if os == "win": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-003.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-003.html.ini index 38e66a2..b989cd5 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-003.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-003.html.ini
@@ -1,3 +1,4 @@ [text-transform-capitalize-003.html] expected: - if product == "chrome": FAIL + if (os == "linux") and (product == "chrome"): FAIL + if os == "win": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-005.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-005.html.ini new file mode 100644 index 0000000..c06d2b0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-005.html.ini
@@ -0,0 +1,3 @@ +[text-transform-capitalize-005.html] + expected: + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-014.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-014.html.ini new file mode 100644 index 0000000..f0b7504 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-014.html.ini
@@ -0,0 +1,3 @@ +[text-transform-capitalize-014.html] + expected: + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-018.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-018.html.ini index 87e5140..c1e2194 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-018.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-018.html.ini
@@ -1,3 +1,3 @@ [text-transform-capitalize-018.html] expected: - if product == "chrome": FAIL + if os == "win": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/animation-duration.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/animation-duration.html index d31f165df..fa78ece 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/animation-duration.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/animation-duration.html
@@ -12,10 +12,20 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_time(input, result) { + const time = input.to('s'); + + if (time.value < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 's')); + else + assert_style_value_equals(result, time); +} + runListValuedPropertyTests('animation-duration', [ { syntax: '<time>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_time }, ]);
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/animation-iteration-count.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/animation-iteration-count.html index 4ff5756..627b281c 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/animation-iteration-count.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/animation-iteration-count.html
@@ -13,11 +13,21 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_number(input, result) { + const number = input.to('number'); + + if (number.value < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'number')); + else + assert_style_value_equals(result, number); +} + runListValuedPropertyTests('animation-iteration-count', [ { syntax: 'infinite' }, { syntax: '<number>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_number }, ]);
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/block-size-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/block-size-expected.txt new file mode 100644 index 0000000..206ec0c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/block-size-expected.txt
@@ -0,0 +1,99 @@ +This is a testharness.js-based test. +Found 95 tests; 92 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Can set 'block-size' to CSS-wide keywords: initial +PASS Can set 'block-size' to CSS-wide keywords: inherit +PASS Can set 'block-size' to CSS-wide keywords: unset +PASS Can set 'block-size' to CSS-wide keywords: revert +PASS Can set 'block-size' to var() references: var(--A) +PASS Can set 'block-size' to the 'auto' keyword: auto +PASS Can set 'block-size' to a percent: 0% +FAIL Can set 'block-size' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'block-size' to a percent: 3.14% +PASS Can set 'block-size' to a percent: calc(0% + 0%) +PASS Can set 'block-size' to a length: 0px +PASS Can set 'block-size' to a length: -3.14em +PASS Can set 'block-size' to a length: 3.14cm +PASS Can set 'block-size' to a length: calc(0px + 0em) +PASS Setting 'block-size' to a time: 0s throws TypeError +PASS Setting 'block-size' to a time: -3.14ms throws TypeError +PASS Setting 'block-size' to a time: 3.14s throws TypeError +PASS Setting 'block-size' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'block-size' to an angle: 0deg throws TypeError +PASS Setting 'block-size' to an angle: 3.14rad throws TypeError +PASS Setting 'block-size' to an angle: -3.14deg throws TypeError +PASS Setting 'block-size' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'block-size' to a flexible length: 0fr throws TypeError +PASS Setting 'block-size' to a flexible length: 1fr throws TypeError +PASS Setting 'block-size' to a flexible length: -3.14fr throws TypeError +PASS Setting 'block-size' to a number: 0 throws TypeError +PASS Setting 'block-size' to a number: -3.14 throws TypeError +PASS Setting 'block-size' to a number: 3.14 throws TypeError +PASS Setting 'block-size' to a number: calc(2 + 3) throws TypeError +PASS Setting 'block-size' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'block-size' to a transform: perspective(10em) throws TypeError +PASS Setting 'block-size' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +PASS Can set 'min-block-size' to CSS-wide keywords: initial +PASS Can set 'min-block-size' to CSS-wide keywords: inherit +PASS Can set 'min-block-size' to CSS-wide keywords: unset +PASS Can set 'min-block-size' to CSS-wide keywords: revert +PASS Can set 'min-block-size' to var() references: var(--A) +PASS Can set 'min-block-size' to a percent: 0% +FAIL Can set 'min-block-size' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'min-block-size' to a percent: 3.14% +PASS Can set 'min-block-size' to a percent: calc(0% + 0%) +PASS Can set 'min-block-size' to a length: 0px +PASS Can set 'min-block-size' to a length: -3.14em +PASS Can set 'min-block-size' to a length: 3.14cm +PASS Can set 'min-block-size' to a length: calc(0px + 0em) +PASS Setting 'min-block-size' to a time: 0s throws TypeError +PASS Setting 'min-block-size' to a time: -3.14ms throws TypeError +PASS Setting 'min-block-size' to a time: 3.14s throws TypeError +PASS Setting 'min-block-size' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'min-block-size' to an angle: 0deg throws TypeError +PASS Setting 'min-block-size' to an angle: 3.14rad throws TypeError +PASS Setting 'min-block-size' to an angle: -3.14deg throws TypeError +PASS Setting 'min-block-size' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'min-block-size' to a flexible length: 0fr throws TypeError +PASS Setting 'min-block-size' to a flexible length: 1fr throws TypeError +PASS Setting 'min-block-size' to a flexible length: -3.14fr throws TypeError +PASS Setting 'min-block-size' to a number: 0 throws TypeError +PASS Setting 'min-block-size' to a number: -3.14 throws TypeError +PASS Setting 'min-block-size' to a number: 3.14 throws TypeError +PASS Setting 'min-block-size' to a number: calc(2 + 3) throws TypeError +PASS Setting 'min-block-size' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'min-block-size' to a transform: perspective(10em) throws TypeError +PASS Setting 'min-block-size' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +PASS Can set 'max-block-size' to CSS-wide keywords: initial +PASS Can set 'max-block-size' to CSS-wide keywords: inherit +PASS Can set 'max-block-size' to CSS-wide keywords: unset +PASS Can set 'max-block-size' to CSS-wide keywords: revert +PASS Can set 'max-block-size' to var() references: var(--A) +PASS Can set 'max-block-size' to the 'none' keyword: none +PASS Can set 'max-block-size' to a percent: 0% +FAIL Can set 'max-block-size' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'max-block-size' to a percent: 3.14% +PASS Can set 'max-block-size' to a percent: calc(0% + 0%) +PASS Can set 'max-block-size' to a length: 0px +PASS Can set 'max-block-size' to a length: -3.14em +PASS Can set 'max-block-size' to a length: 3.14cm +PASS Can set 'max-block-size' to a length: calc(0px + 0em) +PASS Setting 'max-block-size' to a time: 0s throws TypeError +PASS Setting 'max-block-size' to a time: -3.14ms throws TypeError +PASS Setting 'max-block-size' to a time: 3.14s throws TypeError +PASS Setting 'max-block-size' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'max-block-size' to an angle: 0deg throws TypeError +PASS Setting 'max-block-size' to an angle: 3.14rad throws TypeError +PASS Setting 'max-block-size' to an angle: -3.14deg throws TypeError +PASS Setting 'max-block-size' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'max-block-size' to a flexible length: 0fr throws TypeError +PASS Setting 'max-block-size' to a flexible length: 1fr throws TypeError +PASS Setting 'max-block-size' to a flexible length: -3.14fr throws TypeError +PASS Setting 'max-block-size' to a number: 0 throws TypeError +PASS Setting 'max-block-size' to a number: -3.14 throws TypeError +PASS Setting 'max-block-size' to a number: 3.14 throws TypeError +PASS Setting 'max-block-size' to a number: calc(2 + 3) throws TypeError +PASS Setting 'max-block-size' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'max-block-size' to a transform: perspective(10em) throws TypeError +PASS Setting 'max-block-size' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/block-size.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/block-size.html index d1a1e09..311df4d 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/block-size.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/block-size.html
@@ -13,11 +13,21 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_percentage(input, result) { + const percent = input.to('percent').value; + + if (percent < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'percent')); + else + assert_style_value_equals(result, new CSSUnitValue(percent, 'percent')); +} + runPropertyTests('block-size', [ { syntax: 'auto' }, { syntax: '<percentage>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, { syntax: '<length>', @@ -28,7 +38,8 @@ runPropertyTests('min-block-size', [ { syntax: '<percentage>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, { syntax: '<length>', @@ -40,7 +51,8 @@ { syntax: 'none' }, { syntax: '<percentage>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, { syntax: '<length>', @@ -48,4 +60,4 @@ }, ]); -</script> \ No newline at end of file +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/block-size.html.ini b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/block-size.html.ini new file mode 100644 index 0000000..7384c11 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/block-size.html.ini
@@ -0,0 +1,9 @@ +[block-size.html] + [Can set 'block-size' to a percent: -3.14%] + expected: FAIL + + [Can set 'min-block-size' to a percent: -3.14%] + expected: FAIL + + [Can set 'max-block-size' to a percent: -3.14%] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis-expected.txt new file mode 100644 index 0000000..2e977c2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis-expected.txt
@@ -0,0 +1,39 @@ +This is a testharness.js-based test. +PASS Can set 'flex-basis' to CSS-wide keywords: initial +PASS Can set 'flex-basis' to CSS-wide keywords: inherit +PASS Can set 'flex-basis' to CSS-wide keywords: unset +PASS Can set 'flex-basis' to CSS-wide keywords: revert +PASS Can set 'flex-basis' to var() references: var(--A) +PASS Can set 'flex-basis' to the 'auto' keyword: auto +PASS Can set 'flex-basis' to the 'content' keyword: content +PASS Can set 'flex-basis' to the 'fit-content' keyword: fit-content +PASS Can set 'flex-basis' to the 'min-content' keyword: min-content +PASS Can set 'flex-basis' to the 'max-content' keyword: max-content +PASS Can set 'flex-basis' to a length: 0px +PASS Can set 'flex-basis' to a length: -3.14em +PASS Can set 'flex-basis' to a length: 3.14cm +PASS Can set 'flex-basis' to a length: calc(0px + 0em) +PASS Can set 'flex-basis' to a percent: 0% +FAIL Can set 'flex-basis' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'flex-basis' to a percent: 3.14% +PASS Can set 'flex-basis' to a percent: calc(0% + 0%) +PASS Setting 'flex-basis' to a time: 0s throws TypeError +PASS Setting 'flex-basis' to a time: -3.14ms throws TypeError +PASS Setting 'flex-basis' to a time: 3.14s throws TypeError +PASS Setting 'flex-basis' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'flex-basis' to an angle: 0deg throws TypeError +PASS Setting 'flex-basis' to an angle: 3.14rad throws TypeError +PASS Setting 'flex-basis' to an angle: -3.14deg throws TypeError +PASS Setting 'flex-basis' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'flex-basis' to a flexible length: 0fr throws TypeError +PASS Setting 'flex-basis' to a flexible length: 1fr throws TypeError +PASS Setting 'flex-basis' to a flexible length: -3.14fr throws TypeError +PASS Setting 'flex-basis' to a number: 0 throws TypeError +PASS Setting 'flex-basis' to a number: -3.14 throws TypeError +PASS Setting 'flex-basis' to a number: 3.14 throws TypeError +PASS Setting 'flex-basis' to a number: calc(2 + 3) throws TypeError +PASS Setting 'flex-basis' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'flex-basis' to a transform: perspective(10em) throws TypeError +PASS Setting 'flex-basis' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html index 5795abb..de0d62e 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html
@@ -13,6 +13,15 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_percentage(input, result) { + const percent = input.to('percent').value; + + if (percent < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'percent')); + else + assert_style_value_equals(result, new CSSUnitValue(percent, 'percent')); +} + runPropertyTests('flex-basis', [ { syntax: 'auto' }, { syntax: 'content' }, @@ -26,6 +35,7 @@ { syntax: '<percentage>', specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, ]);
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html.ini b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html.ini new file mode 100644 index 0000000..62c3e2c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html.ini
@@ -0,0 +1,3 @@ +[flex-basis.html] + [Can set 'flex-basis' to a percent: -3.14%] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-grow-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-grow-expected.txt new file mode 100644 index 0000000..27e9785 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-grow-expected.txt
@@ -0,0 +1,34 @@ +This is a testharness.js-based test. +PASS Can set 'flex-grow' to CSS-wide keywords: initial +PASS Can set 'flex-grow' to CSS-wide keywords: inherit +PASS Can set 'flex-grow' to CSS-wide keywords: unset +PASS Can set 'flex-grow' to CSS-wide keywords: revert +PASS Can set 'flex-grow' to var() references: var(--A) +PASS Can set 'flex-grow' to a number: 0 +FAIL Can set 'flex-grow' to a number: -3.14 assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'flex-grow' to a number: 3.14 +PASS Can set 'flex-grow' to a number: calc(2 + 3) +PASS Setting 'flex-grow' to a length: 0px throws TypeError +PASS Setting 'flex-grow' to a length: -3.14em throws TypeError +PASS Setting 'flex-grow' to a length: 3.14cm throws TypeError +PASS Setting 'flex-grow' to a length: calc(0px + 0em) throws TypeError +PASS Setting 'flex-grow' to a percent: 0% throws TypeError +PASS Setting 'flex-grow' to a percent: -3.14% throws TypeError +PASS Setting 'flex-grow' to a percent: 3.14% throws TypeError +PASS Setting 'flex-grow' to a percent: calc(0% + 0%) throws TypeError +PASS Setting 'flex-grow' to a time: 0s throws TypeError +PASS Setting 'flex-grow' to a time: -3.14ms throws TypeError +PASS Setting 'flex-grow' to a time: 3.14s throws TypeError +PASS Setting 'flex-grow' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'flex-grow' to an angle: 0deg throws TypeError +PASS Setting 'flex-grow' to an angle: 3.14rad throws TypeError +PASS Setting 'flex-grow' to an angle: -3.14deg throws TypeError +PASS Setting 'flex-grow' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'flex-grow' to a flexible length: 0fr throws TypeError +PASS Setting 'flex-grow' to a flexible length: 1fr throws TypeError +PASS Setting 'flex-grow' to a flexible length: -3.14fr throws TypeError +PASS Setting 'flex-grow' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'flex-grow' to a transform: perspective(10em) throws TypeError +PASS Setting 'flex-grow' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-grow.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-grow.html index 9c04ad30..bee9e56 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-grow.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-grow.html
@@ -13,10 +13,20 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_number(input, result) { + const number = input.to('number'); + + if (number.value < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'number')); + else + assert_style_value_equals(result, number); +} + runPropertyTests('flex-grow', [ { syntax: '<number>', specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_number }, ]);
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-grow.html.ini b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-grow.html.ini new file mode 100644 index 0000000..d8f6e47 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-grow.html.ini
@@ -0,0 +1,3 @@ +[flex-grow.html] + [Can set 'flex-grow' to a number: -3.14] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-shrink-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-shrink-expected.txt new file mode 100644 index 0000000..6c44481 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-shrink-expected.txt
@@ -0,0 +1,34 @@ +This is a testharness.js-based test. +PASS Can set 'flex-shrink' to CSS-wide keywords: initial +PASS Can set 'flex-shrink' to CSS-wide keywords: inherit +PASS Can set 'flex-shrink' to CSS-wide keywords: unset +PASS Can set 'flex-shrink' to CSS-wide keywords: revert +PASS Can set 'flex-shrink' to var() references: var(--A) +PASS Can set 'flex-shrink' to a number: 0 +FAIL Can set 'flex-shrink' to a number: -3.14 assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'flex-shrink' to a number: 3.14 +PASS Can set 'flex-shrink' to a number: calc(2 + 3) +PASS Setting 'flex-shrink' to a length: 0px throws TypeError +PASS Setting 'flex-shrink' to a length: -3.14em throws TypeError +PASS Setting 'flex-shrink' to a length: 3.14cm throws TypeError +PASS Setting 'flex-shrink' to a length: calc(0px + 0em) throws TypeError +PASS Setting 'flex-shrink' to a percent: 0% throws TypeError +PASS Setting 'flex-shrink' to a percent: -3.14% throws TypeError +PASS Setting 'flex-shrink' to a percent: 3.14% throws TypeError +PASS Setting 'flex-shrink' to a percent: calc(0% + 0%) throws TypeError +PASS Setting 'flex-shrink' to a time: 0s throws TypeError +PASS Setting 'flex-shrink' to a time: -3.14ms throws TypeError +PASS Setting 'flex-shrink' to a time: 3.14s throws TypeError +PASS Setting 'flex-shrink' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'flex-shrink' to an angle: 0deg throws TypeError +PASS Setting 'flex-shrink' to an angle: 3.14rad throws TypeError +PASS Setting 'flex-shrink' to an angle: -3.14deg throws TypeError +PASS Setting 'flex-shrink' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'flex-shrink' to a flexible length: 0fr throws TypeError +PASS Setting 'flex-shrink' to a flexible length: 1fr throws TypeError +PASS Setting 'flex-shrink' to a flexible length: -3.14fr throws TypeError +PASS Setting 'flex-shrink' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'flex-shrink' to a transform: perspective(10em) throws TypeError +PASS Setting 'flex-shrink' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-shrink.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-shrink.html index 30ee7db..3992fa4 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-shrink.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-shrink.html
@@ -13,10 +13,20 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_number(input, result) { + const number = input.to('number'); + + if (number.value < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'number')); + else + assert_style_value_equals(result, number); +} + runPropertyTests('flex-shrink', [ { syntax: '<number>', specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_number }, ]);
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-shrink.html.ini b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-shrink.html.ini new file mode 100644 index 0000000..5c7a770 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-shrink.html.ini
@@ -0,0 +1,3 @@ +[flex-shrink.html] + [Can set 'flex-shrink' to a number: -3.14] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust-expected.txt new file mode 100644 index 0000000..163d9cdc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust-expected.txt
@@ -0,0 +1,35 @@ +This is a testharness.js-based test. +PASS Can set 'font-size-adjust' to CSS-wide keywords: initial +PASS Can set 'font-size-adjust' to CSS-wide keywords: inherit +PASS Can set 'font-size-adjust' to CSS-wide keywords: unset +PASS Can set 'font-size-adjust' to CSS-wide keywords: revert +PASS Can set 'font-size-adjust' to var() references: var(--A) +PASS Can set 'font-size-adjust' to the 'none' keyword: none +PASS Can set 'font-size-adjust' to a number: 0 +FAIL Can set 'font-size-adjust' to a number: -3.14 assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'font-size-adjust' to a number: 3.14 +PASS Can set 'font-size-adjust' to a number: calc(2 + 3) +PASS Setting 'font-size-adjust' to a length: 0px throws TypeError +PASS Setting 'font-size-adjust' to a length: -3.14em throws TypeError +PASS Setting 'font-size-adjust' to a length: 3.14cm throws TypeError +PASS Setting 'font-size-adjust' to a length: calc(0px + 0em) throws TypeError +PASS Setting 'font-size-adjust' to a percent: 0% throws TypeError +PASS Setting 'font-size-adjust' to a percent: -3.14% throws TypeError +PASS Setting 'font-size-adjust' to a percent: 3.14% throws TypeError +PASS Setting 'font-size-adjust' to a percent: calc(0% + 0%) throws TypeError +PASS Setting 'font-size-adjust' to a time: 0s throws TypeError +PASS Setting 'font-size-adjust' to a time: -3.14ms throws TypeError +PASS Setting 'font-size-adjust' to a time: 3.14s throws TypeError +PASS Setting 'font-size-adjust' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'font-size-adjust' to an angle: 0deg throws TypeError +PASS Setting 'font-size-adjust' to an angle: 3.14rad throws TypeError +PASS Setting 'font-size-adjust' to an angle: -3.14deg throws TypeError +PASS Setting 'font-size-adjust' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'font-size-adjust' to a flexible length: 0fr throws TypeError +PASS Setting 'font-size-adjust' to a flexible length: 1fr throws TypeError +PASS Setting 'font-size-adjust' to a flexible length: -3.14fr throws TypeError +PASS Setting 'font-size-adjust' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'font-size-adjust' to a transform: perspective(10em) throws TypeError +PASS Setting 'font-size-adjust' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html index 71cb54c..be06598 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html
@@ -13,11 +13,21 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_number(input, result) { + const number = input.to('number'); + + if (number.value < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'number')); + else + assert_style_value_equals(result, number); +} + runPropertyTests('font-size-adjust', [ { syntax: 'none' }, { syntax: '<number>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_number }, ]);
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html.ini b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html.ini new file mode 100644 index 0000000..64e92c75 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html.ini
@@ -0,0 +1,3 @@ +[font-size-adjust.html] + [Can set 'font-size-adjust' to a number: -3.14] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-stretch-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-stretch-expected.txt index 7a061b4..52cbbc4 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-stretch-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-stretch-expected.txt
@@ -14,7 +14,7 @@ FAIL Can set 'font-stretch' to the 'extra-expanded' keyword: extra-expanded assert_equals: expected "CSSKeywordValue" but got "CSSUnitValue" FAIL Can set 'font-stretch' to the 'ultra-expanded' keyword: ultra-expanded assert_equals: expected "CSSKeywordValue" but got "CSSUnitValue" PASS Can set 'font-stretch' to a percent: 0% -FAIL Can set 'font-stretch' to a percent: -3.14% assert_approx_equals: expected -3.14 +/- 0.000001 but got -3 +FAIL Can set 'font-stretch' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3 FAIL Can set 'font-stretch' to a percent: 3.14% assert_approx_equals: expected 3.14 +/- 0.000001 but got 3 PASS Can set 'font-stretch' to a percent: calc(0% + 0%) PASS Setting 'font-stretch' to a length: 0px throws TypeError
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-stretch.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-stretch.html index 3871ff3e..40cffaf 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-stretch.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/font-stretch.html
@@ -13,6 +13,15 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_percentage(input, result) { + const percent = input.to('percent').value; + + if (percent < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'percent')); + else + assert_style_value_equals(result, new CSSUnitValue(percent, 'percent')); +} + runPropertyTests('font-stretch', [ { syntax: 'normal' }, { syntax: 'ultra-condensed' }, @@ -25,7 +34,8 @@ { syntax: 'ultra-expanded' }, { syntax: '<percentage>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, ]);
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/gap-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/gap-expected.txt new file mode 100644 index 0000000..b522f1f8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/gap-expected.txt
@@ -0,0 +1,68 @@ +This is a testharness.js-based test. +Found 64 tests; 62 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Can set 'column-gap' to CSS-wide keywords: initial +PASS Can set 'column-gap' to CSS-wide keywords: inherit +PASS Can set 'column-gap' to CSS-wide keywords: unset +PASS Can set 'column-gap' to CSS-wide keywords: revert +PASS Can set 'column-gap' to var() references: var(--A) +PASS Can set 'column-gap' to the 'normal' keyword: normal +PASS Can set 'column-gap' to a length: 0px +PASS Can set 'column-gap' to a length: -3.14em +PASS Can set 'column-gap' to a length: 3.14cm +PASS Can set 'column-gap' to a length: calc(0px + 0em) +PASS Can set 'column-gap' to a percent: 0% +FAIL Can set 'column-gap' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'column-gap' to a percent: 3.14% +PASS Can set 'column-gap' to a percent: calc(0% + 0%) +PASS Setting 'column-gap' to a time: 0s throws TypeError +PASS Setting 'column-gap' to a time: -3.14ms throws TypeError +PASS Setting 'column-gap' to a time: 3.14s throws TypeError +PASS Setting 'column-gap' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'column-gap' to an angle: 0deg throws TypeError +PASS Setting 'column-gap' to an angle: 3.14rad throws TypeError +PASS Setting 'column-gap' to an angle: -3.14deg throws TypeError +PASS Setting 'column-gap' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'column-gap' to a flexible length: 0fr throws TypeError +PASS Setting 'column-gap' to a flexible length: 1fr throws TypeError +PASS Setting 'column-gap' to a flexible length: -3.14fr throws TypeError +PASS Setting 'column-gap' to a number: 0 throws TypeError +PASS Setting 'column-gap' to a number: -3.14 throws TypeError +PASS Setting 'column-gap' to a number: 3.14 throws TypeError +PASS Setting 'column-gap' to a number: calc(2 + 3) throws TypeError +PASS Setting 'column-gap' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'column-gap' to a transform: perspective(10em) throws TypeError +PASS Setting 'column-gap' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +PASS Can set 'row-gap' to CSS-wide keywords: initial +PASS Can set 'row-gap' to CSS-wide keywords: inherit +PASS Can set 'row-gap' to CSS-wide keywords: unset +PASS Can set 'row-gap' to CSS-wide keywords: revert +PASS Can set 'row-gap' to var() references: var(--A) +PASS Can set 'row-gap' to the 'normal' keyword: normal +PASS Can set 'row-gap' to a length: 0px +PASS Can set 'row-gap' to a length: -3.14em +PASS Can set 'row-gap' to a length: 3.14cm +PASS Can set 'row-gap' to a length: calc(0px + 0em) +PASS Can set 'row-gap' to a percent: 0% +FAIL Can set 'row-gap' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'row-gap' to a percent: 3.14% +PASS Can set 'row-gap' to a percent: calc(0% + 0%) +PASS Setting 'row-gap' to a time: 0s throws TypeError +PASS Setting 'row-gap' to a time: -3.14ms throws TypeError +PASS Setting 'row-gap' to a time: 3.14s throws TypeError +PASS Setting 'row-gap' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'row-gap' to an angle: 0deg throws TypeError +PASS Setting 'row-gap' to an angle: 3.14rad throws TypeError +PASS Setting 'row-gap' to an angle: -3.14deg throws TypeError +PASS Setting 'row-gap' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'row-gap' to a flexible length: 0fr throws TypeError +PASS Setting 'row-gap' to a flexible length: 1fr throws TypeError +PASS Setting 'row-gap' to a flexible length: -3.14fr throws TypeError +PASS Setting 'row-gap' to a number: 0 throws TypeError +PASS Setting 'row-gap' to a number: -3.14 throws TypeError +PASS Setting 'row-gap' to a number: 3.14 throws TypeError +PASS Setting 'row-gap' to a number: calc(2 + 3) throws TypeError +PASS Setting 'row-gap' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'row-gap' to a transform: perspective(10em) throws TypeError +PASS Setting 'row-gap' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/gap.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/gap.html index e07d1cd..20ff5816 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/gap.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/gap.html
@@ -13,6 +13,15 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_percentage(input, result) { + const percent = input.to('percent').value; + + if (percent < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'percent')); + else + assert_style_value_equals(result, new CSSUnitValue(percent, 'percent')); +} + for (const prefix of ['column', 'row']) { runPropertyTests(`${prefix}-gap`, [ { syntax: 'normal' }, @@ -22,7 +31,8 @@ }, { syntax: '<percentage>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, ]); }
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/gap.html.ini b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/gap.html.ini new file mode 100644 index 0000000..0addf0e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/gap.html.ini
@@ -0,0 +1,6 @@ +[gap.html] + [Can set 'column-gap' to a percent: -3.14%] + expected: FAIL + + [Can set 'row-gap' to a percent: -3.14%] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/letter-spacing-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/letter-spacing-expected.txt deleted file mode 100644 index fc2c933..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/letter-spacing-expected.txt +++ /dev/null
@@ -1,35 +0,0 @@ -This is a testharness.js-based test. -PASS Can set 'letter-spacing' to CSS-wide keywords: initial -PASS Can set 'letter-spacing' to CSS-wide keywords: inherit -PASS Can set 'letter-spacing' to CSS-wide keywords: unset -PASS Can set 'letter-spacing' to CSS-wide keywords: revert -PASS Can set 'letter-spacing' to var() references: var(--A) -PASS Can set 'letter-spacing' to the 'normal' keyword: normal -FAIL Can set 'letter-spacing' to a length: 0px assert_equals: expected "CSSUnitValue" but got "CSSKeywordValue" -PASS Can set 'letter-spacing' to a length: -3.14em -PASS Can set 'letter-spacing' to a length: 3.14cm -FAIL Can set 'letter-spacing' to a length: calc(0px + 0em) assert_class_string: relative lengths must compute to a CSSUnitValue expected "[object CSSUnitValue]" but got "[object CSSKeywordValue]" -PASS Setting 'letter-spacing' to a percent: 0% throws TypeError -PASS Setting 'letter-spacing' to a percent: -3.14% throws TypeError -PASS Setting 'letter-spacing' to a percent: 3.14% throws TypeError -PASS Setting 'letter-spacing' to a percent: calc(0% + 0%) throws TypeError -PASS Setting 'letter-spacing' to a time: 0s throws TypeError -PASS Setting 'letter-spacing' to a time: -3.14ms throws TypeError -PASS Setting 'letter-spacing' to a time: 3.14s throws TypeError -PASS Setting 'letter-spacing' to a time: calc(0s + 0ms) throws TypeError -PASS Setting 'letter-spacing' to an angle: 0deg throws TypeError -PASS Setting 'letter-spacing' to an angle: 3.14rad throws TypeError -PASS Setting 'letter-spacing' to an angle: -3.14deg throws TypeError -PASS Setting 'letter-spacing' to an angle: calc(0rad + 0deg) throws TypeError -PASS Setting 'letter-spacing' to a flexible length: 0fr throws TypeError -PASS Setting 'letter-spacing' to a flexible length: 1fr throws TypeError -PASS Setting 'letter-spacing' to a flexible length: -3.14fr throws TypeError -PASS Setting 'letter-spacing' to a number: 0 throws TypeError -PASS Setting 'letter-spacing' to a number: -3.14 throws TypeError -PASS Setting 'letter-spacing' to a number: 3.14 throws TypeError -PASS Setting 'letter-spacing' to a number: calc(2 + 3) throws TypeError -PASS Setting 'letter-spacing' to a transform: translate(50%, 50%) throws TypeError -PASS Setting 'letter-spacing' to a transform: perspective(10em) throws TypeError -PASS Setting 'letter-spacing' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/letter-spacing.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/letter-spacing.html index ccbf0a0e..9d313c13 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/letter-spacing.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/letter-spacing.html
@@ -13,9 +13,28 @@ <script> 'use strict'; +function assert_is_equal_with_zero_special_handling(input, result) { + let is_zero_length = true; + if (input instanceof CSSMathSum) { + for (let operand of input.values) + is_zero_length &&= (operand.value == 0); + } else + is_zero_length = input.value == 0; + + // Per the specification, a computed letter-spacing of zero yields a resolved value (getComputedStyle() + // return value) of normal. + if (is_zero_length) + assert_style_value_equals(result, new CSSKeywordValue("normal")); + else + assert_is_unit('px', result); // Same check as in testsuite.js +} + runPropertyTests('letter-spacing', [ { syntax: 'normal' }, - { syntax: '<length>' }, + { + syntax: '<length>', + computed: assert_is_equal_with_zero_special_handling + }, ]); </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/letter-spacing.html.ini b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/letter-spacing.html.ini deleted file mode 100644 index 3f3e4c7..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/letter-spacing.html.ini +++ /dev/null
@@ -1,6 +0,0 @@ -[letter-spacing.html] - [Can set 'letter-spacing' to a length: 0px] - expected: FAIL - - [Can set 'letter-spacing' to a length: calc(0px + 0em)] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/logical.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/logical.html index 9a2b208..2e451d6 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/logical.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/logical.html
@@ -13,6 +13,15 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_percentage(input, result) { + const percent = input.to('percent').value; + + if (percent < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'percent')); + else + assert_style_value_equals(result, new CSSUnitValue(percent, 'percent')); +} + const logical = { axes: ['block', 'inline'], sides: ['block-start', 'block-end', 'inline-start', 'inline-end'], @@ -32,7 +41,8 @@ // TODO: Test 'auto' { syntax: '<percentage>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, { syntax: '<length>',
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/shape-margin-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/shape-margin-expected.txt new file mode 100644 index 0000000..e1dac7f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/shape-margin-expected.txt
@@ -0,0 +1,34 @@ +This is a testharness.js-based test. +PASS Can set 'shape-margin' to CSS-wide keywords: initial +PASS Can set 'shape-margin' to CSS-wide keywords: inherit +PASS Can set 'shape-margin' to CSS-wide keywords: unset +PASS Can set 'shape-margin' to CSS-wide keywords: revert +PASS Can set 'shape-margin' to var() references: var(--A) +PASS Can set 'shape-margin' to a length: 0px +PASS Can set 'shape-margin' to a length: -3.14em +PASS Can set 'shape-margin' to a length: 3.14cm +PASS Can set 'shape-margin' to a length: calc(0px + 0em) +PASS Can set 'shape-margin' to a percent: 0% +FAIL Can set 'shape-margin' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'shape-margin' to a percent: 3.14% +PASS Can set 'shape-margin' to a percent: calc(0% + 0%) +PASS Setting 'shape-margin' to a time: 0s throws TypeError +PASS Setting 'shape-margin' to a time: -3.14ms throws TypeError +PASS Setting 'shape-margin' to a time: 3.14s throws TypeError +PASS Setting 'shape-margin' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'shape-margin' to an angle: 0deg throws TypeError +PASS Setting 'shape-margin' to an angle: 3.14rad throws TypeError +PASS Setting 'shape-margin' to an angle: -3.14deg throws TypeError +PASS Setting 'shape-margin' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'shape-margin' to a flexible length: 0fr throws TypeError +PASS Setting 'shape-margin' to a flexible length: 1fr throws TypeError +PASS Setting 'shape-margin' to a flexible length: -3.14fr throws TypeError +PASS Setting 'shape-margin' to a number: 0 throws TypeError +PASS Setting 'shape-margin' to a number: -3.14 throws TypeError +PASS Setting 'shape-margin' to a number: 3.14 throws TypeError +PASS Setting 'shape-margin' to a number: calc(2 + 3) throws TypeError +PASS Setting 'shape-margin' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'shape-margin' to a transform: perspective(10em) throws TypeError +PASS Setting 'shape-margin' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/shape-margin.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/shape-margin.html index ca517bb..60adc7a 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/shape-margin.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/shape-margin.html
@@ -13,6 +13,15 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_percentage(input, result) { + const percent = input.to('percent').value; + + if (percent < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'percent')); + else + assert_style_value_equals(result, new CSSUnitValue(percent, 'percent')); +} + runPropertyTests('shape-margin', [ { syntax: '<length>', @@ -20,7 +29,8 @@ }, { syntax: '<percentage>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, ]);
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/shape-margin.html.ini b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/shape-margin.html.ini new file mode 100644 index 0000000..1325fffd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/shape-margin.html.ini
@@ -0,0 +1,3 @@ +[shape-margin.html] + [Can set 'shape-margin' to a percent: -3.14%] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/stroke-dasharray.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/stroke-dasharray.html index 6e8fdc4..6c3731cc 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/stroke-dasharray.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/stroke-dasharray.html
@@ -13,6 +13,15 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_percentage(input, result) { + const percent = input.to('percent').value; + + if (percent < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'percent')); + else + assert_style_value_equals(result, new CSSUnitValue(percent, 'percent')); +} + runPropertyTests('stroke-dasharray', [ { syntax: 'none' }, { @@ -22,6 +31,7 @@ { syntax: '<percentage>', specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, { syntax: '<number>',
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width-expected.txt new file mode 100644 index 0000000..3109893 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width-expected.txt
@@ -0,0 +1,99 @@ +This is a testharness.js-based test. +Found 95 tests; 92 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Can set 'width' to CSS-wide keywords: initial +PASS Can set 'width' to CSS-wide keywords: inherit +PASS Can set 'width' to CSS-wide keywords: unset +PASS Can set 'width' to CSS-wide keywords: revert +PASS Can set 'width' to var() references: var(--A) +PASS Can set 'width' to the 'auto' keyword: auto +PASS Can set 'width' to a percent: 0% +FAIL Can set 'width' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'width' to a percent: 3.14% +PASS Can set 'width' to a percent: calc(0% + 0%) +PASS Can set 'width' to a length: 0px +PASS Can set 'width' to a length: -3.14em +PASS Can set 'width' to a length: 3.14cm +PASS Can set 'width' to a length: calc(0px + 0em) +PASS Setting 'width' to a time: 0s throws TypeError +PASS Setting 'width' to a time: -3.14ms throws TypeError +PASS Setting 'width' to a time: 3.14s throws TypeError +PASS Setting 'width' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'width' to an angle: 0deg throws TypeError +PASS Setting 'width' to an angle: 3.14rad throws TypeError +PASS Setting 'width' to an angle: -3.14deg throws TypeError +PASS Setting 'width' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'width' to a flexible length: 0fr throws TypeError +PASS Setting 'width' to a flexible length: 1fr throws TypeError +PASS Setting 'width' to a flexible length: -3.14fr throws TypeError +PASS Setting 'width' to a number: 0 throws TypeError +PASS Setting 'width' to a number: -3.14 throws TypeError +PASS Setting 'width' to a number: 3.14 throws TypeError +PASS Setting 'width' to a number: calc(2 + 3) throws TypeError +PASS Setting 'width' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'width' to a transform: perspective(10em) throws TypeError +PASS Setting 'width' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +PASS Can set 'min-width' to CSS-wide keywords: initial +PASS Can set 'min-width' to CSS-wide keywords: inherit +PASS Can set 'min-width' to CSS-wide keywords: unset +PASS Can set 'min-width' to CSS-wide keywords: revert +PASS Can set 'min-width' to var() references: var(--A) +PASS Can set 'min-width' to a percent: 0% +FAIL Can set 'min-width' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'min-width' to a percent: 3.14% +PASS Can set 'min-width' to a percent: calc(0% + 0%) +PASS Can set 'min-width' to a length: 0px +PASS Can set 'min-width' to a length: -3.14em +PASS Can set 'min-width' to a length: 3.14cm +PASS Can set 'min-width' to a length: calc(0px + 0em) +PASS Setting 'min-width' to a time: 0s throws TypeError +PASS Setting 'min-width' to a time: -3.14ms throws TypeError +PASS Setting 'min-width' to a time: 3.14s throws TypeError +PASS Setting 'min-width' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'min-width' to an angle: 0deg throws TypeError +PASS Setting 'min-width' to an angle: 3.14rad throws TypeError +PASS Setting 'min-width' to an angle: -3.14deg throws TypeError +PASS Setting 'min-width' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'min-width' to a flexible length: 0fr throws TypeError +PASS Setting 'min-width' to a flexible length: 1fr throws TypeError +PASS Setting 'min-width' to a flexible length: -3.14fr throws TypeError +PASS Setting 'min-width' to a number: 0 throws TypeError +PASS Setting 'min-width' to a number: -3.14 throws TypeError +PASS Setting 'min-width' to a number: 3.14 throws TypeError +PASS Setting 'min-width' to a number: calc(2 + 3) throws TypeError +PASS Setting 'min-width' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'min-width' to a transform: perspective(10em) throws TypeError +PASS Setting 'min-width' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +PASS Can set 'max-width' to CSS-wide keywords: initial +PASS Can set 'max-width' to CSS-wide keywords: inherit +PASS Can set 'max-width' to CSS-wide keywords: unset +PASS Can set 'max-width' to CSS-wide keywords: revert +PASS Can set 'max-width' to var() references: var(--A) +PASS Can set 'max-width' to the 'none' keyword: none +PASS Can set 'max-width' to a percent: 0% +FAIL Can set 'max-width' to a percent: -3.14% assert_approx_equals: expected 0 +/- 0.000001 but got -3.140000104904175 +PASS Can set 'max-width' to a percent: 3.14% +PASS Can set 'max-width' to a percent: calc(0% + 0%) +PASS Can set 'max-width' to a length: 0px +PASS Can set 'max-width' to a length: -3.14em +PASS Can set 'max-width' to a length: 3.14cm +PASS Can set 'max-width' to a length: calc(0px + 0em) +PASS Setting 'max-width' to a time: 0s throws TypeError +PASS Setting 'max-width' to a time: -3.14ms throws TypeError +PASS Setting 'max-width' to a time: 3.14s throws TypeError +PASS Setting 'max-width' to a time: calc(0s + 0ms) throws TypeError +PASS Setting 'max-width' to an angle: 0deg throws TypeError +PASS Setting 'max-width' to an angle: 3.14rad throws TypeError +PASS Setting 'max-width' to an angle: -3.14deg throws TypeError +PASS Setting 'max-width' to an angle: calc(0rad + 0deg) throws TypeError +PASS Setting 'max-width' to a flexible length: 0fr throws TypeError +PASS Setting 'max-width' to a flexible length: 1fr throws TypeError +PASS Setting 'max-width' to a flexible length: -3.14fr throws TypeError +PASS Setting 'max-width' to a number: 0 throws TypeError +PASS Setting 'max-width' to a number: -3.14 throws TypeError +PASS Setting 'max-width' to a number: 3.14 throws TypeError +PASS Setting 'max-width' to a number: calc(2 + 3) throws TypeError +PASS Setting 'max-width' to a transform: translate(50%, 50%) throws TypeError +PASS Setting 'max-width' to a transform: perspective(10em) throws TypeError +PASS Setting 'max-width' to a transform: translate3d(0px, 1px, 2px) translate(0px, 1px) rotate3d(1, 2, 3, 45deg) rotate(45deg) scale3d(1, 2, 3) scale(1, 2) skew(1deg, 1deg) skewX(1deg) skewY(45deg) perspective(1px) matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) matrix(1, 2, 3, 4, 5, 6) throws TypeError +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width.html index 29b3382..9f150437 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width.html +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width.html
@@ -13,11 +13,21 @@ <script> 'use strict'; +function assert_is_equal_with_clamping_percentage(input, result) { + const percent = input.to('percent').value; + + if (percent < 0) + assert_style_value_equals(result, new CSSUnitValue(0, 'percent')); + else + assert_style_value_equals(result, new CSSUnitValue(percent, 'percent')); +} + runPropertyTests('width', [ { syntax: 'auto' }, { syntax: '<percentage>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, { syntax: '<length>', @@ -28,7 +38,8 @@ runPropertyTests('min-width', [ { syntax: '<percentage>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, { syntax: '<length>', @@ -40,7 +51,8 @@ { syntax: 'none' }, { syntax: '<percentage>', - specified: assert_is_equal_with_range_handling + specified: assert_is_equal_with_range_handling, + computed: assert_is_equal_with_clamping_percentage }, { syntax: '<length>',
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width.html.ini b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width.html.ini new file mode 100644 index 0000000..c6c0b0a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width.html.ini
@@ -0,0 +1,9 @@ +[width.html] + [Can set 'width' to a percent: -3.14%] + expected: FAIL + + [Can set 'min-width' to a percent: -3.14%] + expected: FAIL + + [Can set 'max-width' to a percent: -3.14%] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness-expected.txt b/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness-expected.txt index b172560..8001b22 100644 --- a/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 404 tests; 329 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 406 tests; 329 PASS, 77 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation PASS Partial interface Window: original interface defined @@ -132,6 +132,7 @@ PASS VisualViewport interface: attribute scale PASS VisualViewport interface: attribute onresize PASS VisualViewport interface: attribute onscroll +FAIL VisualViewport interface: attribute onscrollend assert_true: The prototype object must have a property "onscrollend" expected true got false PASS VisualViewport must be primary interface of self.visualViewport PASS Stringification of self.visualViewport PASS VisualViewport interface: self.visualViewport must inherit property "offsetLeft" with the proper type @@ -143,6 +144,7 @@ PASS VisualViewport interface: self.visualViewport must inherit property "scale" with the proper type PASS VisualViewport interface: self.visualViewport must inherit property "onresize" with the proper type PASS VisualViewport interface: self.visualViewport must inherit property "onscroll" with the proper type +FAIL VisualViewport interface: self.visualViewport must inherit property "onscrollend" with the proper type assert_inherits: property "onscrollend" not found in prototype chain FAIL CSSPseudoElement interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing FAIL CSSPseudoElement interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing FAIL CSSPseudoElement interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness.html.ini b/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness.html.ini index 8f5c276..6e32774 100644 --- a/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness.html.ini
@@ -223,3 +223,9 @@ [Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError] expected: FAIL + + [VisualViewport interface: attribute onscrollend] + expected: FAIL + + [VisualViewport interface: self.visualViewport must inherit property "onscrollend" with the proper type] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-main-frame-window.html.ini b/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-main-frame-window.html.ini deleted file mode 100644 index dc6759f8..0000000 --- a/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-main-frame-window.html.ini +++ /dev/null
@@ -1,48 +0,0 @@ -[scroll-behavior-main-frame-window.html] - [Main frame with smooth scroll-behavior ; scrollBy() with default behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS] - - [Main frame with smooth scroll-behavior ; scrollBy() with smooth behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): FAIL - - [Main frame with smooth scroll-behavior ; scroll() with smooth behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS] - - [Main frame with smooth scroll-behavior ; scrollTo() with smooth behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS] - - [Main frame with smooth scroll-behavior ; scrollTo() with auto behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS] - - [Main frame with smooth scroll-behavior ; scrollTo() with default behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS] - - [Main frame with smooth scroll-behavior ; scrollBy() with auto behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS] - - [Main frame with auto scroll-behavior ; scroll() with smooth behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS] - - [Main frame with auto scroll-behavior ; scrollBy() with smooth behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS] - - [Main frame with smooth scroll-behavior ; scroll() with auto behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS] - - [Main frame with auto scroll-behavior ; scrollTo() with smooth behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS] - - [Main frame with smooth scroll-behavior ; scroll() with default behavior] - expected: - if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
diff --git a/third_party/blink/web_tests/external/wpt/css/selectors/invalidation/has-complexity.html.ini b/third_party/blink/web_tests/external/wpt/css/selectors/invalidation/has-complexity.html.ini index abe15aea..c58a580b 100644 --- a/third_party/blink/web_tests/external/wpt/css/selectors/invalidation/has-complexity.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/selectors/invalidation/has-complexity.html.ini
@@ -1,4 +1,4 @@ [has-complexity.html] expected: - if product == "chrome": OK + if product == "chrome": [OK, TIMEOUT] TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/css/selectors/only-of-type.html b/third_party/blink/web_tests/external/wpt/css/selectors/only-of-type.html new file mode 100644 index 0000000..28a0ae7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/selectors/only-of-type.html
@@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Selectors :only-of-type</title> +<link rel="help" href="https://drafts.csswg.org/selectors-4/#the-only-of-type-pseudo"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<!-- + See also child-indexed-pseudo-class.html. +--> +<body> + +<div> + <div id="target1">Whitespace nodes should be ignored.</div> +</div> + +<div> + <div id="target2">A comment node should be ignored.</div> + <!-- --> +</div> + +<div> + <div id="target3">Non-whitespace text node should be ignored.</div> + . +</div> + +<div> + <blockquote></blockquote> + <div id="target4" data-expected="false">There is another child element of a different type.</div> +</div> + +<div> + <div id="target5"></div> +</div> + +<script> +for (let i = 1; i <= 4; ++i) { + let target = document.querySelector(`#target${i}`); + test(() => { + if (target.dataset.expected == 'true') + assert_false(target.matches(':only-of-type')); + else + assert_true(target.matches(':only-of-type')); + }, target.textContent); +} + +test(() => { + const target = document.querySelector('#target5'); + assert_true(target.matches(':only-of-type')); + + const of_different_type = target.parentNode.appendChild(document.createElement('span')); + assert_true(of_different_type.matches(':only-of-type')); + assert_true(target.matches(':only-of-type')); + + const another_of_type = target.parentNode.appendChild(document.createElement('div')); + assert_false(target.matches(':only-of-type')); + assert_false(another_of_type.matches(':only-of-type')); + + another_of_type.remove(); + assert_true(target.matches(':only-of-type')); +}, 'Dynamic addition and removal'); + +</script>
diff --git a/third_party/blink/web_tests/external/wpt/custom-elements/form-associated/ElementInternals-target-element-is-held-strongly.html.ini b/third_party/blink/web_tests/external/wpt/custom-elements/form-associated/ElementInternals-target-element-is-held-strongly.html.ini deleted file mode 100644 index fdce5ad..0000000 --- a/third_party/blink/web_tests/external/wpt/custom-elements/form-associated/ElementInternals-target-element-is-held-strongly.html.ini +++ /dev/null
@@ -1,4 +0,0 @@ -[ElementInternals-target-element-is-held-strongly.html] - expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT] - if (flag_specific == "") and (os == "win"): TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/dom/events/EventListener-incumbent-global-2.sub.html.ini b/third_party/blink/web_tests/external/wpt/dom/events/EventListener-incumbent-global-2.sub.html.ini index f7633f97..fe841b99 100644 --- a/third_party/blink/web_tests/external/wpt/dom/events/EventListener-incumbent-global-2.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/dom/events/EventListener-incumbent-global-2.sub.html.ini
@@ -1,4 +1,5 @@ [EventListener-incumbent-global-2.sub.html] expected: - if (flag_specific == "") and (product == "content_shell"): TIMEOUT - if flag_specific == "disable-layout-ng": [TIMEOUT, CRASH] + if (flag_specific == "") and (product == "chrome"): OK + if flag_specific == "disable-site-isolation-trials": OK + TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-deleteData.html.ini b/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-deleteData.html.ini deleted file mode 100644 index 8a4d2fe..0000000 --- a/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-deleteData.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[Range-mutations-deleteData.html] - expected: - if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/formatblock.html.ini b/third_party/blink/web_tests/external/wpt/editing/run/formatblock.html.ini index cf2a6f46..8247fe6b 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/formatblock.html.ini +++ b/third_party/blink/web_tests/external/wpt/editing/run/formatblock.html.ini
@@ -97,8 +97,6 @@ [formatblock.html?1001-2000] - expected: - if os == "win": [OK, CRASH] [[["defaultparagraphseparator","p"\],["formatblock","<div>"\]\] "<del>[foobar\]</del>" queryCommandValue("formatblock") after] expected: FAIL @@ -687,6 +685,8 @@ [formatblock.html?3001-4000] + expected: + if os == "win": [OK, CRASH] [[["defaultparagraphseparator","div"\],["formatblock","<h5>"\]\] "<p>[foobar\]</p>" queryCommandValue("formatblock") after] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/removeformat.html.ini b/third_party/blink/web_tests/external/wpt/editing/run/removeformat.html.ini index e938d3a..3515b06 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/removeformat.html.ini +++ b/third_party/blink/web_tests/external/wpt/editing/run/removeformat.html.ini
@@ -1,4 +1,6 @@ [removeformat.html] + expected: + if flag_specific == "disable-site-isolation-trials": [OK, CRASH] [[["removeformat",""\]\] "foo[\]bar": execCommand("removeformat", false, "") return value] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/element-timing/image-src-change.html.ini b/third_party/blink/web_tests/external/wpt/element-timing/image-src-change.html.ini index 23803ef..f090197 100644 --- a/third_party/blink/web_tests/external/wpt/element-timing/image-src-change.html.ini +++ b/third_party/blink/web_tests/external/wpt/element-timing/image-src-change.html.ini
@@ -1,6 +1,3 @@ [image-src-change.html] expected: - if product == "chrome": [OK, TIMEOUT] - [Element Timing: changing src causes a new entry to be dispatched.] - expected: - if product == "chrome": [PASS, TIMEOUT] + if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/encoding-detection/uk-KOI8-U-late.tentative.html.ini b/third_party/blink/web_tests/external/wpt/encoding-detection/uk-KOI8-U-late.tentative.html.ini index e4495a31..f5bc063 100644 --- a/third_party/blink/web_tests/external/wpt/encoding-detection/uk-KOI8-U-late.tentative.html.ini +++ b/third_party/blink/web_tests/external/wpt/encoding-detection/uk-KOI8-U-late.tentative.html.ini
@@ -1,3 +1,5 @@ [uk-KOI8-U-late.tentative.html] + expected: + if product == "chrome": [OK, ERROR] [Check detection result] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/encoding-detection/vi-windows-1258-late.tentative.html.ini b/third_party/blink/web_tests/external/wpt/encoding-detection/vi-windows-1258-late.tentative.html.ini index 78be944..317a3ccf 100644 --- a/third_party/blink/web_tests/external/wpt/encoding-detection/vi-windows-1258-late.tentative.html.ini +++ b/third_party/blink/web_tests/external/wpt/encoding-detection/vi-windows-1258-late.tentative.html.ini
@@ -1,4 +1,5 @@ [vi-windows-1258-late.tentative.html] - expected: [OK, ERROR] + expected: + if product == "chrome": ERROR [Check detection result] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html.ini b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html.ini deleted file mode 100644 index 6f52998..0000000 --- a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html.ini +++ /dev/null
@@ -1,17 +0,0 @@ -[iso2022jp-decode.html?1001-2000] - -[iso2022jp-decode.html?6001-7000] - -[iso2022jp-decode.html?4001-5000] - -[iso2022jp-decode.html?1-1000] - expected: - if os == "win": [OK, CRASH] - -[iso2022jp-decode.html?2001-3000] - -[iso2022jp-decode.html?7001-last] - -[iso2022jp-decode.html?5001-6000] - -[iso2022jp-decode.html?3001-4000]
diff --git a/third_party/blink/web_tests/external/wpt/encoding/unsupported-labels.window.js.ini b/third_party/blink/web_tests/external/wpt/encoding/unsupported-labels.window.js.ini index 450e960b..c967c0a2 100644 --- a/third_party/blink/web_tests/external/wpt/encoding/unsupported-labels.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/encoding/unsupported-labels.window.js.ini
@@ -124,3 +124,6 @@ [x-iscii-or is not supported by the Encoding Standard] expected: [PASS, TIMEOUT] + + [x-ia5-german is not supported by the Encoding Standard] + expected: [PASS, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any-expected.txt b/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any-expected.txt index 4fe4540..6e6763dd 100644 --- a/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any-expected.txt +++ b/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any-expected.txt
@@ -28,18 +28,9 @@ PASS EventCounts interface: maplike<DOMString, unsigned long long> PASS EventCounts must be primary interface of performance.eventCounts PASS Stringification of performance.eventCounts -FAIL InteractionCounts interface: existence and properties of interface object assert_own_property: self does not have own property "InteractionCounts" expected property "InteractionCounts" missing -FAIL InteractionCounts interface object length assert_own_property: self does not have own property "InteractionCounts" expected property "InteractionCounts" missing -FAIL InteractionCounts interface object name assert_own_property: self does not have own property "InteractionCounts" expected property "InteractionCounts" missing -FAIL InteractionCounts interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InteractionCounts" expected property "InteractionCounts" missing -FAIL InteractionCounts interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InteractionCounts" expected property "InteractionCounts" missing -FAIL InteractionCounts interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InteractionCounts" expected property "InteractionCounts" missing -FAIL InteractionCounts interface: maplike<DOMString, unsigned long long> Cannot read properties of undefined (reading 'prototype') -FAIL InteractionCounts must be primary interface of performance.interactionCounts assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL Stringification of performance.interactionCounts assert_equals: wrong typeof object expected "object" but got "undefined" PASS Performance interface: attribute eventCounts -FAIL Performance interface: attribute interactionCounts assert_true: The prototype object must have a property "interactionCounts" expected true got false +FAIL Performance interface: attribute interactionCount assert_true: The prototype object must have a property "interactionCount" expected true got false PASS Performance interface: performance must inherit property "eventCounts" with the proper type -FAIL Performance interface: performance must inherit property "interactionCounts" with the proper type assert_inherits: property "interactionCounts" not found in prototype chain +FAIL Performance interface: performance must inherit property "interactionCount" with the proper type assert_inherits: property "interactionCount" not found in prototype chain Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.js.ini b/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.js.ini index 59677c6..10efdbe 100644 --- a/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.js.ini
@@ -8,15 +8,6 @@ [EventCounts interface: performance.eventCounts must not have property "undefined"] expected: FAIL - [InteractionCounts must be primary interface of performance.interactionCounts] - expected: FAIL - - [Stringification of performance.interactionCounts] - expected: FAIL - - [InteractionCounts interface: performance.interactionCounts must not have property "undefined"] - expected: FAIL - [idlharness.any.worker.html] [EventCounts must be primary interface of performance.eventCounts] @@ -28,48 +19,12 @@ [EventCounts interface: performance.eventCounts must not have property "undefined"] expected: FAIL - [InteractionCounts must be primary interface of performance.interactionCounts] - expected: FAIL - - [Stringification of performance.interactionCounts] - expected: FAIL - - [InteractionCounts interface: performance.interactionCounts must not have property "undefined"] - expected: FAIL - [idlharness.any.html] - [InteractionCounts interface: existence and properties of interface object] + [Performance interface: performance must inherit property "interactionCount" with the proper type] expected: FAIL - [InteractionCounts interface object length] - expected: FAIL - - [InteractionCounts interface object name] - expected: FAIL - - [InteractionCounts interface: existence and properties of interface prototype object] - expected: FAIL - - [InteractionCounts interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [InteractionCounts interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - - [InteractionCounts interface: maplike<DOMString, unsigned long long>] - expected: FAIL - - [InteractionCounts must be primary interface of performance.interactionCounts] - expected: FAIL - - [Stringification of performance.interactionCounts] - expected: FAIL - - [Performance interface: attribute interactionCounts] - expected: FAIL - - [Performance interface: performance must inherit property "interactionCounts" with the proper type] + [Performance interface: attribute interactionCount] expected: FAIL @@ -82,12 +37,3 @@ [EventCounts interface: performance.eventCounts must not have property "undefined"] expected: FAIL - - [InteractionCounts must be primary interface of performance.interactionCounts] - expected: FAIL - - [Stringification of performance.interactionCounts] - expected: FAIL - - [InteractionCounts interface: performance.interactionCounts must not have property "undefined"] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.serviceworker-expected.txt index a4f87f4c..f0d0c35b 100644 --- a/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.serviceworker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.serviceworker-expected.txt
@@ -12,13 +12,9 @@ FAIL EventCounts must be primary interface of performance.eventCounts assert_equals: wrong typeof object expected "object" but got "undefined" FAIL Stringification of performance.eventCounts assert_equals: wrong typeof object expected "object" but got "undefined" FAIL EventCounts interface: performance.eventCounts must not have property "undefined" Cannot use 'in' operator to search for 'undefined' in undefined -PASS InteractionCounts interface: existence and properties of interface object -FAIL InteractionCounts must be primary interface of performance.interactionCounts assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL Stringification of performance.interactionCounts assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL InteractionCounts interface: performance.interactionCounts must not have property "undefined" Cannot use 'in' operator to search for 'undefined' in undefined PASS Performance interface: member eventCounts -PASS Performance interface: member interactionCounts +PASS Performance interface: member interactionCount PASS Performance interface: performance must not have property "eventCounts" -PASS Performance interface: performance must not have property "interactionCounts" +PASS Performance interface: performance must not have property "interactionCount" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.sharedworker-expected.txt index a4f87f4c..f0d0c35b 100644 --- a/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.sharedworker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.sharedworker-expected.txt
@@ -12,13 +12,9 @@ FAIL EventCounts must be primary interface of performance.eventCounts assert_equals: wrong typeof object expected "object" but got "undefined" FAIL Stringification of performance.eventCounts assert_equals: wrong typeof object expected "object" but got "undefined" FAIL EventCounts interface: performance.eventCounts must not have property "undefined" Cannot use 'in' operator to search for 'undefined' in undefined -PASS InteractionCounts interface: existence and properties of interface object -FAIL InteractionCounts must be primary interface of performance.interactionCounts assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL Stringification of performance.interactionCounts assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL InteractionCounts interface: performance.interactionCounts must not have property "undefined" Cannot use 'in' operator to search for 'undefined' in undefined PASS Performance interface: member eventCounts -PASS Performance interface: member interactionCounts +PASS Performance interface: member interactionCount PASS Performance interface: performance must not have property "eventCounts" -PASS Performance interface: performance must not have property "interactionCounts" +PASS Performance interface: performance must not have property "interactionCount" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.worker-expected.txt index a4f87f4c..f0d0c35b 100644 --- a/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/event-timing/idlharness.any.worker-expected.txt
@@ -12,13 +12,9 @@ FAIL EventCounts must be primary interface of performance.eventCounts assert_equals: wrong typeof object expected "object" but got "undefined" FAIL Stringification of performance.eventCounts assert_equals: wrong typeof object expected "object" but got "undefined" FAIL EventCounts interface: performance.eventCounts must not have property "undefined" Cannot use 'in' operator to search for 'undefined' in undefined -PASS InteractionCounts interface: existence and properties of interface object -FAIL InteractionCounts must be primary interface of performance.interactionCounts assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL Stringification of performance.interactionCounts assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL InteractionCounts interface: performance.interactionCounts must not have property "undefined" Cannot use 'in' operator to search for 'undefined' in undefined PASS Performance interface: member eventCounts -PASS Performance interface: member interactionCounts +PASS Performance interface: member interactionCount PASS Performance interface: performance must not have property "eventCounts" -PASS Performance interface: performance must not have property "interactionCounts" +PASS Performance interface: performance must not have property "interactionCount" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/cors/cors-cookies.any.js.ini b/third_party/blink/web_tests/external/wpt/fetch/api/cors/cors-cookies.any.js.ini index 25463cf..319b1b75 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/api/cors/cors-cookies.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/fetch/api/cors/cors-cookies.any.js.ini
@@ -1,6 +1,8 @@ [cors-cookies.any.html] + [Include mode: remote cookies are not sent with local request] + expected: + if product == "chrome": [PASS, FAIL] -[cors-cookies.any.worker.html] [Include mode: 1 cookie] expected: if product == "chrome": [PASS, FAIL] @@ -9,6 +11,5 @@ expected: if product == "chrome": [PASS, FAIL] - [Include mode: remote cookies are not sent with local request] - expected: - if product == "chrome": [PASS, FAIL] + +[cors-cookies.any.worker.html]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-iframe.sub.html.ini b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-frame.sub.html.ini similarity index 64% rename from third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-iframe.sub.html.ini rename to third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-frame.sub.html.ini index 96b1dbd1f..fc10a518 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-iframe.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-frame.sub.html.ini
@@ -1,3 +1,3 @@ -[element-iframe.sub.html] +[element-frame.sub.html] expected: if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html.ini b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html.ini index 9874a8c..d25631d 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html.ini
@@ -1,3 +1,3 @@ [element-meta-refresh.https.optional.sub.html] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT] + if flag_specific == "disable-layout-ng": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.optional.sub.html.ini b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.optional.sub.html.ini index a749978..b31f66ee 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.optional.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.optional.sub.html.ini
@@ -1,3 +1,3 @@ [element-meta-refresh.optional.sub.html] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT] + if flag_specific == "disable-layout-ng": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/window-history.https.sub.html.ini b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/window-history.https.sub.html.ini new file mode 100644 index 0000000..b15ba753 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/window-history.https.sub.html.ini
@@ -0,0 +1,3 @@ +[window-history.https.sub.html] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/origin/assorted.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/origin/assorted.window.js.ini index 550507e..40e6698b 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/origin/assorted.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/fetch/origin/assorted.window.js.ini
@@ -1,6 +1,6 @@ [assorted.window.html] expected: - if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT] + if flag_specific == "disable-layout-ng": [OK, TIMEOUT] [Origin header and POST same-origin fetch no-cors mode with Referrer-Policy no-referrer] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/iframe.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/iframe.tentative.https.window.js.ini index abc126ce..9132c01 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/iframe.tentative.https.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/iframe.tentative.https.window.js.ini
@@ -1,4 +1,6 @@ [iframe.tentative.https.window.html] + expected: + if flag_specific == "disable-layout-ng": [OK, TIMEOUT] [private to local: success.] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-background-fetch.https.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-background-fetch.https.window.js.ini index ff15806..1efc63a 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-background-fetch.https.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-background-fetch.https.window.js.ini
@@ -1,15 +1,16 @@ [service-worker-background-fetch.https.window.html] [local to local: success.] expected: + if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [PASS, FAIL] if product == "chrome": FAIL [private to local: success.] expected: - if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [PASS, FAIL] - if product == "chrome": FAIL + if (flag_specific == "") and (product == "chrome"): FAIL [private to private: success.] expected: + if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [PASS, FAIL] if product == "chrome": FAIL [public to local: success.]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-fetch.https.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-fetch.https.window.js.ini index 8ad3d983..eaa7acf65 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-fetch.https.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-fetch.https.window.js.ini
@@ -1,3 +1,3 @@ [service-worker-fetch.https.window.html] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html.ini b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html.ini index 4f0bb0c..cd78228 100644 --- a/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html.ini +++ b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html.ini
@@ -1,2 +1,4 @@ [focus-already-focused-iframe-same-site.html] - expected: TIMEOUT + expected: + if flag_specific == "disable-site-isolation-trials": [TIMEOUT, CRASH] + TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/focus/iframe-focus-with-different-site-intermediate-frame.html.ini b/third_party/blink/web_tests/external/wpt/focus/iframe-focus-with-different-site-intermediate-frame.html.ini index a4e9ffe..5019503 100644 --- a/third_party/blink/web_tests/external/wpt/focus/iframe-focus-with-different-site-intermediate-frame.html.ini +++ b/third_party/blink/web_tests/external/wpt/focus/iframe-focus-with-different-site-intermediate-frame.html.ini
@@ -1,3 +1,5 @@ [iframe-focus-with-different-site-intermediate-frame.html] + expected: + if flag_specific == "disable-site-isolation-trials": [OK, CRASH] [Check result] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fs/FileSystemFileHandle-create-sync-access-handle.https.tentative.window.js.ini b/third_party/blink/web_tests/external/wpt/fs/FileSystemFileHandle-create-sync-access-handle.https.tentative.window.js.ini index 2d96c8ea..c3348a5c 100644 --- a/third_party/blink/web_tests/external/wpt/fs/FileSystemFileHandle-create-sync-access-handle.https.tentative.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/fs/FileSystemFileHandle-create-sync-access-handle.https.tentative.window.js.ini
@@ -1,4 +1,4 @@ [FileSystemFileHandle-create-sync-access-handle.https.tentative.window.html] [Attempt to create a sync access handle.] expected: - if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [PASS, FAIL] + if os == "win": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/gamepad/idlharness-extensions.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/gamepad/idlharness-extensions.https.window-expected.txt index 2add0e7..8bf0422 100644 --- a/third_party/blink/web_tests/external/wpt/gamepad/idlharness-extensions.https.window-expected.txt +++ b/third_party/blink/web_tests/external/wpt/gamepad/idlharness-extensions.https.window-expected.txt
@@ -10,7 +10,10 @@ PASS GamepadHapticActuator interface: existence and properties of interface prototype object's "constructor" property PASS GamepadHapticActuator interface: existence and properties of interface prototype object's @@unscopables property PASS GamepadHapticActuator interface: attribute type +FAIL GamepadHapticActuator interface: operation canPlayEffectType(GamepadHapticEffectType) assert_own_property: interface prototype object missing non-static operation expected property "canPlayEffectType" missing +FAIL GamepadHapticActuator interface: operation playEffect(GamepadHapticEffectType, optional GamepadEffectParameters) assert_equals: property has wrong .length expected 1 but got 2 FAIL GamepadHapticActuator interface: operation pulse(double, double) assert_own_property: interface prototype object missing non-static operation expected property "pulse" missing +PASS GamepadHapticActuator interface: operation reset() FAIL GamepadPose interface: existence and properties of interface object assert_own_property: self does not have own property "GamepadPose" expected property "GamepadPose" missing FAIL GamepadPose interface object length assert_own_property: self does not have own property "GamepadPose" expected property "GamepadPose" missing FAIL GamepadPose interface object name assert_own_property: self does not have own property "GamepadPose" expected property "GamepadPose" missing @@ -39,5 +42,6 @@ FAIL Gamepad interface: attribute hapticActuators assert_true: The prototype object must have a property "hapticActuators" expected true got false FAIL Gamepad interface: attribute pose assert_true: The prototype object must have a property "pose" expected true got false FAIL Gamepad interface: attribute touchEvents assert_true: The prototype object must have a property "touchEvents" expected true got false +PASS Gamepad interface: attribute vibrationActuator Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/gamepad/idlharness-extensions.https.window.js.ini b/third_party/blink/web_tests/external/wpt/gamepad/idlharness-extensions.https.window.js.ini index 1d70350c..c9dd14c3 100644 --- a/third_party/blink/web_tests/external/wpt/gamepad/idlharness-extensions.https.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/gamepad/idlharness-extensions.https.window.js.ini
@@ -85,3 +85,9 @@ [Gamepad interface: attribute touchEvents] expected: FAIL + + [GamepadHapticActuator interface: operation canPlayEffectType(GamepadHapticEffectType)] + expected: FAIL + + [GamepadHapticActuator interface: operation playEffect(GamepadHapticEffectType, optional GamepadEffectParameters)] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/hr-time/clamped-time-origin.html.ini b/third_party/blink/web_tests/external/wpt/hr-time/clamped-time-origin.html.ini index ab66181..9ce3794 100644 --- a/third_party/blink/web_tests/external/wpt/hr-time/clamped-time-origin.html.ini +++ b/third_party/blink/web_tests/external/wpt/hr-time/clamped-time-origin.html.ini
@@ -1,3 +1,3 @@ [clamped-time-origin.html] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT] + if (product == "content_shell") and (flag_specific == "disable-layout-ng"): [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/anonymous-iframe-popup.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/anonymous-iframe-popup.tentative.https.window.js.ini new file mode 100644 index 0000000..e222dfd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/anonymous-iframe-popup.tentative.https.window.js.ini
@@ -0,0 +1,3 @@ +[anonymous-iframe-popup.tentative.https.window.html] + expected: + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/embedding.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/embedding.tentative.https.window.js.ini index 21e5d4fae..9bd26c2 100644 --- a/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/embedding.tentative.https.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/embedding.tentative.https.window.js.ini
@@ -3,10 +3,8 @@ if product == "chrome": [OK, ERROR] [embedding.tentative.https.window.html?13-last] - [Cross-Origin-Isolated parent embeds cross-origin COEP credentialless iframe] - expected: - if os == "win": [PASS, FAIL] - + expected: + if product == "chrome": [OK, ERROR] [embedding.tentative.https.window.html?3-4] expected: @@ -25,13 +23,15 @@ [embedding.tentative.https.window.html?5-5] [embedding.tentative.https.window.html?1-1] - -[embedding.tentative.https.window.html?6-6] - -[embedding.tentative.https.window.html?7-7] expected: if product == "chrome": [OK, ERROR] +[embedding.tentative.https.window.html?6-6] + expected: + if product == "chrome": ERROR + +[embedding.tentative.https.window.html?7-7] + [embedding.tentative.https.window.html?10-10] [embedding.tentative.https.window.html?2-2] @@ -39,13 +39,11 @@ [embedding.tentative.https.window.html?12-12] [embedding.tentative.https.window.html?4-4] - expected: - if product == "chrome": [OK, ERROR] [embedding.tentative.https.window.html?8-8] - expected: - if product == "chrome": [ERROR, OK] [embedding.tentative.https.window.html?3-3] + expected: + if product == "chrome": [OK, ERROR] [embedding.tentative.https.window.html?9-9]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/back-forward-cache/service-worker-controlled-after-restore.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/back-forward-cache/service-worker-controlled-after-restore.https.html.ini index 33ae6cd3..947eebb7 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/back-forward-cache/service-worker-controlled-after-restore.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/back-forward-cache/service-worker-controlled-after-restore.https.html.ini
@@ -1,5 +1,6 @@ [service-worker-controlled-after-restore.https.html] + expected: + if flag_specific == "disable-site-isolation-trials": [OK, CRASH] [Pages should remain controlled after restored from BFCache] expected: - if (product == "content_shell") and (os == "win"): [PASS, FAIL] - if product == "chrome": PRECONDITION_FAILED + if (os == "linux") and (product == "chrome"): PRECONDITION_FAILED
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html.ini new file mode 100644 index 0000000..951dcfce2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html.ini
@@ -0,0 +1,4 @@ +[before-load-hash.html] + [when changing hash, before load] + expected: + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-cross-document-traversal.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-cross-document-traversal.html.ini index 71dab1d..2ff88db 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-cross-document-traversal.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-cross-document-traversal.html.ini
@@ -1,6 +1,6 @@ [same-document-traversal-cross-document-traversal.html] expected: - if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [OK, TIMEOUT] + if flag_specific == "disable-site-isolation-trials": TIMEOUT [traversals in the same (back) direction: queued up] expected: [PASS, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_pushstate_url_rewriting.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_pushstate_url_rewriting.html.ini index 0eb3574..d28878e3 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_pushstate_url_rewriting.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_pushstate_url_rewriting.html.ini
@@ -1,4 +1,6 @@ [history_pushstate_url_rewriting.html] + expected: + if flag_specific == "disable-layout-ng": [OK, TIMEOUT] [blob:(a blob URL for this origin) to blob:(a blob URL for this origin)?newsearch should not work] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini new file mode 100644 index 0000000..9f1fd20a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
@@ -0,0 +1,4 @@ +[traverse_the_history_2.html] + [Multiple history traversals, last would be aborted] + expected: + if os == "win": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini index 218b1cc..74dcce932 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
@@ -1,10 +1,9 @@ [location-protocol-setter-non-broken.html] [Set HTTP URL frame location.protocol to data] - expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): PASS - FAIL + expected: FAIL [Set data URL frame location.protocol to data] expected: - if (flag_specific == "") and (product == "content_shell"): PASS + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): PASS + if flag_specific == "disable-layout-ng": PASS FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html.ini index 6502952..fa4bd46 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html.ini
@@ -1,7 +1,6 @@ [cross-origin-objects.html] expected: - if (flag_specific == "") and (product == "content_shell") and (os == "linux"): [OK, CRASH] - if (flag_specific == "") and (product == "chrome"): [OK, TIMEOUT] + if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT] [Only certain properties are accessible cross-origin (cross-origin)] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-subdomain.sub.https.html.ini index 1524e6e2..9759a28 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-subdomain.sub.https.html.ini
@@ -1,8 +1,11 @@ [parent-yes-child-no-subdomain.sub.https.html] [setting document.domain must not give sync access] expected: - if product == "chrome": FAIL + if (flag_specific == "") and (product == "chrome"): FAIL + if flag_specific == "disable-site-isolation-trials": FAIL [parent: originAgentCluster must equal true] expected: - if product == "chrome": FAIL + if (flag_specific == "") and (product == "chrome"): FAIL + if flag_specific == "disable-layout-ng": FAIL + if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-port.sub.https.html.ini index 1fe7649..5f428d85c 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-port.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-port.sub.https.html.ini
@@ -1,4 +1,5 @@ [parent-yes-child-yes-port.sub.https.html] [parent: originAgentCluster must equal true] expected: + if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-same.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-same.sub.https.html.ini index e3a89c0f..2b7fa4f 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-same.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-same.sub.https.html.ini
@@ -1,8 +1,10 @@ [parent-yes-child-yes-same.sub.https.html] [parent: originAgentCluster must equal true] expected: + if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [child: originAgentCluster must equal true] expected: + if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-subdomain.sub.https.html.ini index 428253f..c5b33c3 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-subdomain.sub.https.html.ini
@@ -1,5 +1,4 @@ [parent-yes-child-yes-subdomain.sub.https.html] [parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-port.sub.https.html.ini index e5fb8dea..ef214e6 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-port.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-port.sub.https.html.ini
@@ -1,17 +1,18 @@ [parent-no-child1-yes-subdomain-child2-no-port.sub.https.html] [child1: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "content_shell"): FAIL - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if (flag_specific == "") and (product == "chrome"): PASS + if flag_specific == "disable-layout-ng": PASS + FAIL [Parent to child1: setting document.domain must not give sync access] expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if flag_specific == "disable-site-isolation-trials": FAIL [child1 to child2: setting document.domain must not give sync access] expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if flag_specific == "disable-site-isolation-trials": FAIL [child2 to child1: setting document.domain must not give sync access] expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini new file mode 100644 index 0000000..2a0462e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini
@@ -0,0 +1,16 @@ +[parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html] + [Parent to child1: setting document.domain must not give sync access] + expected: + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + + [Parent to child2: setting document.domain must not give sync access] + expected: + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + + [child1: originAgentCluster must equal true] + expected: + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + + [child2: originAgentCluster must equal true] + expected: + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.ini index 1d37b55..58f748d 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.ini
@@ -1,23 +1,15 @@ [parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html] [Parent to child1: setting document.domain must not give sync access] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if product == "chrome": FAIL [Parent to child2: setting document.domain must not give sync access] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if product == "chrome": FAIL [parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL - - [child2: originAgentCluster must equal false] - expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL] - - [child1: originAgentCluster must equal false] - expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.ini index 5671887b..e5bf5d7d 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.ini
@@ -11,17 +11,14 @@ if flag_specific == "disable-site-isolation-trials": PASS FAIL - [parent: originAgentCluster must equal true] + [Parent to child2: setting document.domain must not give sync access] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if product == "chrome": FAIL [Parent to child1: setting document.domain must not give sync access] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if product == "chrome": FAIL - [Parent to child2: setting document.domain must not give sync access] + [parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini index 55c95079..870d618 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini
@@ -1,12 +1,15 @@ [parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html] [Parent to child1: setting document.domain must not give sync access] expected: - if product == "chrome": FAIL + if (flag_specific == "") and (product == "chrome"): FAIL + if flag_specific == "disable-site-isolation-trials": FAIL [Parent to child2: setting document.domain must not give sync access] expected: - if product == "chrome": FAIL + if (flag_specific == "") and (product == "chrome"): FAIL + if flag_specific == "disable-site-isolation-trials": FAIL [parent: originAgentCluster must equal true] expected: - if product == "chrome": FAIL + if (flag_specific == "") and (product == "chrome"): FAIL + if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.ini deleted file mode 100644 index 9bcd0656..0000000 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.ini +++ /dev/null
@@ -1,24 +0,0 @@ -[parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html] - [Parent to child1: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] - - [Parent to child2: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] - - [child1 to child2: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] - - [child2 to child1: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] - - [parent: originAgentCluster must equal true] - expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] - - [child2: originAgentCluster must equal true] - expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini index ce25982..55806ef 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini
@@ -6,3 +6,7 @@ [parent: originAgentCluster must equal true] expected: if product == "chrome": FAIL + + [child1: originAgentCluster must equal false] + expected: + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.ini index d9ff6bd..106475c 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.ini
@@ -1,26 +1,20 @@ [parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html] [Parent to child2: setting document.domain must not give sync access] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if product == "chrome": FAIL [parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL - - [Parent to child1: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL + if product == "chrome": FAIL [child1: originAgentCluster must equal true] expected: - if flag_specific == "disable-site-isolation-trials": FAIL - - [child2 to child1: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] [child1 to child2: setting document.domain must not give sync access] expected: - if flag_specific == "disable-site-isolation-trials": FAIL + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + + [child2 to child1: setting document.domain must not give sync access] + expected: + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini index 71b884a3..5bd8678 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini
@@ -1,23 +1,13 @@ [parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html] [parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if (product == "content_shell") and (flag_specific == "") and (os == "linux"): FAIL + if product == "chrome": FAIL [child1: originAgentCluster must equal true] expected: - if (flag_specific == "") and (os == "win"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if os == "win": FAIL [child2: originAgentCluster must equal true] expected: - if (flag_specific == "") and (os == "win"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL - - [Parent to child2: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL - - [Parent to child1: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL + if os == "win": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.ini index 8651d29..3be8b66 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.ini
@@ -1,8 +1,7 @@ [parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html] [parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if product == "chrome": FAIL [child1: originAgentCluster must equal true] expected: @@ -11,11 +10,3 @@ [child2: originAgentCluster must equal true] expected: if flag_specific == "disable-site-isolation-trials": FAIL - - [Parent to child2: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL - - [Parent to child1: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain2.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain2.sub.https.html.ini deleted file mode 100644 index 785b82bc..0000000 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain2.sub.https.html.ini +++ /dev/null
@@ -1,28 +0,0 @@ -[parent-yes-child1-yes-subdomain-child2-yes-subdomain2.sub.https.html] - [child1 to child2: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL - - [child2 to child1: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL - - [child1: originAgentCluster must equal true] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL - - [child2: originAgentCluster must equal true] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL - - [Parent to child2: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL - - [Parent to child1: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL - - [parent: originAgentCluster must equal true] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.ini index 55092ef7..e3b0508 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.ini
@@ -1,9 +1,7 @@ [parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html] - expected: - if flag_specific == "disable-site-isolation-trials": [OK, CRASH] [parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "chrome"): FAIL + if product == "chrome": FAIL [child1: originAgentCluster must equal true] expected:
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/document-domain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/document-domain.sub.https.html.ini index d4bd404..acfa7b8 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/document-domain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/document-domain.sub.https.html.ini
@@ -1,4 +1,11 @@ [document-domain.sub.https.html] [Setting document.domain must not change same-originness] expected: - if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (flag_specific == "") and (os == "linux") and (product == "chrome"): FAIL + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + + [Having an origin-keyed subdomain child try to set document.domain must not change the document.domain value it sees] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-dataChange.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/javascript-url-yes.https.html.ini similarity index 69% copy from third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-dataChange.html.ini copy to third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/javascript-url-yes.https.html.ini index c1f1d46..189de04 100644 --- a/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-dataChange.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/javascript-url-yes.https.html.ini
@@ -1,3 +1,3 @@ -[Range-mutations-dataChange.html] +[javascript-url-yes.https.html] expected: if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-no.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-no.https.html.ini index 27d7b90..e890d00d 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-no.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-no.https.html.ini
@@ -1,5 +1,6 @@ [sandboxed-same-origin-iframe-no.https.html] [originAgentCluster must equal false] expected: - if (flag_specific == "") and (product == "content_shell"): FAIL - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if (flag_specific == "") and (product == "chrome"): PASS + if flag_specific == "disable-site-isolation-trials": PASS + FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-yes.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-yes.https.html.ini index 805a17e1..14cb1e6c 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-yes.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-yes.https.html.ini
@@ -1,5 +1,4 @@ [sandboxed-same-origin-iframe-yes.https.html] [originAgentCluster must equal true] expected: - if (flag_specific == "") and (os == "linux") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/going-back.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/going-back.sub.https.html.ini index b8b3d6a..9f1f582 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/going-back.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/going-back.sub.https.html.ini
@@ -1,20 +1,16 @@ [going-back.sub.https.html] [Before navigation: parent to child1: setting document.domain must not give sync access] expected: - if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [After navigation: parent to child2: setting document.domain must not give sync access] expected: - if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [After back: parent to child1: setting document.domain must not give sync access] expected: - if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [After back: parent to child2: setting document.domain must not give sync access] expected: - if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-port.sub.https.html.ini index ec2a502..fbb118d 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-port.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-port.sub.https.html.ini
@@ -1,12 +1,12 @@ [parent-no-1-no-same-2-yes-port.sub.https.html] [before parent: originAgentCluster must equal false] expected: - if os == "win": [PASS, FAIL] + if (flag_specific == "") and (product == "content_shell"): [PASS, FAIL] [before child: originAgentCluster must equal false] expected: - if os == "win": [PASS, FAIL] + if (flag_specific == "") and (product == "content_shell"): [PASS, FAIL] [after parent: originAgentCluster must equal false] expected: - if os == "win": [PASS, FAIL] + if (flag_specific == "") and (product == "content_shell"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-subdomain.sub.https.html.ini index 29d71606..d2d5d09 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-subdomain.sub.https.html.ini
@@ -1,18 +1,15 @@ [parent-no-1-no-same-2-yes-subdomain.sub.https.html] [before parent: originAgentCluster must equal false] expected: - if (flag_specific == "") and (os == "linux") and (product == "chrome"): PASS - if flag_specific == "disable-site-isolation-trials": PASS - FAIL + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] [before child: originAgentCluster must equal false] expected: - if (flag_specific == "") and (os == "linux") and (product == "chrome"): PASS - if flag_specific == "disable-site-isolation-trials": PASS - FAIL + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] [after parent: originAgentCluster must equal false] expected: - if (flag_specific == "") and (os == "linux") and (product == "chrome"): PASS - if flag_specific == "disable-site-isolation-trials": PASS - FAIL + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html.ini index 076b56d..5ca14ad 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html.ini
@@ -1,30 +1,30 @@ [parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html] [Before: parent to child: setting document.domain must give sync access] expected: - if (flag_specific == "") and (product == "chrome"): PASS - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if product == "chrome": PASS FAIL [After: parent to child: setting document.domain must give sync access] expected: - if (flag_specific == "") and (product == "chrome"): PASS - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if product == "chrome": PASS FAIL [before parent: originAgentCluster must equal false] expected: - if (flag_specific == "") and (product == "content_shell"): FAIL - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] + if flag_specific == "disable-site-isolation-trials": FAIL + if flag_specific == "disable-layout-ng": FAIL [after parent: originAgentCluster must equal false] expected: - if (flag_specific == "") and (product == "content_shell"): FAIL - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] + if flag_specific == "disable-layout-ng": FAIL + if flag_specific == "disable-site-isolation-trials": FAIL [before child: originAgentCluster must equal false] expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if flag_specific == "disable-site-isolation-trials": FAIL [after child: originAgentCluster must equal false] expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html.ini index 0f6e6c5..10a484b 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html.ini
@@ -7,20 +7,4 @@ [before child: originAgentCluster must equal false] expected: - if os == "win": FAIL - - [before parent: originAgentCluster must equal false] - expected: - if os == "win": FAIL - - [after parent: originAgentCluster must equal false] - expected: - if os == "win": FAIL - - [After: parent to child: setting document.domain must not give sync access] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL - - [after child: originAgentCluster must equal true] - expected: - if flag_specific == "disable-site-isolation-trials": FAIL + if os == "win": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html.ini index 80582a0..29817d3c 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html.ini
@@ -1,20 +1,6 @@ [parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html] [After: parent to child: setting document.domain must give sync access] expected: - if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] - if product == "chrome": PASS + if (flag_specific == "") and (product == "chrome"): PASS + if flag_specific == "disable-site-isolation-trials": PASS FAIL - - [before parent: originAgentCluster must equal false] - expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] - if flag_specific == "disable-layout-ng": FAIL - - [after parent: originAgentCluster must equal false] - expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] - if flag_specific == "disable-layout-ng": FAIL - - [before child: originAgentCluster must equal true] - expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html.ini index 2d7a272..88927c4 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html.ini
@@ -1,22 +1,8 @@ [parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html] [before parent: originAgentCluster must equal false] expected: - if (os == "linux") and (flag_specific == "") and (product == "content_shell"): FAIL - if (os == "linux") and (flag_specific == "disable-layout-ng"): [PASS, FAIL] - if os == "win": FAIL - - [before child: originAgentCluster must equal true] - expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if os == "win": [PASS, FAIL] [after parent: originAgentCluster must equal false] expected: - if (os == "linux") and (flag_specific == "") and (product == "content_shell"): FAIL - if (os == "linux") and (flag_specific == "disable-layout-ng"): [PASS, FAIL] - if os == "win": FAIL - - [after child: originAgentCluster must equal true] - expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if os == "win": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-port.sub.https.html.ini index 011d73af..8215e4c 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-port.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-port.sub.https.html.ini
@@ -1,13 +1,11 @@ [parent-yes-1-no-same-2-no-port.sub.https.html] [before parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if product == "chrome": FAIL [before child: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if product == "chrome": FAIL [After: parent to child: setting document.domain must not give sync access] expected: @@ -15,9 +13,4 @@ [after parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-layout-ng": [PASS, FAIL] - - [after child: originAgentCluster must equal false] - expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-subdomain.sub.https.html.ini index b8ea2ca..1ef993a 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-subdomain.sub.https.html.ini
@@ -1,18 +1,18 @@ [parent-yes-1-no-same-2-no-subdomain.sub.https.html] [before parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (os == "linux") and (product == "chrome"): FAIL - if (flag_specific == "") and (os == "win"): FAIL + if (product == "content_shell") and (os == "win"): [PASS, FAIL] + if product == "chrome": FAIL [after parent: originAgentCluster must equal true] expected: - if (flag_specific == "") and (os == "linux") and (product == "chrome"): FAIL - if (flag_specific == "") and (os == "win"): FAIL + if (product == "content_shell") and (os == "win"): [PASS, FAIL] + if product == "chrome": FAIL [before child: originAgentCluster must equal true] expected: - if (flag_specific == "") and (os == "linux") and (product == "chrome"): FAIL - if (flag_specific == "") and (os == "win"): FAIL + if (product == "content_shell") and (os == "win"): [PASS, FAIL] + if product == "chrome": FAIL [After: parent to child: setting document.domain must not give sync access] expected: @@ -20,4 +20,5 @@ [after child: originAgentCluster must equal false] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL + if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-port.sub.https.html.ini new file mode 100644 index 0000000..c74f36eb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-port.sub.https.html.ini
@@ -0,0 +1,4 @@ +[opener-no-openee-yes-port.sub.https.html] + [opener: originAgentCluster must equal false] + expected: + if os == "win": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-same.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-same.sub.https.html.ini new file mode 100644 index 0000000..58ef35f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-same.sub.https.html.ini
@@ -0,0 +1,10 @@ +[opener-no-openee-yes-same.sub.https.html] + [opener: originAgentCluster must equal false] + expected: + if (flag_specific == "") and (os == "win"): FAIL + if flag_specific == "disable-site-isolation-trials": FAIL + + [openee: originAgentCluster must equal false] + expected: + if (flag_specific == "") and (os == "win"): FAIL + if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-subdomain.sub.https.html.ini index 1368d4e..efdfcc4 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-subdomain.sub.https.html.ini
@@ -1,8 +1,10 @@ [opener-no-openee-yes-subdomain.sub.https.html] [opener: originAgentCluster must equal false] expected: - if os == "win": [PASS, FAIL] + if (flag_specific == "") and (os == "linux"): PASS + [PASS, FAIL] [openee: originAgentCluster must equal true] expected: - if os == "win": [PASS, FAIL] + if (flag_specific == "") and (os == "win"): [PASS, FAIL] + if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-port.sub.https.html.ini index 9b1a10a..6cfbabf 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-port.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-port.sub.https.html.ini
@@ -2,11 +2,9 @@ [setting document.domain must not give sync access] expected: if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if flag_specific == "disable-layout-ng": FAIL [opener: originAgentCluster must equal true] expected: if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-subdomain.sub.https.html.ini index 83fcc1f..061e3f1 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-subdomain.sub.https.html.ini
@@ -6,7 +6,3 @@ [opener: originAgentCluster must equal true] expected: if product == "chrome": FAIL - - [openee: originAgentCluster must equal false] - expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-port.sub.https.html.ini index 9f1c64b9..e143134 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-port.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-port.sub.https.html.ini
@@ -1,4 +1,5 @@ [opener-yes-openee-yes-port.sub.https.html] [opener: originAgentCluster must equal true] expected: - if product == "chrome": FAIL + if (flag_specific == "") and (product == "chrome"): FAIL + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-same.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-same.sub.https.html.ini deleted file mode 100644 index 851a368..0000000 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-same.sub.https.html.ini +++ /dev/null
@@ -1,10 +0,0 @@ -[opener-yes-openee-yes-same.sub.https.html] - [opener: originAgentCluster must equal true] - expected: - if (product == "content_shell") and (flag_specific == "") and (os == "linux"): FAIL - if product == "chrome": FAIL - - [openee: originAgentCluster must equal true] - expected: - if (product == "content_shell") and (flag_specific == "") and (os == "linux"): FAIL - if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-subdomain.sub.https.html.ini index 3cc93c1..2947153 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-subdomain.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-subdomain.sub.https.html.ini
@@ -1,9 +1,9 @@ [opener-yes-openee-yes-subdomain.sub.https.html] [openee: originAgentCluster must equal true] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] if flag_specific == "disable-layout-ng": FAIL [opener: originAgentCluster must equal true] expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] + if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/removing-iframes.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/removing-iframes.sub.https.html.ini index 45bad454..b5682cab 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/removing-iframes.sub.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/removing-iframes.sub.https.html.ini
@@ -10,3 +10,20 @@ if (flag_specific == "") and (product == "chrome"): PASS if flag_specific == "disable-site-isolation-trials": PASS FAIL + + [Before: setting document.domain must not give sync access] + expected: + if product == "chrome": FAIL + + [Parent to child3: setting document.domain must not give sync access] + expected: + if product == "chrome": FAIL + + [Parent to child2: setting document.domain must not give sync access] + expected: + if product == "chrome": FAIL + + [parent: originAgentCluster must equal true] + expected: + if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [PASS, FAIL] + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html.ini index 61766e6..29f86924 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html.ini
@@ -1,7 +1,4 @@ [document_domain_access_details.sub.html] - expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT] - if flag_specific == "disable-layout-ng": [OK, TIMEOUT] [Access allowed if different-origin but both set document.domain to parent domain.] expected: if (flag_specific == "") and (product == "chrome"): PASS
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/noopener-noreferrer-sizing.window.js.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/noopener-noreferrer-sizing.window.js.ini new file mode 100644 index 0000000..15e7fae --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/noopener-noreferrer-sizing.window.js.ini
@@ -0,0 +1,3 @@ +[noopener-noreferrer-sizing.window.html] + expected: + if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-is-popup-condition.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-is-popup-condition.html.ini new file mode 100644 index 0000000..e992545 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-is-popup-condition.html.ini
@@ -0,0 +1,9 @@ +[open-features-is-popup-condition.html?single-1] + expected: + if product == "chrome": [OK, ERROR] + +[open-features-is-popup-condition.html?combination] + +[open-features-is-popup-condition.html?single-2] + +[open-features-is-popup-condition.html?position]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-non-integer-width.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-non-integer-width.html.ini deleted file mode 100644 index 1e059b0..0000000 --- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-non-integer-width.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[open-features-non-integer-width.html] - expected: - if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left.html.ini index a5ba4c24d..dc5fb3e 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left.html.ini
@@ -1,50 +1,80 @@ [open-features-tokenization-top-left.html] - expected: - if product == "chrome": ERROR [",,top= 152, left=152" should set top and left position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL [" left = 141" should set left position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["LEFT=141" should set left position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["top=142" should set top position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["top=152,,left=152," should set top and left position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["left==141" should set left position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["top=152,left=152" should set top and left position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL [" top = 142" should set top position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["\\ttop= 142" should set top position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["top=152==left=152" should set top and left position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL [",left=141,," should set left position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["TOP=142" should set top position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["left=141" should set left position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["\nleft= 141" should set left position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL [",top=142,," should set top position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL ["top==142" should set top position of opened window] - expected: FAIL + expected: + if product == "chrome": PASS + FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-noopener.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-noopener.html.ini index 2220bb32..19a9e9c 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-noopener.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-noopener.html.ini
@@ -1,6 +1,6 @@ [window-open-noopener.html?indexed] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR [window-open-noopener.html?_top]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-windowfeatures-values.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-windowfeatures-values.html.ini index ef909a9..d9e0e4f 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-windowfeatures-values.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-windowfeatures-values.html.ini
@@ -1,3 +1,3 @@ [window-open-windowfeatures-values.html] expected: - if product == "chrome": TIMEOUT + if product == "chrome": [ERROR, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener.html.ini new file mode 100644 index 0000000..08977dee --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener.html.ini
@@ -0,0 +1,3 @@ +[opener-noopener.html] + expected: + if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.html.ini index af4d668..df656ac8 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.html.ini
@@ -1,6 +1,3 @@ [opener-setter.html] expected: - if (flag_specific == "") and (product == "chrome"): [OK, TIMEOUT] - [Auxiliary browsing context created via `window.open` and setting `window.opener` to `test` should report `test`] - expected: - if product == "chrome": [PASS, TIMEOUT] + if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/windows/browsing-context-names/choose-_parent-003.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/windows/browsing-context-names/choose-_parent-003.html.ini new file mode 100644 index 0000000..83a3c62c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/windows/browsing-context-names/choose-_parent-003.html.ini
@@ -0,0 +1,3 @@ +[choose-_parent-003.html] + expected: + if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video.html.ini b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video.html.ini index 4900e47..321a431 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video.html.ini
@@ -1,4 +1,7 @@ [canvas-display-p3-drawImage-ImageBitmap-video.html] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT] + if flag_specific == "disable-layout-ng": [OK, TIMEOUT] [Rec2020-3FF000000, Context srgb, ImageData srgb, cropSource=false] expected: if (flag_specific == "") and (os == "linux") and (product == "chrome"): PASS @@ -64,7 +67,3 @@ [Rec2020-222000000, Context display-p3, ImageData display-p3, cropSource=true] expected: FAIL - - [sRGB-BB0000, Context srgb, ImageData display-p3, cropSource=false] - expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini index a579b954..0a174c5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini
@@ -1,11 +1,17 @@ [offscreencanvas.resize.html] [Verify that resizing an OffscreenCanvas with a webgl context propagates the new size to its placeholder canvas asynchronously.] expected: - if (flag_specific == "") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": FAIL + if (flag_specific == "") and (product == "content_shell") and (os == "linux"): [PASS, FAIL] + if (flag_specific == "") and (product == "content_shell") and (os == "win"): [PASS, FAIL] + if flag_specific == "disable-layout-ng": PASS + FAIL [Verify that drawImage uses the size of the frame as the intinsic size of a placeholder canvas.] expected: - if (flag_specific == "") and (os == "win"): [PASS, FAIL] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [FAIL, PASS] if flag_specific == "disable-layout-ng": PASS FAIL + + [Verify that resizing an OffscreenCanvas with a 2d context propagates the new size to its placeholder canvas asynchronously.] + expected: + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/fetch.https.window.js.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/fetch.https.window.js.ini index 2127d13..3b8a30b9 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/fetch.https.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/fetch.https.window.js.ini
@@ -1,3 +1,3 @@ [fetch.https.window.html] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/image.https.window.js.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/image.https.window.js.ini deleted file mode 100644 index a048ac8..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/image.https.window.js.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[image.https.window.html] - expected: - if os == "win": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https.html.ini index 6bc5f6d..d92ca6a 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https.html.ini
@@ -1,6 +1,4 @@ [dedicated-worker.https.html] - expected: - if flag_specific == "disable-site-isolation-trials": TIMEOUT [COEP: require-corp worker in COEP: none frame] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html.ini index 12f401ec..92de457 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html.ini
@@ -13,4 +13,4 @@ [[service worker\] blocked due to COEP] expected: - if os == "win": [PASS, FAIL] + if os == "win": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-cross-origin.https.html.ini deleted file mode 100644 index 02e5a98..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-cross-origin.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[coep-with-cross-origin.https.html] - expected: - if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-same-site.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-same-site.https.html.ini deleted file mode 100644 index 06986c34..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-same-site.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[coep-with-same-site.https.html] - expected: - if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coop-navigate-same-origin-csp-sandbox.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coop-navigate-same-origin-csp-sandbox.html.ini index 07fb88f9..a7102153 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coop-navigate-same-origin-csp-sandbox.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coop-navigate-same-origin-csp-sandbox.html.ini
@@ -1,3 +1,3 @@ [coop-navigate-same-origin-csp-sandbox.html] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-iframe.sub.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coop-sandbox.https.html.ini similarity index 63% copy from third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-iframe.sub.html.ini copy to third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coop-sandbox.https.html.ini index 96b1dbd1f..63b8eb62 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-iframe.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coop-sandbox.https.html.ini
@@ -1,3 +1,3 @@ -[element-iframe.sub.html] +[coop-sandbox.https.html] expected: if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-failures.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-failures.https.html.ini index 0395d58..eb30ca9 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-failures.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-failures.https.html.ini
@@ -1,9 +1,11 @@ [header-parsing-failures.https.html?1-4] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR [header-parsing-failures.https.html?12-last] [header-parsing-failures.https.html?9-12] + expected: + if product == "chrome": [ERROR, OK] [header-parsing-failures.https.html?5-8]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-non-ascii.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-non-ascii.https.html.ini deleted file mode 100644 index 352e7aa..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-non-ascii.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[header-parsing-non-ascii.https.html] - expected: - if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-repeated.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-repeated.https.html.ini deleted file mode 100644 index 0ff03121..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-repeated.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[header-parsing-repeated.https.html] - expected: - if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html.ini deleted file mode 100644 index eb3fd048..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html] - expected: - if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html.ini deleted file mode 100644 index 4a8a69c6..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[popup-same-site-with-same-origin.https.html] - expected: - if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html.ini deleted file mode 100644 index 536e2c0..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[popup-same-site-with-same-site.https.html] - expected: - if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.ini index c6cd6b7..79b69601 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.ini
@@ -7,6 +7,8 @@ if product == "chrome": ERROR [iframe-popup-same-origin-to-same-origin.https.html?9-last] + expected: + if product == "chrome": [OK, ERROR] [iframe-popup-same-origin-to-same-origin.https.html?7-8] expected:
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.ini index 59c33be..8eec163 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.ini
@@ -11,8 +11,6 @@ if product == "chrome": ERROR [iframe-popup-same-origin-to-unsafe-none.https.html?9-last] - expected: - if product == "chrome": [ERROR, OK] [iframe-popup-same-origin-to-unsafe-none.https.html?3-4] expected:
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.ini index 3e09c28..69d18ba4 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.ini
@@ -4,7 +4,7 @@ [iframe-popup-unsafe-none-to-same-origin.https.html?9-last] expected: - if product == "chrome": [ERROR, OK] + if product == "chrome": [OK, ERROR] [iframe-popup-unsafe-none-to-same-origin.https.html?7-8] expected:
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/javascript-url.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/javascript-url.https.html.ini index a613d3ba..31b63d6fb 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/javascript-url.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/javascript-url.https.html.ini
@@ -8,9 +8,11 @@ [javascript-url.https.html?11-12] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR [javascript-url.https.html?13-14] + expected: + if product == "chrome": [OK, ERROR] [javascript-url.https.html?15-16]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html.ini index d5c6b762..1aeca85 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html.ini
@@ -1,12 +1,8 @@ [navigate-top-to-aboutblank.https.html] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR [Navigate top to about:blank from iframe with opener COOP: |header(Cross-Origin-Opener-Policy,same-origin), iframe origin: https://www1.web-platform.test:8444] expected: FAIL [Navigate top to about:blank from iframe with opener COOP: |header(Cross-Origin-Opener-Policy,same-origin-allow-popups), iframe origin: https://www1.web-platform.test:8444] expected: FAIL - - [Navigate top to about:blank from iframe with opener COOP: |header(Cross-Origin-Opener-Policy,same-origin), iframe origin: https://web-platform.test:8444] - expected: - if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-cache.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-cache.https.html.ini index 5f9ca4e..4cb8fb89 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-cache.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-cache.https.html.ini
@@ -1,12 +1,10 @@ [popup-redirect-cache.https.html?2-3] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR [popup-redirect-cache.https.html?0-1] [popup-redirect-cache.https.html?6-7] - expected: - if product == "chrome": [OK, ERROR] [popup-redirect-cache.https.html?4-5]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https.html.ini deleted file mode 100644 index 4cc8d43..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[popup-redirect-same-origin-allow-popups.https.html] - expected: - if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html.ini index ddd028e..78395f06 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html.ini
@@ -1,3 +1,3 @@ [popup-same-origin-allow-popups-with-cross-origin.https.html] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html.ini new file mode 100644 index 0000000..ef3655a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html.ini
@@ -0,0 +1,3 @@ +[popup-same-origin-with-same-site.https.html] + expected: + if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html.ini index cc0aa62..0d2dc3b 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html.ini
@@ -1,3 +1,3 @@ [popup-unspecified-with-same-origin.https.html] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro.https.html.ini index ef6ec98..78a07e61 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro.https.html.ini
@@ -1,4 +1,6 @@ [access-from-coop-page-to-openee_coop-ro.https.html] + expected: + if product == "chrome": [ERROR, OK] [access-from-coop-page-to-openee, same-origin] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro.https.html.ini index 75251f82..3b5e3caa 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro.https.html.ini
@@ -1,3 +1,8 @@ [access-from-coop-page-to-opener_coop-ro.https.html] - expected: - if product == "chrome": ERROR + [access-from-coop-page-to-opener, same-origin + redirect] + expected: + if product == "chrome": FAIL + + [access-from-coop-page-to-opener, same-origin] + expected: + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro.https.html.ini index dd923b49..ad1f304 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro.https.html.ini
@@ -1,3 +1,6 @@ [access-from-coop-page-to-other_coop-ro.https.html] expected: - if product == "chrome": ERROR + if product == "chrome": [OK, ERROR] + [access-from-coop-page-to-other (COOP-RO)] + expected: + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro_cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro_cross-origin.https.html.ini index dd5c96b2..56b8e03 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro_cross-origin.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro_cross-origin.https.html.ini
@@ -1,3 +1,6 @@ [access-from-coop-page-to-other_coop-ro_cross-origin.https.html] expected: - if product == "chrome": ERROR + if product == "chrome": [OK, ERROR] + [access-from-coop-page-to-other (COOP-RO)] + expected: + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro.https.html.ini index bf827e7..45761bca 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro.https.html.ini
@@ -1,10 +1,3 @@ [access-to-coop-page-from-openee_coop-ro.https.html] expected: - if product == "chrome": [OK, ERROR] - [access-to-coop-page-from-openee, same-origin + redirect] - expected: - if product == "chrome": FAIL - - [access-to-coop-page-from-openee, same-origin] - expected: - if product == "chrome": FAIL + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https.html.ini index a07396ec2..c12963c3 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https.html.ini
@@ -1,6 +1,4 @@ [access-to-coop-page-from-openee_coop-ro_cross-origin.https.html] - expected: - if product == "chrome": [ERROR, OK] [access-to-coop-page-from-openee, cross-origin] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https.html.ini index 152c3587..727d8200 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https.html.ini
@@ -1,4 +1,6 @@ [property-blur.https.html] + expected: + if product == "chrome": [ERROR, OK] [cross-origin > w => w.blur()] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-closed.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-closed.https.html.ini index ad0e9b0..3ee2c657 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-closed.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-closed.https.html.ini
@@ -1,3 +1,10 @@ [property-closed.https.html] expected: - if product == "chrome": ERROR + if product == "chrome": [OK, ERROR] + [same-origin > w => w.closed] + expected: + if product == "chrome": FAIL + + [cross-origin > w => w.closed] + expected: + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-frames.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-frames.https.html.ini index 21215fd..f6d2d33 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-frames.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-frames.https.html.ini
@@ -1,4 +1,6 @@ [property-frames.https.html] + expected: + if product == "chrome": [OK, ERROR] [cross-origin > w => w.frames] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-indexed-getter.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-indexed-getter.https.html.ini deleted file mode 100644 index 4186abaa..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-indexed-getter.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[property-indexed-getter.https.html] - expected: - if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-set.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-set.https.html.ini index 2f71178..7f801da 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-set.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-set.https.html.ini
@@ -1,6 +1,6 @@ [property-location-set.https.html] expected: - if product == "chrome": [OK, ERROR] + if (product == "content_shell") and (os == "win"): [OK, TIMEOUT] [same-origin > w => w.location = "#"] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https.html.ini index e053a92..76173f05 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https.html.ini
@@ -1,10 +1,3 @@ [property-opener-get.https.html] expected: - if product == "chrome": [OK, ERROR] - [cross-origin > w => w.opener] - expected: - if product == "chrome": FAIL - - [same-origin > w => w.opener] - expected: - if product == "chrome": FAIL + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-set.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-set.https.html.ini deleted file mode 100644 index 5c096b16..0000000 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-set.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[property-opener-set.https.html] - expected: - if product == "chrome": [ERROR, OK]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html.ini index 943353e..ab4e882 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html.ini
@@ -1,4 +1,6 @@ [property-postmessage-1.https.html] + expected: + if product == "chrome": [ERROR, OK] [same-origin > w => w.postMessage("", "")] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-2.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-2.https.html.ini index 586bba13..426cf30 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-2.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-2.https.html.ini
@@ -1,3 +1,10 @@ [property-postmessage-2.https.html] expected: - if product == "chrome": ERROR + if product == "chrome": [OK, ERROR] + [cross-origin > w => w.postMessage("")] + expected: + if product == "chrome": FAIL + + [same-origin > w => w.postMessage("")] + expected: + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https.html.ini index 911a48f..189215bc 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https.html.ini
@@ -1,10 +1,3 @@ [property-self.https.html] expected: - if product == "chrome": [OK, ERROR] - [cross-origin > w => w.self] - expected: - if product == "chrome": FAIL - - [same-origin > w => w.self] - expected: - if product == "chrome": FAIL + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https.html.ini index f989a145..7bd46c4 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https.html.ini
@@ -1,6 +1,4 @@ [property-top.https.html] - expected: - if product == "chrome": [ERROR, OK] [same-origin > w => w.top] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-window.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-window.https.html.ini index 78ab09d..799db67 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-window.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-window.https.html.ini
@@ -1,3 +1,10 @@ [property-window.https.html] expected: - if product == "chrome": ERROR + if product == "chrome": [OK, ERROR] + [same-origin > w => w.window] + expected: + if product == "chrome": FAIL + + [cross-origin > w => w.window] + expected: + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/report-to-both_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/report-to-both_coop-ro.https.html.ini index 46d3e245..3533c77b 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/report-to-both_coop-ro.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/report-to-both_coop-ro.https.html.ini
@@ -1,3 +1,8 @@ [report-to-both_coop-ro.https.html] - expected: - if product == "chrome": ERROR + [Access from opener] + expected: + if product == "chrome": FAIL + + [Access from openee] + expected: + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/reporting-redirect-with-same-origin-allow-popups.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/reporting-redirect-with-same-origin-allow-popups.https.html.ini index 8030187..6f1d038e 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/reporting-redirect-with-same-origin-allow-popups.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/reporting-redirect-with-same-origin-allow-popups.https.html.ini
@@ -1,4 +1,6 @@ [reporting-redirect-with-same-origin-allow-popups.https.html] + expected: + if product == "chrome": [OK, ERROR] [Cross origin openee redirected to same-origin with same-origin-allow-popups] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-redirect-with-same-origin-allow-popups.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-redirect-with-same-origin-allow-popups.https.html.ini index 8030187..6f1d038e 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-redirect-with-same-origin-allow-popups.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-redirect-with-same-origin-allow-popups.https.html.ini
@@ -1,4 +1,6 @@ [reporting-redirect-with-same-origin-allow-popups.https.html] + expected: + if product == "chrome": [OK, ERROR] [Cross origin openee redirected to same-origin with same-origin-allow-popups] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/resource-popup.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/resource-popup.https.html.ini index f030a18..d037734 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/resource-popup.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/resource-popup.https.html.ini
@@ -1,3 +1,4 @@ [resource-popup.https.html] expected: - if product == "chrome": ERROR + if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [OK, TIMEOUT] + if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.ini index e3a14ce..b62b4dc 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.ini
@@ -3,6 +3,8 @@ if product == "chrome": ERROR [iframe-popup-to-so.https.html?5-6] + expected: + if product == "chrome": ERROR [iframe-popup-to-so.https.html?3-4] expected: @@ -14,4 +16,4 @@ [iframe-popup-to-so.https.html?9-last] expected: - if product == "chrome": ERROR + if product == "chrome": [ERROR, OK]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.ini index 51dea989..f3681f2 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.ini
@@ -10,7 +10,7 @@ [iframe-popup.https.html?9-last] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR [COOP: restrict-properties to popup COOP: restrict-properties via an iframe, with cross origin iframe, cross origin popup with window_open] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.ini index 3825ee4b5..245d44f 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.ini
@@ -1,6 +1,4 @@ [popup-un.https.html] - expected: - if product == "chrome": ERROR [SAME_ORIGIN popup with coop restrict-properties] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.ini index 4e17baa..fca3b7c 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.ini
@@ -1,6 +1,4 @@ [popup-with-cross-origin.https.html] - expected: - if product == "chrome": ERROR [Cross-origin popup with empty coop] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.ini index 38b2f93..3a041615 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.ini
@@ -1,6 +1,4 @@ [popup-with-same-site.https.html] - expected: - if product == "chrome": ERROR [Same-site popup with coop restrict-properties] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/documents/resource-metadata-management/document-cookie.html.ini b/third_party/blink/web_tests/external/wpt/html/dom/documents/resource-metadata-management/document-cookie.html.ini index fc63f6d..87ed375 100644 --- a/third_party/blink/web_tests/external/wpt/html/dom/documents/resource-metadata-management/document-cookie.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/dom/documents/resource-metadata-management/document-cookie.html.ini
@@ -1,15 +1,3 @@ [document-cookie.html] [document.cookie 2] expected: FAIL - - [document has no cookie] - expected: - if product == "chrome": [PASS, FAIL] - - [document.cookie] - expected: - if product == "chrome": [PASS, FAIL] - - [document.cookie 1] - expected: - if product == "chrome": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/render-blocking/remove-attr-script-keeps-blocking.tentative.html.ini b/third_party/blink/web_tests/external/wpt/html/dom/render-blocking/remove-attr-script-keeps-blocking.tentative.html.ini new file mode 100644 index 0000000..6e59c18 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/dom/render-blocking/remove-attr-script-keeps-blocking.tentative.html.ini
@@ -0,0 +1,4 @@ +[remove-attr-script-keeps-blocking.tentative.html] + [Rendering is blocked before render-blocking resources are loaded] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/render-blocking/script-inserted-script.html.ini b/third_party/blink/web_tests/external/wpt/html/dom/render-blocking/script-inserted-script.html.ini new file mode 100644 index 0000000..e11044c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/dom/render-blocking/script-inserted-script.html.ini
@@ -0,0 +1,4 @@ +[script-inserted-script.html] + [Rendering is blocked before render-blocking resources are loaded] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/interaction/focus/focus-management/focus-event-targets-simple.html.ini b/third_party/blink/web_tests/external/wpt/html/interaction/focus/focus-management/focus-event-targets-simple.html.ini new file mode 100644 index 0000000..785071f1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/interaction/focus/focus-management/focus-event-targets-simple.html.ini
@@ -0,0 +1,4 @@ +[focus-event-targets-simple.html] + [Focus events fire at correct targets in correct order in simple case] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/disabled-elements/disabled-event-dispatch.tentative.html b/third_party/blink/web_tests/external/wpt/html/semantics/disabled-elements/disabled-event-dispatch.tentative.html index c5e34a2..e2b8846 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/disabled-elements/disabled-event-dispatch.tentative.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/disabled-elements/disabled-event-dispatch.tentative.html
@@ -1,4 +1,5 @@ <!DOCTYPE html> +<meta name="timeout" content="long"> <link rel=author href="mailto:jarhar@chromium.org"> <link rel=help href="https://github.com/whatwg/html/issues/2368"> <link rel=help href="https://github.com/whatwg/html/issues/5886"> @@ -9,37 +10,48 @@ <script src="/resources/testdriver-actions.js"></script> <div id=targetparent> - <button id=target disabled> + <button disabled> hello world - <span style="border: 1px solid black" id=targetchild>child</span> + <span style="border: 1px solid black">child</span> </button> + <my-control disabled> + hello world + <span style="border: 1px solid black">child</span> + </my-control> </div> <script> +customElements.define('my-control', class extends HTMLElement { + static get formAssociated() { return true; } +}); + ['mousedown', 'mouseup', 'pointerdown', 'pointerup', 'click'].forEach(eventName => { [true, false].forEach(clickChildElement => { - promise_test(async () => { - let parentReceivedEvent = false; - targetparent.addEventListener(eventName, () => parentReceivedEvent = true); + for (const target of targetparent.children) { + promise_test(async () => { + let parentReceivedEvent = false; + targetparent.addEventListener(eventName, () => parentReceivedEvent = true); - let targetReceivedEvent = false; - target.addEventListener(eventName, () => targetReceivedEvent = true); + let targetReceivedEvent = false; + target.addEventListener(eventName, () => targetReceivedEvent = true); - let childReceivedEvent = false; - targetchild.addEventListener(eventName, () => childReceivedEvent = true); + let childReceivedEvent = false; + let targetchild = target.firstElementChild; + targetchild.addEventListener(eventName, () => childReceivedEvent = true); - await test_driver.click(clickChildElement ? targetchild : target); + await test_driver.click(clickChildElement ? targetchild : target); - const parentShouldReceiveEvents = eventName.startsWith('pointer'); - assert_equals(parentReceivedEvent, parentShouldReceiveEvents, - `parent element received ${eventName} events`); + const parentShouldReceiveEvents = eventName.startsWith('pointer'); + assert_equals(parentReceivedEvent, parentShouldReceiveEvents, + `parent element received ${eventName} events`); - const targetShouldReceiveEvents = eventName.startsWith('pointer'); - assert_equals(targetReceivedEvent, targetShouldReceiveEvents, - `target element received ${eventName} events`); - assert_equals(childReceivedEvent, clickChildElement, - `child element received ${eventName} events`); - }, `Testing ${eventName} events when clicking ${clickChildElement ? 'child of ' : ''}disabled form controls.`); + const targetShouldReceiveEvents = eventName.startsWith('pointer'); + assert_equals(targetReceivedEvent, targetShouldReceiveEvents, + `target element received ${eventName} events`); + assert_equals(childReceivedEvent, clickChildElement, + `child element received ${eventName} events`); + }, `Testing ${eventName} events when clicking ${clickChildElement ? 'child of ' : ''}disabled ${target.localName}.`); + } }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/disabled-elements/event-propagate-disabled.tentative.html b/third_party/blink/web_tests/external/wpt/html/semantics/disabled-elements/event-propagate-disabled.tentative.html index 0c00cc8d..9c8642d 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/disabled-elements/event-propagate-disabled.tentative.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/disabled-elements/event-propagate-disabled.tentative.html
@@ -47,9 +47,15 @@ <input disabled type="time"> <input disabled type="url"> <input disabled type="week"> + <my-control disabled>Text</my-control> </div> <script> + customElements.define('my-control', class extends HTMLElement { + static get formAssociated() { return true; } + get disabled() { return this.hasAttribute("disabled"); } + }); + /** * @param {Element} element */
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor.html.ini index 832554d..a6241fe3 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor.html.ini
@@ -1,3 +1,6 @@ [resource-selection-invoke-audio-constructor.html] [invoking resource selection with new Audio(src)] - expected: FAIL + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): PASS + if flag_specific == "disable-site-isolation-trials": PASS + FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source.html.ini index ffcd9afb..c9aa5a8 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source.html.ini
@@ -1,5 +1,5 @@ [resource-selection-invoke-insert-source.html] [invoking resource selection by inserting <source>] expected: - if product == "chrome": PASS + if os == "win": PASS FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini index e889ab7..77d3898 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini
@@ -1,3 +1,5 @@ [resource-selection-invoke-pause-networkState.html] [NOT invoking resource selection with pause() when networkState is not NETWORK_EMPTY] - expected: FAIL + expected: + if flag_specific == "disable-layout-ng": PASS + FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-src.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-src.html.ini new file mode 100644 index 0000000..d46d8e2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-src.html.ini
@@ -0,0 +1,4 @@ +[resource-selection-invoke-remove-src.html] + [NOT invoking media load or resource selection when removing the src attribute] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-not-in-document.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-not-in-document.html.ini index 7fe38a1..ff3d9aa 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-not-in-document.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-not-in-document.html.ini
@@ -1,5 +1,3 @@ [resource-selection-invoke-set-src-not-in-document.html] [invoking load by setting src on video not in a document] - expected: - if flag_specific == "disable-layout-ng": [FAIL, PASS] - FAIL + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-after-controls-removed.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-after-controls-removed.html.ini new file mode 100644 index 0000000..e6b2b309 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-after-controls-removed.html.ini
@@ -0,0 +1,4 @@ +[track-cue-rendering-after-controls-removed.html] + expected: + if flag_specific == "disable-site-isolation-trials": FAIL + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini index 7774528..7d22c448 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini
@@ -1,4 +1,5 @@ [sandbox-top-navigation-child-special-cases.tentative.sub.window.html] expected: - if (os == "linux") and (product == "chrome"): ERROR - if os == "win": TIMEOUT + if (product == "content_shell") and (flag_specific == "") and (os == "win"): [OK, TIMEOUT] + if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT] + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child.tentative.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child.tentative.sub.window.js.ini index ce6897a..4d916ea 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child.tentative.sub.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child.tentative.sub.window.js.ini
@@ -1,4 +1,4 @@ [sandbox-top-navigation-child.tentative.sub.window.html] expected: - if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT] - if product == "chrome": ERROR + if (flag_specific == "") and (product == "chrome"): ERROR + if flag_specific == "disable-site-isolation-trials": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js.ini index 5a471c5d..8a0440c 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js.ini
@@ -1,5 +1,3 @@ [sandbox-top-navigation-escalate-privileges.tentative.sub.window.html] expected: - if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [OK, TIMEOUT] - if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): TIMEOUT if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js.ini index f6d097fe..2a9af647 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js.ini
@@ -1,4 +1,5 @@ [sandbox-top-navigation-grandchild.tentative.sub.window.html] expected: - if (flag_specific == "") and (product == "chrome"): ERROR - if flag_specific == "disable-site-isolation-trials": TIMEOUT + if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [OK, TIMEOUT] + if (product == "content_shell") and (flag_specific == "disable-layout-ng"): [OK, TIMEOUT] + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-base-url-2.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-base-url-2.html.ini index 51b5b40..2e3fbd9 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-base-url-2.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-base-url-2.html.ini
@@ -1,5 +1,5 @@ [image-loading-lazy-base-url-2.html] expected: - if product == "chrome": [ERROR, OK] + if product == "chrome": ERROR [When a loading=lazy image is loaded, it loads relative to the document's base URL computed at parse-time.] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-data-url-to-https.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-data-url-to-https.html.ini new file mode 100644 index 0000000..dc2ee4a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-data-url-to-https.html.ini
@@ -0,0 +1,3 @@ +[image-loading-lazy-data-url-to-https.html] + expected: + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/srcset/avoid-reload-on-resize.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/srcset/avoid-reload-on-resize.html.ini deleted file mode 100644 index 6825203..0000000 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/srcset/avoid-reload-on-resize.html.ini +++ /dev/null
@@ -1,4 +0,0 @@ -[avoid-reload-on-resize.html] - [Avoid srcset image reloads when viewport resizes] - expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/text-plain.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/text-plain.window.js.ini new file mode 100644 index 0000000..1736b69 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/text-plain.window.js.ini
@@ -0,0 +1,3 @@ +[text-plain.window.html] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini index c14d030..f668ba4 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini
@@ -1,125 +1,5 @@ [urlencoded2.window.html] expected: - if (os == "linux") and (flag_specific == "") and (product == "chrome"): [OK, TIMEOUT] - if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [OK, TIMEOUT] - [application/x-www-form-urlencoded: \\r\\n in filename (normal form)] - expected: [PASS, NOTRUN] - + if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [OK, TIMEOUT] [application/x-www-form-urlencoded: \\r in filename (formdata event)] expected: [PASS, TIMEOUT] - - [application/x-www-form-urlencoded: backslash in name (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: single quote in value (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: backslash in value (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: backslash in filename (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: double quote in name (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: single quote in name (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: single quote in value (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: non-ASCII in name and value (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: \\r\\n in filename (formdata event)] - expected: - if product == "chrome": [PASS, TIMEOUT] - - [application/x-www-form-urlencoded: double quote in name (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: single quote in name (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: double quote in filename (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: single quote in filename (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: non-ASCII in filename (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: double quote in value (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: characters not in encoding in name and value (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: character not in encoding in filename (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: double quote in value (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: single quote in filename (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: non-ASCII in name and value (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: character not in encoding in filename (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: non-ASCII in filename (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: double quote in filename (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: \\n\\r in filename (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: backslash in name (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: backslash in filename (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: backslash in value (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: \\n\\r in filename (formdata event)] - expected: - if product == "chrome": [PASS, NOTRUN] - - [application/x-www-form-urlencoded: characters not in encoding in name and value (normal form)] - expected: - if product == "chrome": [PASS, NOTRUN]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-button-target.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-button-target.html.ini index 12a80ad..eaf0969a 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-button-target.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-button-target.html.ini
@@ -1,3 +1,3 @@ [rel-button-target.html] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html.ini index 2dbfcd2..5860c3a2 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html.ini
@@ -1,4 +1,5 @@ [selectmenu-form-state-restore.tentative.html] expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): OK if flag_specific == "disable-site-isolation-trials": OK ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.js.ini index f5ddbc8b..51f8916 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.js.ini
@@ -1,12 +1,7 @@ [activation-behavior.window.html] [<area> that is not connected should not be followed] - expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): PASS - if flag_specific == "disable-layout-ng": [PASS, FAIL] - FAIL + expected: FAIL [<a> that is not connected should be followed] expected: - if (product == "content_shell") and (flag_specific == "") and (os == "linux"): FAIL - if product == "chrome": PASS - [PASS, FAIL] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-focus-2.tentative.html b/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-focus-2.tentative.html index e0effbd..569b633 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-focus-2.tentative.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-focus-2.tentative.html
@@ -90,6 +90,22 @@ }, "Popover focus navigation"); </script> +<button id=circular0 popovertoggletarget=popover4>Invoker</button> +<div id=popover4 popover> + <button id=circular1 autofocus popoverhidetarget=popover4></button> + <button id=circular2 popovershowtarget=popover4></button> + <button id=circular3 popovertoggletarget=popover4></button> +</div> +<button id=circular4>after</button> +<script> +promise_test(async t => { + circular0.focus(); + await sendEnter(); // Activate the invoker + await verifyFocusOrder([circular0, circular1, circular2, circular3, circular4]); + popover4.hidePopover(); +}, "Circular reference tab navigation"); +</script> + <div id=deleted> <button popovershowtarget=deleted1>Show popover</button> <div popover id=deleted1>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-focus-2.tentative.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-focus-2.tentative.html.ini index 4da507b5..5edd596 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-focus-2.tentative.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-focus-2.tentative.html.ini
@@ -4,3 +4,6 @@ [Popover focus returns when popover is hidden by invoker] expected: FAIL + + [Circular reference tab navigation] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-light-dismiss.tentative.html b/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-light-dismiss.tentative.html index 83573c86..3c48bd92 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-light-dismiss.tentative.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-light-dismiss.tentative.html
@@ -392,8 +392,9 @@ <div popover id=convoluted_p4><p>Popover 4</p></div> </div> </div> -<div popover id=convoluted_p2>Popover 2 +<div popover id=convoluted_p2 anchor=convoluted_p2>Popover 2 (self-anchor-linked) <button popovertoggletarget=convoluted_p3>Open Popover 3</button> + <button popovershowtarget=convoluted_p2>Self-linked invoker</button> </div> <div popover id=convoluted_p3 anchor=convoluted_anchor>Popover 3 <button popovertoggletarget=convoluted_p4>Open Popover 4</button>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/tabular-data/processing-model-1/span-limits.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/tabular-data/processing-model-1/span-limits.html.ini index 79cf2eb..78bcb8c 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/tabular-data/processing-model-1/span-limits.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/tabular-data/processing-model-1/span-limits.html.ini
@@ -1,3 +1,3 @@ [span-limits.html] expected: - if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT] + if flag_specific == "disable-site-isolation-trials": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/timers/negative-settimeout.any.js.ini b/third_party/blink/web_tests/external/wpt/html/webappapis/timers/negative-settimeout.any.js.ini index 80e633e..cac620a 100644 --- a/third_party/blink/web_tests/external/wpt/html/webappapis/timers/negative-settimeout.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/html/webappapis/timers/negative-settimeout.any.js.ini
@@ -1,5 +1,5 @@ [negative-settimeout.any.worker.html] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR [negative-settimeout.any.html]
diff --git a/third_party/blink/web_tests/external/wpt/infrastructure/server/webtransport-h3.https.sub.any.js.ini b/third_party/blink/web_tests/external/wpt/infrastructure/server/webtransport-h3.https.sub.any.js.ini index 66e623f8..56976838 100644 --- a/third_party/blink/web_tests/external/wpt/infrastructure/server/webtransport-h3.https.sub.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/infrastructure/server/webtransport-h3.https.sub.any.js.ini
@@ -13,6 +13,3 @@ [webtransport-h3.https.sub.any.sharedworker.html] [webtransport-h3.https.sub.any.html] - [WebTransport server should be running and should handle a bidirectional stream] - expected: - if os == "win": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/badging.idl b/third_party/blink/web_tests/external/wpt/interfaces/badging.idl index 2857862..f34dfa7e0 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/badging.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/badging.idl
@@ -3,14 +3,12 @@ // (https://github.com/w3c/webref) // Source: Badging API (https://w3c.github.io/badging/) -// Methods only exposed on documents. [SecureContext] partial interface Navigator { Promise<undefined> setClientBadge(optional [EnforceRange] unsigned long long contents); Promise<undefined> clearClientBadge(); }; -// Methods exposed on both documents and service workers. [SecureContext] interface mixin NavigatorBadge { Promise<undefined> setAppBadge(optional [EnforceRange] unsigned long long contents);
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/compute-pressure.idl b/third_party/blink/web_tests/external/wpt/interfaces/compute-pressure.idl index b435a2ac..2a11b84 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/compute-pressure.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/compute-pressure.idl
@@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) -// Source: Compute Pressure Level 1 (https://wicg.github.io/compute-pressure/) +// Source: Compute Pressure Level 1 (https://w3c.github.io/compute-pressure/) enum PressureState { "nominal", "fair", "serious", "critical" };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/contact-api.idl b/third_party/blink/web_tests/external/wpt/interfaces/contact-api.idl index d7f2ba5d..aece816 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/contact-api.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/contact-api.idl
@@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) -// Source: Contact Picker API (https://w3c.github.io/contact-api/spec/) +// Source: Contact Picker API (https://w3c.github.io/contact-picker/spec/) [Exposed=Window] partial interface Navigator {
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/css-animations.idl b/third_party/blink/web_tests/external/wpt/interfaces/css-animations.idl index eda1d0f..6620e015 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/css-animations.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/css-animations.idl
@@ -31,7 +31,9 @@ interface CSSKeyframesRule : CSSRule { attribute CSSOMString name; readonly attribute CSSRuleList cssRules; + readonly attribute unsigned long length; + getter CSSKeyframeRule (unsigned long index); undefined appendRule(CSSOMString rule); undefined deleteRule(CSSOMString select); CSSKeyframeRule? findRule(CSSOMString select);
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/css-view-transitions.idl b/third_party/blink/web_tests/external/wpt/interfaces/css-view-transitions.idl index 26c2e30..c7ac9f3 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/css-view-transitions.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/css-view-transitions.idl
@@ -4,19 +4,15 @@ // Source: CSS View Transitions Module Level 1 (https://drafts.csswg.org/css-view-transitions-1/) partial interface Document { - ViewTransition createTransition(ViewTransitionInit init); -}; - -dictionary ViewTransitionInit { - required UpdateDOMCallback updateDOM; + ViewTransition startViewTransition(optional UpdateDOMCallback? callback = null); }; callback UpdateDOMCallback = Promise<any> (); [Exposed=Window] interface ViewTransition { - undefined skipTransition(); - readonly attribute Promise<undefined> finished; - readonly attribute Promise<undefined> ready; - readonly attribute Promise<undefined> domUpdated; + undefined skipTransition(); + readonly attribute Promise<undefined> finished; + readonly attribute Promise<undefined> ready; + readonly attribute Promise<undefined> domUpdated; };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/cssom-view.idl b/third_party/blink/web_tests/external/wpt/interfaces/cssom-view.idl index a61f17e..2046b38 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/cssom-view.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/cssom-view.idl
@@ -196,4 +196,5 @@ attribute EventHandler onresize; attribute EventHandler onscroll; + attribute EventHandler onscrollend; };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/event-timing.idl b/third_party/blink/web_tests/external/wpt/interfaces/event-timing.idl index 2f8e031..741a05dc 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/event-timing.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/event-timing.idl
@@ -19,14 +19,9 @@ }; [Exposed=Window] -interface InteractionCounts { - readonly maplike<DOMString, unsigned long long>; -}; - -[Exposed=Window] partial interface Performance { [SameObject] readonly attribute EventCounts eventCounts; - [SameObject] readonly attribute InteractionCounts interactionCounts; + readonly attribute unsigned long long interactionCount; }; partial dictionary PerformanceObserverInit {
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/fetch.idl b/third_party/blink/web_tests/external/wpt/interfaces/fetch.idl index ba69c46..866d09d3 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/fetch.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/fetch.idl
@@ -71,6 +71,7 @@ boolean keepalive; AbortSignal? signal; RequestDuplex duplex; + RequestPriority priority; any window; // can only be set to null }; @@ -80,6 +81,7 @@ enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" }; enum RequestRedirect { "follow", "error", "manual" }; enum RequestDuplex { "half" }; +enum RequestPriority { "high", "low", "auto" }; [Exposed=(Window,Worker)]interface Response { constructor(optional BodyInit? body = null, optional ResponseInit init = {});
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/gamepad-extensions.idl b/third_party/blink/web_tests/external/wpt/interfaces/gamepad-extensions.idl index 29ab815..ddfc0d9 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/gamepad-extensions.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/gamepad-extensions.idl
@@ -12,11 +12,33 @@ [Exposed=Window] interface GamepadHapticActuator { readonly attribute GamepadHapticActuatorType type; + boolean canPlayEffectType(GamepadHapticEffectType type); + Promise<GamepadHapticsResult> playEffect( + GamepadHapticEffectType type, + optional GamepadEffectParameters params = {}); Promise<boolean> pulse(double value, double duration); + Promise<GamepadHapticsResult> reset(); +}; + +enum GamepadHapticsResult { + "complete", + "preempted" }; enum GamepadHapticActuatorType { - "vibration" + "vibration", + "dual-rumble" +}; + +enum GamepadHapticEffectType { + "dual-rumble" +}; + +dictionary GamepadEffectParameters { + double duration = 0.0; + double startDelay = 0.0; + double strongMagnitude = 0.0; + double weakMagnitude = 0.0; }; [Exposed=Window] @@ -45,4 +67,5 @@ readonly attribute FrozenArray<GamepadHapticActuator> hapticActuators; readonly attribute GamepadPose? pose; readonly attribute FrozenArray<GamepadTouch>? touchEvents; + [SameObject] readonly attribute GamepadHapticActuator vibrationActuator; };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/html.idl b/third_party/blink/web_tests/external/wpt/interfaces/html.idl index d053798..70eb5eff 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/html.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/html.idl
@@ -884,7 +884,7 @@ [CEReactions] attribute DOMString formTarget; [CEReactions] attribute unsigned long height; attribute boolean indeterminate; - readonly attribute HTMLElement? list; + readonly attribute HTMLDataListElement? list; [CEReactions] attribute DOMString max; [CEReactions] attribute long maxLength; [CEReactions] attribute DOMString min;
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/manifest-incubations.idl b/third_party/blink/web_tests/external/wpt/interfaces/manifest-incubations.idl index 5342b61..bab3998 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/manifest-incubations.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/manifest-incubations.idl
@@ -22,18 +22,3 @@ attribute EventHandler onappinstalled; attribute EventHandler onbeforeinstallprompt; }; - -[Exposed=Window] interface LaunchParams { - readonly attribute DOMString? targetURL; - readonly attribute FrozenArray<FileSystemHandle> files; -}; - -callback LaunchConsumer = any (LaunchParams params); - -partial interface Window { - readonly attribute LaunchQueue launchQueue; -}; - -[Exposed=Window] interface LaunchQueue { - undefined setConsumer(LaunchConsumer consumer); -};
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/performance-timeline.idl b/third_party/blink/web_tests/external/wpt/interfaces/performance-timeline.idl index d3a5a278..cdd8fafd 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/performance-timeline.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/performance-timeline.idl
@@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) -// Source: Performance Timeline Level 2 (https://w3c.github.io/performance-timeline/) +// Source: Performance Timeline (https://w3c.github.io/performance-timeline/) partial interface Performance { PerformanceEntryList getEntries ();
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/permissions.idl b/third_party/blink/web_tests/external/wpt/interfaces/permissions.idl index 7013921..fbcb674e 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/permissions.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/permissions.idl
@@ -38,5 +38,4 @@ dictionary PermissionSetParameters { required PermissionDescriptor descriptor; required PermissionState state; - boolean oneRealm = false; };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/priority-hints.idl b/third_party/blink/web_tests/external/wpt/interfaces/priority-hints.idl index 15c90bb..cbff6a5 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/priority-hints.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/priority-hints.idl
@@ -3,16 +3,6 @@ // (https://github.com/w3c/webref) // Source: Priority Hints (https://wicg.github.io/priority-hints/) -enum FetchPriority { "high", "low", "auto" }; - -partial interface Request { - readonly attribute FetchPriority priority; -}; - -partial dictionary RequestInit { - FetchPriority priority; -}; - partial interface HTMLImageElement { [CEReactions] attribute DOMString fetchPriority; };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/resource-timing.idl b/third_party/blink/web_tests/external/wpt/interfaces/resource-timing.idl index 65f0d4d..242df0bd 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/resource-timing.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/resource-timing.idl
@@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) -// Source: Resource Timing Level 2 (https://w3c.github.io/resource-timing/) +// Source: Resource Timing (https://w3c.github.io/resource-timing/) [Exposed=(Window,Worker)] interface PerformanceResourceTiming : PerformanceEntry {
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/screen-capture.idl b/third_party/blink/web_tests/external/wpt/interfaces/screen-capture.idl index 4c64a2f3..9abd4d2c 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/screen-capture.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/screen-capture.idl
@@ -63,6 +63,7 @@ boolean logicalSurface; DOMString cursor; boolean restrictOwnAudio; + boolean suppressLocalAudioPlayback; }; partial dictionary MediaTrackCapabilities {
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/screen-orientation.idl b/third_party/blink/web_tests/external/wpt/interfaces/screen-orientation.idl index 62bc86428..df8a1db 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/screen-orientation.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/screen-orientation.idl
@@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) -// Source: The Screen Orientation API (https://w3c.github.io/screen-orientation/) +// Source: Screen Orientation (https://w3c.github.io/screen-orientation/) partial interface Screen { [SameObject] readonly attribute ScreenOrientation orientation;
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/scroll-animations.idl b/third_party/blink/web_tests/external/wpt/interfaces/scroll-animations.idl index 1ba137c3..30ecbd8 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/scroll-animations.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/scroll-animations.idl
@@ -36,7 +36,6 @@ }; [Exposed=Window] -interface AnimationTimeline { - readonly attribute CSSNumberish? currentTime; +partial interface AnimationTimeline { CSSNumericValue? getCurrentTime(optional CSSOMString rangeName); };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/secure-payment-confirmation.idl b/third_party/blink/web_tests/external/wpt/interfaces/secure-payment-confirmation.idl index 6a68f059..6b6083b 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/secure-payment-confirmation.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/secure-payment-confirmation.idl
@@ -13,6 +13,7 @@ USVString payeeOrigin; AuthenticationExtensionsClientInputs extensions; sequence<USVString> locale; + boolean showOptOut; }; partial dictionary AuthenticationExtensionsClientInputs { @@ -52,6 +53,7 @@ enum TransactionAutomationMode { "none", - "autoaccept", - "autoreject" + "autoAccept", + "autoReject", + "autoOptOut" };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/selection-api.idl b/third_party/blink/web_tests/external/wpt/interfaces/selection-api.idl index 6aaa1ae..c1eed2a9 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/selection-api.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/selection-api.idl
@@ -17,6 +17,7 @@ undefined removeRange(Range range); undefined removeAllRanges(); undefined empty(); + StaticRange getComposedRange(ShadowRoot... shadowRoots); undefined collapse(Node? node, optional unsigned long offset = 0); undefined setPosition(Node? node, optional unsigned long offset = 0); undefined collapseToStart();
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/web-animations.idl b/third_party/blink/web_tests/external/wpt/interfaces/web-animations.idl index 6030dad..ed612302 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/web-animations.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/web-animations.idl
@@ -3,6 +3,11 @@ // (https://github.com/w3c/webref) // Source: Web Animations (https://drafts.csswg.org/web-animations-1/) +[Exposed=Window] +interface AnimationTimeline { + readonly attribute double? currentTime; +}; + dictionary DocumentTimelineOptions { DOMHighResTimeStamp originTime = 0; };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/web-app-launch.idl b/third_party/blink/web_tests/external/wpt/interfaces/web-app-launch.idl new file mode 100644 index 0000000..c3b6e39 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/interfaces/web-app-launch.idl
@@ -0,0 +1,19 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: Web App Launch Handler API (https://wicg.github.io/web-app-launch/) + +[Exposed=Window] interface LaunchParams { + readonly attribute DOMString? targetURL; + readonly attribute FrozenArray<FileSystemHandle> files; +}; + +callback LaunchConsumer = any (LaunchParams params); + +partial interface Window { + readonly attribute LaunchQueue launchQueue; +}; + +[Exposed=Window] interface LaunchQueue { + undefined setConsumer(LaunchConsumer consumer); +};
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webaudio.idl b/third_party/blink/web_tests/external/wpt/interfaces/webaudio.idl index 092ab52..1569de2 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/webaudio.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/webaudio.idl
@@ -4,9 +4,9 @@ // Source: Web Audio API (https://webaudio.github.io/web-audio-api/) enum AudioContextState { - "suspended", - "running", - "closed" + "suspended", + "running", + "closed" }; callback DecodeErrorCallback = undefined (DOMException error); @@ -15,604 +15,604 @@ [Exposed=Window] interface BaseAudioContext : EventTarget { - readonly attribute AudioDestinationNode destination; - readonly attribute float sampleRate; - readonly attribute double currentTime; - readonly attribute AudioListener listener; - readonly attribute AudioContextState state; - [SameObject, SecureContext] - readonly attribute AudioWorklet audioWorklet; - attribute EventHandler onstatechange; + readonly attribute AudioDestinationNode destination; + readonly attribute float sampleRate; + readonly attribute double currentTime; + readonly attribute AudioListener listener; + readonly attribute AudioContextState state; + [SameObject, SecureContext] + readonly attribute AudioWorklet audioWorklet; + attribute EventHandler onstatechange; - AnalyserNode createAnalyser (); - BiquadFilterNode createBiquadFilter (); - AudioBuffer createBuffer (unsigned long numberOfChannels, - unsigned long length, - float sampleRate); - AudioBufferSourceNode createBufferSource (); - ChannelMergerNode createChannelMerger (optional unsigned long numberOfInputs = 6); - ChannelSplitterNode createChannelSplitter ( - optional unsigned long numberOfOutputs = 6); - ConstantSourceNode createConstantSource (); - ConvolverNode createConvolver (); - DelayNode createDelay (optional double maxDelayTime = 1.0); - DynamicsCompressorNode createDynamicsCompressor (); - GainNode createGain (); - IIRFilterNode createIIRFilter (sequence<double> feedforward, - sequence<double> feedback); - OscillatorNode createOscillator (); - PannerNode createPanner (); - PeriodicWave createPeriodicWave (sequence<float> real, - sequence<float> imag, - optional PeriodicWaveConstraints constraints = {}); - ScriptProcessorNode createScriptProcessor( - optional unsigned long bufferSize = 0, - optional unsigned long numberOfInputChannels = 2, - optional unsigned long numberOfOutputChannels = 2); - StereoPannerNode createStereoPanner (); - WaveShaperNode createWaveShaper (); + AnalyserNode createAnalyser (); + BiquadFilterNode createBiquadFilter (); + AudioBuffer createBuffer (unsigned long numberOfChannels, + unsigned long length, + float sampleRate); + AudioBufferSourceNode createBufferSource (); + ChannelMergerNode createChannelMerger (optional unsigned long numberOfInputs = 6); + ChannelSplitterNode createChannelSplitter ( + optional unsigned long numberOfOutputs = 6); + ConstantSourceNode createConstantSource (); + ConvolverNode createConvolver (); + DelayNode createDelay (optional double maxDelayTime = 1.0); + DynamicsCompressorNode createDynamicsCompressor (); + GainNode createGain (); + IIRFilterNode createIIRFilter (sequence<double> feedforward, + sequence<double> feedback); + OscillatorNode createOscillator (); + PannerNode createPanner (); + PeriodicWave createPeriodicWave (sequence<float> real, + sequence<float> imag, + optional PeriodicWaveConstraints constraints = {}); + ScriptProcessorNode createScriptProcessor( + optional unsigned long bufferSize = 0, + optional unsigned long numberOfInputChannels = 2, + optional unsigned long numberOfOutputChannels = 2); + StereoPannerNode createStereoPanner (); + WaveShaperNode createWaveShaper (); - Promise<AudioBuffer> decodeAudioData ( - ArrayBuffer audioData, - optional DecodeSuccessCallback? successCallback, - optional DecodeErrorCallback? errorCallback); + Promise<AudioBuffer> decodeAudioData ( + ArrayBuffer audioData, + optional DecodeSuccessCallback? successCallback, + optional DecodeErrorCallback? errorCallback); }; enum AudioContextLatencyCategory { - "balanced", - "interactive", - "playback" + "balanced", + "interactive", + "playback" }; enum AudioSinkType { - "none" + "none" }; [Exposed=Window] interface AudioContext : BaseAudioContext { - constructor (optional AudioContextOptions contextOptions = {}); - readonly attribute double baseLatency; - readonly attribute double outputLatency; - [SecureContext] readonly attribute (DOMString or AudioSinkInfo) sinkId; - [SecureContext] readonly attribute AudioRenderCapacity renderCapacity; - attribute EventHandler onsinkchange; - AudioTimestamp getOutputTimestamp (); - Promise<undefined> resume (); - Promise<undefined> suspend (); - Promise<undefined> close (); - [SecureContext] Promise<undefined> setSinkId ((DOMString or AudioSinkOptions) sinkId); - MediaElementAudioSourceNode createMediaElementSource (HTMLMediaElement mediaElement); - MediaStreamAudioSourceNode createMediaStreamSource (MediaStream mediaStream); - MediaStreamTrackAudioSourceNode createMediaStreamTrackSource ( - MediaStreamTrack mediaStreamTrack); - MediaStreamAudioDestinationNode createMediaStreamDestination (); + constructor (optional AudioContextOptions contextOptions = {}); + readonly attribute double baseLatency; + readonly attribute double outputLatency; + [SecureContext] readonly attribute (DOMString or AudioSinkInfo) sinkId; + [SecureContext] readonly attribute AudioRenderCapacity renderCapacity; + attribute EventHandler onsinkchange; + AudioTimestamp getOutputTimestamp (); + Promise<undefined> resume (); + Promise<undefined> suspend (); + Promise<undefined> close (); + [SecureContext] Promise<undefined> setSinkId ((DOMString or AudioSinkOptions) sinkId); + MediaElementAudioSourceNode createMediaElementSource (HTMLMediaElement mediaElement); + MediaStreamAudioSourceNode createMediaStreamSource (MediaStream mediaStream); + MediaStreamTrackAudioSourceNode createMediaStreamTrackSource ( + MediaStreamTrack mediaStreamTrack); + MediaStreamAudioDestinationNode createMediaStreamDestination (); }; dictionary AudioContextOptions { - (AudioContextLatencyCategory or double) latencyHint = "interactive"; - float sampleRate; - (DOMString or AudioSinkOptions) sinkId; + (AudioContextLatencyCategory or double) latencyHint = "interactive"; + float sampleRate; + (DOMString or AudioSinkOptions) sinkId; }; dictionary AudioSinkOptions { - required AudioSinkType type; + required AudioSinkType type; }; [Exposed=Window] interface AudioSinkInfo { - readonly attribute AudioSinkType type; + readonly attribute AudioSinkType type; }; dictionary AudioTimestamp { - double contextTime; - DOMHighResTimeStamp performanceTime; + double contextTime; + DOMHighResTimeStamp performanceTime; }; [Exposed=Window] interface AudioRenderCapacity : EventTarget { - undefined start(optional AudioRenderCapacityOptions options = {}); - undefined stop(); - attribute EventHandler onupdate; + undefined start(optional AudioRenderCapacityOptions options = {}); + undefined stop(); + attribute EventHandler onupdate; }; dictionary AudioRenderCapacityOptions { - double updateInterval = 1; + double updateInterval = 1; }; [Exposed=Window] interface AudioRenderCapacityEvent : Event { - constructor (DOMString type, optional AudioRenderCapacityEventInit eventInitDict = {}); - readonly attribute double timestamp; - readonly attribute double averageLoad; - readonly attribute double peakLoad; - readonly attribute double underrunRatio; + constructor (DOMString type, optional AudioRenderCapacityEventInit eventInitDict = {}); + readonly attribute double timestamp; + readonly attribute double averageLoad; + readonly attribute double peakLoad; + readonly attribute double underrunRatio; }; dictionary AudioRenderCapacityEventInit : EventInit { - double timestamp = 0; - double averageLoad = 0; - double peakLoad = 0; - double underrunRatio = 0; + double timestamp = 0; + double averageLoad = 0; + double peakLoad = 0; + double underrunRatio = 0; }; [Exposed=Window] interface OfflineAudioContext : BaseAudioContext { - constructor(OfflineAudioContextOptions contextOptions); - constructor(unsigned long numberOfChannels, unsigned long length, float sampleRate); - Promise<AudioBuffer> startRendering(); - Promise<undefined> resume(); - Promise<undefined> suspend(double suspendTime); - readonly attribute unsigned long length; - attribute EventHandler oncomplete; + constructor(OfflineAudioContextOptions contextOptions); + constructor(unsigned long numberOfChannels, unsigned long length, float sampleRate); + Promise<AudioBuffer> startRendering(); + Promise<undefined> resume(); + Promise<undefined> suspend(double suspendTime); + readonly attribute unsigned long length; + attribute EventHandler oncomplete; }; dictionary OfflineAudioContextOptions { - unsigned long numberOfChannels = 1; - required unsigned long length; - required float sampleRate; + unsigned long numberOfChannels = 1; + required unsigned long length; + required float sampleRate; }; [Exposed=Window] interface OfflineAudioCompletionEvent : Event { - constructor (DOMString type, OfflineAudioCompletionEventInit eventInitDict); - readonly attribute AudioBuffer renderedBuffer; + constructor (DOMString type, OfflineAudioCompletionEventInit eventInitDict); + readonly attribute AudioBuffer renderedBuffer; }; dictionary OfflineAudioCompletionEventInit : EventInit { - required AudioBuffer renderedBuffer; + required AudioBuffer renderedBuffer; }; [Exposed=Window] interface AudioBuffer { - constructor (AudioBufferOptions options); - readonly attribute float sampleRate; - readonly attribute unsigned long length; - readonly attribute double duration; - readonly attribute unsigned long numberOfChannels; - Float32Array getChannelData (unsigned long channel); - undefined copyFromChannel (Float32Array destination, + constructor (AudioBufferOptions options); + readonly attribute float sampleRate; + readonly attribute unsigned long length; + readonly attribute double duration; + readonly attribute unsigned long numberOfChannels; + Float32Array getChannelData (unsigned long channel); + undefined copyFromChannel (Float32Array destination, + unsigned long channelNumber, + optional unsigned long bufferOffset = 0); + undefined copyToChannel (Float32Array source, unsigned long channelNumber, optional unsigned long bufferOffset = 0); - undefined copyToChannel (Float32Array source, - unsigned long channelNumber, - optional unsigned long bufferOffset = 0); }; dictionary AudioBufferOptions { - unsigned long numberOfChannels = 1; - required unsigned long length; - required float sampleRate; + unsigned long numberOfChannels = 1; + required unsigned long length; + required float sampleRate; }; [Exposed=Window] interface AudioNode : EventTarget { - AudioNode connect (AudioNode destinationNode, - optional unsigned long output = 0, - optional unsigned long input = 0); - undefined connect (AudioParam destinationParam, optional unsigned long output = 0); - undefined disconnect (); - undefined disconnect (unsigned long output); - undefined disconnect (AudioNode destinationNode); - undefined disconnect (AudioNode destinationNode, unsigned long output); - undefined disconnect (AudioNode destinationNode, - unsigned long output, - unsigned long input); - undefined disconnect (AudioParam destinationParam); - undefined disconnect (AudioParam destinationParam, unsigned long output); - readonly attribute BaseAudioContext context; - readonly attribute unsigned long numberOfInputs; - readonly attribute unsigned long numberOfOutputs; - attribute unsigned long channelCount; - attribute ChannelCountMode channelCountMode; - attribute ChannelInterpretation channelInterpretation; + AudioNode connect (AudioNode destinationNode, + optional unsigned long output = 0, + optional unsigned long input = 0); + undefined connect (AudioParam destinationParam, optional unsigned long output = 0); + undefined disconnect (); + undefined disconnect (unsigned long output); + undefined disconnect (AudioNode destinationNode); + undefined disconnect (AudioNode destinationNode, unsigned long output); + undefined disconnect (AudioNode destinationNode, + unsigned long output, + unsigned long input); + undefined disconnect (AudioParam destinationParam); + undefined disconnect (AudioParam destinationParam, unsigned long output); + readonly attribute BaseAudioContext context; + readonly attribute unsigned long numberOfInputs; + readonly attribute unsigned long numberOfOutputs; + attribute unsigned long channelCount; + attribute ChannelCountMode channelCountMode; + attribute ChannelInterpretation channelInterpretation; }; enum ChannelCountMode { - "max", - "clamped-max", - "explicit" + "max", + "clamped-max", + "explicit" }; enum ChannelInterpretation { - "speakers", - "discrete" + "speakers", + "discrete" }; dictionary AudioNodeOptions { - unsigned long channelCount; - ChannelCountMode channelCountMode; - ChannelInterpretation channelInterpretation; + unsigned long channelCount; + ChannelCountMode channelCountMode; + ChannelInterpretation channelInterpretation; }; enum AutomationRate { - "a-rate", - "k-rate" + "a-rate", + "k-rate" }; [Exposed=Window] interface AudioParam { - attribute float value; - attribute AutomationRate automationRate; - readonly attribute float defaultValue; - readonly attribute float minValue; - readonly attribute float maxValue; - AudioParam setValueAtTime (float value, double startTime); - AudioParam linearRampToValueAtTime (float value, double endTime); - AudioParam exponentialRampToValueAtTime (float value, double endTime); - AudioParam setTargetAtTime (float target, double startTime, float timeConstant); - AudioParam setValueCurveAtTime (sequence<float> values, - double startTime, - double duration); - AudioParam cancelScheduledValues (double cancelTime); - AudioParam cancelAndHoldAtTime (double cancelTime); + attribute float value; + attribute AutomationRate automationRate; + readonly attribute float defaultValue; + readonly attribute float minValue; + readonly attribute float maxValue; + AudioParam setValueAtTime (float value, double startTime); + AudioParam linearRampToValueAtTime (float value, double endTime); + AudioParam exponentialRampToValueAtTime (float value, double endTime); + AudioParam setTargetAtTime (float target, double startTime, float timeConstant); + AudioParam setValueCurveAtTime (sequence<float> values, + double startTime, + double duration); + AudioParam cancelScheduledValues (double cancelTime); + AudioParam cancelAndHoldAtTime (double cancelTime); }; [Exposed=Window] interface AudioScheduledSourceNode : AudioNode { - attribute EventHandler onended; - undefined start(optional double when = 0); - undefined stop(optional double when = 0); + attribute EventHandler onended; + undefined start(optional double when = 0); + undefined stop(optional double when = 0); }; [Exposed=Window] interface AnalyserNode : AudioNode { - constructor (BaseAudioContext context, optional AnalyserOptions options = {}); - undefined getFloatFrequencyData (Float32Array array); - undefined getByteFrequencyData (Uint8Array array); - undefined getFloatTimeDomainData (Float32Array array); - undefined getByteTimeDomainData (Uint8Array array); - attribute unsigned long fftSize; - readonly attribute unsigned long frequencyBinCount; - attribute double minDecibels; - attribute double maxDecibels; - attribute double smoothingTimeConstant; + constructor (BaseAudioContext context, optional AnalyserOptions options = {}); + undefined getFloatFrequencyData (Float32Array array); + undefined getByteFrequencyData (Uint8Array array); + undefined getFloatTimeDomainData (Float32Array array); + undefined getByteTimeDomainData (Uint8Array array); + attribute unsigned long fftSize; + readonly attribute unsigned long frequencyBinCount; + attribute double minDecibels; + attribute double maxDecibels; + attribute double smoothingTimeConstant; }; dictionary AnalyserOptions : AudioNodeOptions { - unsigned long fftSize = 2048; - double maxDecibels = -30; - double minDecibels = -100; - double smoothingTimeConstant = 0.8; + unsigned long fftSize = 2048; + double maxDecibels = -30; + double minDecibels = -100; + double smoothingTimeConstant = 0.8; }; [Exposed=Window] interface AudioBufferSourceNode : AudioScheduledSourceNode { - constructor (BaseAudioContext context, - optional AudioBufferSourceOptions options = {}); - attribute AudioBuffer? buffer; - readonly attribute AudioParam playbackRate; - readonly attribute AudioParam detune; - attribute boolean loop; - attribute double loopStart; - attribute double loopEnd; - undefined start (optional double when = 0, - optional double offset, - optional double duration); + constructor (BaseAudioContext context, + optional AudioBufferSourceOptions options = {}); + attribute AudioBuffer? buffer; + readonly attribute AudioParam playbackRate; + readonly attribute AudioParam detune; + attribute boolean loop; + attribute double loopStart; + attribute double loopEnd; + undefined start (optional double when = 0, + optional double offset, + optional double duration); }; dictionary AudioBufferSourceOptions { - AudioBuffer? buffer; - float detune = 0; - boolean loop = false; - double loopEnd = 0; - double loopStart = 0; - float playbackRate = 1; + AudioBuffer? buffer; + float detune = 0; + boolean loop = false; + double loopEnd = 0; + double loopStart = 0; + float playbackRate = 1; }; [Exposed=Window] interface AudioDestinationNode : AudioNode { - readonly attribute unsigned long maxChannelCount; + readonly attribute unsigned long maxChannelCount; }; [Exposed=Window] interface AudioListener { - readonly attribute AudioParam positionX; - readonly attribute AudioParam positionY; - readonly attribute AudioParam positionZ; - readonly attribute AudioParam forwardX; - readonly attribute AudioParam forwardY; - readonly attribute AudioParam forwardZ; - readonly attribute AudioParam upX; - readonly attribute AudioParam upY; - readonly attribute AudioParam upZ; - undefined setPosition (float x, float y, float z); - undefined setOrientation (float x, float y, float z, float xUp, float yUp, float zUp); + readonly attribute AudioParam positionX; + readonly attribute AudioParam positionY; + readonly attribute AudioParam positionZ; + readonly attribute AudioParam forwardX; + readonly attribute AudioParam forwardY; + readonly attribute AudioParam forwardZ; + readonly attribute AudioParam upX; + readonly attribute AudioParam upY; + readonly attribute AudioParam upZ; + undefined setPosition (float x, float y, float z); + undefined setOrientation (float x, float y, float z, float xUp, float yUp, float zUp); }; [Exposed=Window] interface AudioProcessingEvent : Event { - constructor (DOMString type, AudioProcessingEventInit eventInitDict); - readonly attribute double playbackTime; - readonly attribute AudioBuffer inputBuffer; - readonly attribute AudioBuffer outputBuffer; + constructor (DOMString type, AudioProcessingEventInit eventInitDict); + readonly attribute double playbackTime; + readonly attribute AudioBuffer inputBuffer; + readonly attribute AudioBuffer outputBuffer; }; dictionary AudioProcessingEventInit : EventInit { - required double playbackTime; - required AudioBuffer inputBuffer; - required AudioBuffer outputBuffer; + required double playbackTime; + required AudioBuffer inputBuffer; + required AudioBuffer outputBuffer; }; enum BiquadFilterType { - "lowpass", - "highpass", - "bandpass", - "lowshelf", - "highshelf", - "peaking", - "notch", - "allpass" + "lowpass", + "highpass", + "bandpass", + "lowshelf", + "highshelf", + "peaking", + "notch", + "allpass" }; [Exposed=Window] interface BiquadFilterNode : AudioNode { - constructor (BaseAudioContext context, optional BiquadFilterOptions options = {}); - attribute BiquadFilterType type; - readonly attribute AudioParam frequency; - readonly attribute AudioParam detune; - readonly attribute AudioParam Q; - readonly attribute AudioParam gain; - undefined getFrequencyResponse (Float32Array frequencyHz, - Float32Array magResponse, - Float32Array phaseResponse); + constructor (BaseAudioContext context, optional BiquadFilterOptions options = {}); + attribute BiquadFilterType type; + readonly attribute AudioParam frequency; + readonly attribute AudioParam detune; + readonly attribute AudioParam Q; + readonly attribute AudioParam gain; + undefined getFrequencyResponse (Float32Array frequencyHz, + Float32Array magResponse, + Float32Array phaseResponse); }; dictionary BiquadFilterOptions : AudioNodeOptions { - BiquadFilterType type = "lowpass"; - float Q = 1; - float detune = 0; - float frequency = 350; - float gain = 0; + BiquadFilterType type = "lowpass"; + float Q = 1; + float detune = 0; + float frequency = 350; + float gain = 0; }; [Exposed=Window] interface ChannelMergerNode : AudioNode { - constructor (BaseAudioContext context, optional ChannelMergerOptions options = {}); + constructor (BaseAudioContext context, optional ChannelMergerOptions options = {}); }; dictionary ChannelMergerOptions : AudioNodeOptions { - unsigned long numberOfInputs = 6; + unsigned long numberOfInputs = 6; }; [Exposed=Window] interface ChannelSplitterNode : AudioNode { - constructor (BaseAudioContext context, optional ChannelSplitterOptions options = {}); + constructor (BaseAudioContext context, optional ChannelSplitterOptions options = {}); }; dictionary ChannelSplitterOptions : AudioNodeOptions { - unsigned long numberOfOutputs = 6; + unsigned long numberOfOutputs = 6; }; [Exposed=Window] interface ConstantSourceNode : AudioScheduledSourceNode { - constructor (BaseAudioContext context, optional ConstantSourceOptions options = {}); - readonly attribute AudioParam offset; + constructor (BaseAudioContext context, optional ConstantSourceOptions options = {}); + readonly attribute AudioParam offset; }; dictionary ConstantSourceOptions { - float offset = 1; + float offset = 1; }; [Exposed=Window] interface ConvolverNode : AudioNode { - constructor (BaseAudioContext context, optional ConvolverOptions options = {}); - attribute AudioBuffer? buffer; - attribute boolean normalize; + constructor (BaseAudioContext context, optional ConvolverOptions options = {}); + attribute AudioBuffer? buffer; + attribute boolean normalize; }; dictionary ConvolverOptions : AudioNodeOptions { - AudioBuffer? buffer; - boolean disableNormalization = false; + AudioBuffer? buffer; + boolean disableNormalization = false; }; [Exposed=Window] interface DelayNode : AudioNode { - constructor (BaseAudioContext context, optional DelayOptions options = {}); - readonly attribute AudioParam delayTime; + constructor (BaseAudioContext context, optional DelayOptions options = {}); + readonly attribute AudioParam delayTime; }; dictionary DelayOptions : AudioNodeOptions { - double maxDelayTime = 1; - double delayTime = 0; + double maxDelayTime = 1; + double delayTime = 0; }; [Exposed=Window] interface DynamicsCompressorNode : AudioNode { - constructor (BaseAudioContext context, - optional DynamicsCompressorOptions options = {}); - readonly attribute AudioParam threshold; - readonly attribute AudioParam knee; - readonly attribute AudioParam ratio; - readonly attribute float reduction; - readonly attribute AudioParam attack; - readonly attribute AudioParam release; + constructor (BaseAudioContext context, + optional DynamicsCompressorOptions options = {}); + readonly attribute AudioParam threshold; + readonly attribute AudioParam knee; + readonly attribute AudioParam ratio; + readonly attribute float reduction; + readonly attribute AudioParam attack; + readonly attribute AudioParam release; }; dictionary DynamicsCompressorOptions : AudioNodeOptions { - float attack = 0.003; - float knee = 30; - float ratio = 12; - float release = 0.25; - float threshold = -24; + float attack = 0.003; + float knee = 30; + float ratio = 12; + float release = 0.25; + float threshold = -24; }; [Exposed=Window] interface GainNode : AudioNode { - constructor (BaseAudioContext context, optional GainOptions options = {}); - readonly attribute AudioParam gain; + constructor (BaseAudioContext context, optional GainOptions options = {}); + readonly attribute AudioParam gain; }; dictionary GainOptions : AudioNodeOptions { - float gain = 1.0; + float gain = 1.0; }; [Exposed=Window] interface IIRFilterNode : AudioNode { - constructor (BaseAudioContext context, IIRFilterOptions options); - undefined getFrequencyResponse (Float32Array frequencyHz, - Float32Array magResponse, - Float32Array phaseResponse); + constructor (BaseAudioContext context, IIRFilterOptions options); + undefined getFrequencyResponse (Float32Array frequencyHz, + Float32Array magResponse, + Float32Array phaseResponse); }; dictionary IIRFilterOptions : AudioNodeOptions { - required sequence<double> feedforward; - required sequence<double> feedback; + required sequence<double> feedforward; + required sequence<double> feedback; }; [Exposed=Window] interface MediaElementAudioSourceNode : AudioNode { - constructor (AudioContext context, MediaElementAudioSourceOptions options); - [SameObject] readonly attribute HTMLMediaElement mediaElement; + constructor (AudioContext context, MediaElementAudioSourceOptions options); + [SameObject] readonly attribute HTMLMediaElement mediaElement; }; dictionary MediaElementAudioSourceOptions { - required HTMLMediaElement mediaElement; + required HTMLMediaElement mediaElement; }; [Exposed=Window] interface MediaStreamAudioDestinationNode : AudioNode { - constructor (AudioContext context, optional AudioNodeOptions options = {}); - readonly attribute MediaStream stream; + constructor (AudioContext context, optional AudioNodeOptions options = {}); + readonly attribute MediaStream stream; }; [Exposed=Window] interface MediaStreamAudioSourceNode : AudioNode { - constructor (AudioContext context, MediaStreamAudioSourceOptions options); - [SameObject] readonly attribute MediaStream mediaStream; + constructor (AudioContext context, MediaStreamAudioSourceOptions options); + [SameObject] readonly attribute MediaStream mediaStream; }; dictionary MediaStreamAudioSourceOptions { - required MediaStream mediaStream; + required MediaStream mediaStream; }; [Exposed=Window] interface MediaStreamTrackAudioSourceNode : AudioNode { - constructor (AudioContext context, MediaStreamTrackAudioSourceOptions options); + constructor (AudioContext context, MediaStreamTrackAudioSourceOptions options); }; dictionary MediaStreamTrackAudioSourceOptions { - required MediaStreamTrack mediaStreamTrack; + required MediaStreamTrack mediaStreamTrack; }; enum OscillatorType { - "sine", - "square", - "sawtooth", - "triangle", - "custom" + "sine", + "square", + "sawtooth", + "triangle", + "custom" }; [Exposed=Window] interface OscillatorNode : AudioScheduledSourceNode { - constructor (BaseAudioContext context, optional OscillatorOptions options = {}); - attribute OscillatorType type; - readonly attribute AudioParam frequency; - readonly attribute AudioParam detune; - undefined setPeriodicWave (PeriodicWave periodicWave); + constructor (BaseAudioContext context, optional OscillatorOptions options = {}); + attribute OscillatorType type; + readonly attribute AudioParam frequency; + readonly attribute AudioParam detune; + undefined setPeriodicWave (PeriodicWave periodicWave); }; dictionary OscillatorOptions : AudioNodeOptions { - OscillatorType type = "sine"; - float frequency = 440; - float detune = 0; - PeriodicWave periodicWave; + OscillatorType type = "sine"; + float frequency = 440; + float detune = 0; + PeriodicWave periodicWave; }; enum PanningModelType { - "equalpower", - "HRTF" + "equalpower", + "HRTF" }; enum DistanceModelType { - "linear", - "inverse", - "exponential" + "linear", + "inverse", + "exponential" }; [Exposed=Window] interface PannerNode : AudioNode { - constructor (BaseAudioContext context, optional PannerOptions options = {}); - attribute PanningModelType panningModel; - readonly attribute AudioParam positionX; - readonly attribute AudioParam positionY; - readonly attribute AudioParam positionZ; - readonly attribute AudioParam orientationX; - readonly attribute AudioParam orientationY; - readonly attribute AudioParam orientationZ; - attribute DistanceModelType distanceModel; - attribute double refDistance; - attribute double maxDistance; - attribute double rolloffFactor; - attribute double coneInnerAngle; - attribute double coneOuterAngle; - attribute double coneOuterGain; - undefined setPosition (float x, float y, float z); - undefined setOrientation (float x, float y, float z); + constructor (BaseAudioContext context, optional PannerOptions options = {}); + attribute PanningModelType panningModel; + readonly attribute AudioParam positionX; + readonly attribute AudioParam positionY; + readonly attribute AudioParam positionZ; + readonly attribute AudioParam orientationX; + readonly attribute AudioParam orientationY; + readonly attribute AudioParam orientationZ; + attribute DistanceModelType distanceModel; + attribute double refDistance; + attribute double maxDistance; + attribute double rolloffFactor; + attribute double coneInnerAngle; + attribute double coneOuterAngle; + attribute double coneOuterGain; + undefined setPosition (float x, float y, float z); + undefined setOrientation (float x, float y, float z); }; dictionary PannerOptions : AudioNodeOptions { - PanningModelType panningModel = "equalpower"; - DistanceModelType distanceModel = "inverse"; - float positionX = 0; - float positionY = 0; - float positionZ = 0; - float orientationX = 1; - float orientationY = 0; - float orientationZ = 0; - double refDistance = 1; - double maxDistance = 10000; - double rolloffFactor = 1; - double coneInnerAngle = 360; - double coneOuterAngle = 360; - double coneOuterGain = 0; + PanningModelType panningModel = "equalpower"; + DistanceModelType distanceModel = "inverse"; + float positionX = 0; + float positionY = 0; + float positionZ = 0; + float orientationX = 1; + float orientationY = 0; + float orientationZ = 0; + double refDistance = 1; + double maxDistance = 10000; + double rolloffFactor = 1; + double coneInnerAngle = 360; + double coneOuterAngle = 360; + double coneOuterGain = 0; }; [Exposed=Window] interface PeriodicWave { - constructor (BaseAudioContext context, optional PeriodicWaveOptions options = {}); + constructor (BaseAudioContext context, optional PeriodicWaveOptions options = {}); }; dictionary PeriodicWaveConstraints { - boolean disableNormalization = false; + boolean disableNormalization = false; }; dictionary PeriodicWaveOptions : PeriodicWaveConstraints { - sequence<float> real; - sequence<float> imag; + sequence<float> real; + sequence<float> imag; }; [Exposed=Window] interface ScriptProcessorNode : AudioNode { - attribute EventHandler onaudioprocess; - readonly attribute long bufferSize; + attribute EventHandler onaudioprocess; + readonly attribute long bufferSize; }; [Exposed=Window] interface StereoPannerNode : AudioNode { - constructor (BaseAudioContext context, optional StereoPannerOptions options = {}); - readonly attribute AudioParam pan; + constructor (BaseAudioContext context, optional StereoPannerOptions options = {}); + readonly attribute AudioParam pan; }; dictionary StereoPannerOptions : AudioNodeOptions { - float pan = 0; + float pan = 0; }; enum OverSampleType { - "none", - "2x", - "4x" + "none", + "2x", + "4x" }; [Exposed=Window] interface WaveShaperNode : AudioNode { - constructor (BaseAudioContext context, optional WaveShaperOptions options = {}); - attribute Float32Array? curve; - attribute OverSampleType oversample; + constructor (BaseAudioContext context, optional WaveShaperOptions options = {}); + attribute Float32Array? curve; + attribute OverSampleType oversample; }; dictionary WaveShaperOptions : AudioNodeOptions { - sequence<float> curve; - OverSampleType oversample = "none"; + sequence<float> curve; + OverSampleType oversample = "none"; }; [Exposed=Window, SecureContext] @@ -624,40 +624,40 @@ [Global=(Worklet, AudioWorklet), Exposed=AudioWorklet] interface AudioWorkletGlobalScope : WorkletGlobalScope { - undefined registerProcessor (DOMString name, - AudioWorkletProcessorConstructor processorCtor); - readonly attribute unsigned long long currentFrame; - readonly attribute double currentTime; - readonly attribute float sampleRate; - readonly attribute MessagePort port; + undefined registerProcessor (DOMString name, + AudioWorkletProcessorConstructor processorCtor); + readonly attribute unsigned long long currentFrame; + readonly attribute double currentTime; + readonly attribute float sampleRate; + readonly attribute MessagePort port; }; [Exposed=Window] interface AudioParamMap { - readonly maplike<DOMString, AudioParam>; + readonly maplike<DOMString, AudioParam>; }; [Exposed=Window, SecureContext] interface AudioWorkletNode : AudioNode { - constructor (BaseAudioContext context, DOMString name, + constructor (BaseAudioContext context, DOMString name, optional AudioWorkletNodeOptions options = {}); - readonly attribute AudioParamMap parameters; - readonly attribute MessagePort port; - attribute EventHandler onprocessorerror; + readonly attribute AudioParamMap parameters; + readonly attribute MessagePort port; + attribute EventHandler onprocessorerror; }; dictionary AudioWorkletNodeOptions : AudioNodeOptions { - unsigned long numberOfInputs = 1; - unsigned long numberOfOutputs = 1; - sequence<unsigned long> outputChannelCount; - record<DOMString, double> parameterData; - object processorOptions; + unsigned long numberOfInputs = 1; + unsigned long numberOfOutputs = 1; + sequence<unsigned long> outputChannelCount; + record<DOMString, double> parameterData; + object processorOptions; }; [Exposed=AudioWorklet] interface AudioWorkletProcessor { - constructor (); - readonly attribute MessagePort port; + constructor (); + readonly attribute MessagePort port; }; callback AudioWorkletProcessCallback = @@ -666,9 +666,9 @@ object parameters); dictionary AudioParamDescriptor { - required DOMString name; - float defaultValue = 0; - float minValue = -3.4028235e38; - float maxValue = 3.4028235e38; - AutomationRate automationRate = "a-rate"; + required DOMString name; + float defaultValue = 0; + float minValue = -3.4028235e38; + float maxValue = 3.4028235e38; + AutomationRate automationRate = "a-rate"; };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webauthn.idl b/third_party/blink/web_tests/external/wpt/interfaces/webauthn.idl index d35ebbf..ef27322 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/webauthn.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/webauthn.idl
@@ -20,7 +20,7 @@ Base64URLString id; Base64URLString rawId; AuthenticatorAttestationResponseJSON response; - DOMString? authenticatorAttachment; + DOMString? authenticatorAttachment; AuthenticationExtensionsClientOutputsJSON clientExtensionResults; DOMString type; }; @@ -35,7 +35,7 @@ Base64URLString id; Base64URLString rawId; AuthenticatorAssertionResponseJSON response; - DOMString? authenticatorAttachment; + DOMString? authenticatorAttachment; AuthenticationExtensionsClientOutputsJSON clientExtensionResults; DOMString type; };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webgpu.idl b/third_party/blink/web_tests/external/wpt/interfaces/webgpu.idl index f2e038c2..5b4fcc1 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/webgpu.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/webgpu.idl
@@ -815,6 +815,34 @@ required GPUIndex32 shaderLocation; }; +dictionary GPUImageDataLayout { + GPUSize64 offset = 0; + GPUSize32 bytesPerRow; + GPUSize32 rowsPerImage; +}; + +dictionary GPUImageCopyBuffer : GPUImageDataLayout { + required GPUBuffer buffer; +}; + +dictionary GPUImageCopyTexture { + required GPUTexture texture; + GPUIntegerCoordinate mipLevel = 0; + GPUOrigin3D origin = {}; + GPUTextureAspect aspect = "all"; +}; + +dictionary GPUImageCopyTextureTagged : GPUImageCopyTexture { + PredefinedColorSpace colorSpace = "srgb"; + boolean premultipliedAlpha = false; +}; + +dictionary GPUImageCopyExternalImage { + required (ImageBitmap or HTMLVideoElement or HTMLCanvasElement or OffscreenCanvas) source; + GPUOrigin2D origin = {}; + boolean flipY = false; +}; + [Exposed=(Window, DedicatedWorker), SecureContext] interface GPUCommandBuffer { }; @@ -876,34 +904,6 @@ dictionary GPUCommandEncoderDescriptor : GPUObjectDescriptorBase { }; -dictionary GPUImageDataLayout { - GPUSize64 offset = 0; - GPUSize32 bytesPerRow; - GPUSize32 rowsPerImage; -}; - -dictionary GPUImageCopyBuffer : GPUImageDataLayout { - required GPUBuffer buffer; -}; - -dictionary GPUImageCopyTexture { - required GPUTexture texture; - GPUIntegerCoordinate mipLevel = 0; - GPUOrigin3D origin = {}; - GPUTextureAspect aspect = "all"; -}; - -dictionary GPUImageCopyTextureTagged : GPUImageCopyTexture { - PredefinedColorSpace colorSpace = "srgb"; - boolean premultipliedAlpha = false; -}; - -dictionary GPUImageCopyExternalImage { - required (ImageBitmap or HTMLVideoElement or HTMLCanvasElement or OffscreenCanvas) source; - GPUOrigin2D origin = {}; - boolean flipY = false; -}; - interface mixin GPUBindingCommandsMixin { undefined setBindGroup(GPUIndex32 index, GPUBindGroup bindGroup, optional sequence<GPUBufferDynamicOffset> dynamicOffsets = []);
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webnn.idl b/third_party/blink/web_tests/external/wpt/interfaces/webnn.idl index 2f900b5..c8a09aed 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/webnn.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/webnn.idl
@@ -27,8 +27,13 @@ [SecureContext, Exposed=(Window, DedicatedWorker)] interface ML { - MLContext createContext(optional MLContextOptions options = {}); - MLContext createContext(GPUDevice gpuDevice); + Promise<MLContext> createContext(optional MLContextOptions options = {}); + Promise<MLContext> createContext(GPUDevice gpuDevice); + + [Exposed=(DedicatedWorker)] + MLContext createContextSync(optional MLContextOptions options = {}); + [Exposed=(DedicatedWorker)] + MLContext createContextSync(GPUDevice gpuDevice); }; typedef record<DOMString, ArrayBufferView> MLNamedArrayBufferViews; @@ -38,12 +43,12 @@ partial interface MLContext { [Exposed=(DedicatedWorker)] - undefined compute( + undefined computeSync( MLGraph graph, MLNamedArrayBufferViews inputs, MLNamedArrayBufferViews outputs); }; partial interface MLContext { - Promise<undefined> computeAsync( + Promise<undefined> compute( MLGraph graph, MLNamedArrayBufferViews inputs, MLNamedArrayBufferViews outputs); }; @@ -103,12 +108,12 @@ // Create a single-value operand from the specified number of the specified type. MLOperand constant(double value, optional MLOperandType type = "float32"); + // Compile the graph up to the specified output operands asynchronously. + Promise<MLGraph> build(MLNamedOperands outputs); + // Compile the graph up to the specified output operands synchronously. [Exposed=(DedicatedWorker)] - MLGraph build(MLNamedOperands outputs); - - // Compile the graph up to the specified output operands asynchronously. - Promise<MLGraph> buildAsync(MLNamedOperands outputs); + MLGraph buildSync(MLNamedOperands outputs); }; dictionary MLBatchNormalizationOptions { @@ -152,11 +157,11 @@ }; dictionary MLConv2dOptions { - sequence<long> padding; - sequence<long> strides; - sequence<long> dilations; + sequence<unsigned long> padding; + sequence<unsigned long> strides; + sequence<unsigned long> dilations; MLAutoPad autoPad = "explicit"; - long groups = 1; + unsigned long groups = 1; MLInputOperandLayout inputLayout = "nchw"; MLConv2dFilterOperandLayout filterLayout = "oihw"; MLOperand bias; @@ -174,13 +179,13 @@ }; dictionary MLConvTranspose2dOptions { - sequence<long> padding; - sequence<long> strides; - sequence<long> dilations; - sequence<long> outputPadding; - sequence<long> outputSizes; + sequence<unsigned long> padding; + sequence<unsigned long> strides; + sequence<unsigned long> dilations; + sequence<unsigned long> outputPadding; + sequence<unsigned long> outputSizes; MLAutoPad autoPad = "explicit"; - long groups = 1; + unsigned long groups = 1; MLInputOperandLayout inputLayout = "nchw"; MLConvTranspose2dFilterOperandLayout filterLayout = "iohw"; MLOperand bias; @@ -259,7 +264,6 @@ partial interface MLGraphBuilder { sequence<MLOperand> gru(MLOperand input, MLOperand weight, MLOperand recurrentWeight, - long steps, long hiddenSize, optional MLGruOptions options = {}); }; @@ -273,7 +277,6 @@ partial interface MLGraphBuilder { MLOperand gruCell(MLOperand input, MLOperand weight, MLOperand recurrentWeight, - MLOperand hiddenState, long hiddenSize, optional MLGruCellOptions options = {}); }; @@ -301,7 +304,6 @@ partial interface MLGraphBuilder { MLOperand instanceNormalization(MLOperand input, - optional MLInstanceNormalizationOptions options = {}); }; @@ -350,14 +352,14 @@ }; dictionary MLPool2dOptions { - sequence<long> windowDimensions; - sequence<long> padding; - sequence<long> strides; - sequence<long> dilations; + sequence<unsigned long> windowDimensions; + sequence<unsigned long> padding; + sequence<unsigned long> strides; + sequence<unsigned long> dilations; MLAutoPad autoPad = "explicit"; MLInputOperandLayout layout = "nchw"; MLRoundingType roundingType = "floor"; - sequence<long> outputSizes; + sequence<unsigned long> outputSizes; }; partial interface MLGraphBuilder { @@ -397,7 +399,7 @@ dictionary MLResample2dOptions { MLInterpolationMode mode = "nearest-neighbor"; sequence<float> scales; - sequence<long> sizes; + sequence<unsigned long> sizes; sequence<long> axes; }; @@ -406,7 +408,7 @@ }; partial interface MLGraphBuilder { - MLOperand reshape(MLOperand input, sequence<long> newShape); + MLOperand reshape(MLOperand input, sequence<unsigned long?> newShape); }; partial interface MLGraphBuilder {
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webrtc-encoded-transform.idl b/third_party/blink/web_tests/external/wpt/interfaces/webrtc-encoded-transform.idl index f1747f51..13f3999 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/webrtc-encoded-transform.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/webrtc-encoded-transform.idl
@@ -64,15 +64,15 @@ }; dictionary RTCEncodedVideoFrameMetadata { - long long frameId; - sequence<long long> dependencies; + unsigned long long frameId; + sequence<unsigned long long> dependencies; unsigned short width; unsigned short height; - long spatialIndex; - long temporalIndex; + unsigned long spatialIndex; + unsigned long temporalIndex; unsigned long synchronizationSource; octet payloadType; - sequence<unsigned long> contributingSources; + sequence<unsigned long> contributingSources; }; // New interfaces to define encoded video and audio frames. Will eventually
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webrtc-stats.idl b/third_party/blink/web_tests/external/wpt/interfaces/webrtc-stats.idl index 237c7e47..397d783 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/webrtc-stats.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/webrtc-stats.idl
@@ -51,6 +51,7 @@ DOMString remoteId; unsigned long framesDecoded; unsigned long keyFramesDecoded; + unsigned long framesRendered; unsigned long framesDropped; unsigned long frameWidth; unsigned long frameHeight; @@ -137,6 +138,7 @@ DOMString encoderImplementation; boolean powerEfficientEncoder; boolean active; + DOMString scalabilityMode; }; enum RTCQualityLimitationReason { @@ -180,11 +182,11 @@ }; dictionary RTCAudioPlayoutStats : RTCStats { - double synthesizedSamplesDuration; - unsigned long synthesizedSamplesEvents; - double totalSamplesDuration; - double totalPlayoutDelay; - double totalSamplesCount; + double synthesizedSamplesDuration; + unsigned long synthesizedSamplesEvents; + double totalSamplesDuration; + double totalPlayoutDelay; + unsigned long long totalSamplesCount; }; dictionary RTCPeerConnectionStats : RTCStats {
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webtransport.idl b/third_party/blink/web_tests/external/wpt/interfaces/webtransport.idl index 1aa5a51..ba70580 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/webtransport.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/webtransport.idl
@@ -28,11 +28,13 @@ readonly attribute WebTransportDatagramDuplexStream datagrams; - Promise<WebTransportBidirectionalStream> createBidirectionalStream(); + Promise<WebTransportBidirectionalStream> createBidirectionalStream( + optional WebTransportSendStreamOptions options = {}); /* a ReadableStream of WebTransportBidirectionalStream objects */ readonly attribute ReadableStream incomingBidirectionalStreams; - Promise<WebTransportSendStream> createUnidirectionalStream(); + Promise<WebTransportSendStream> createUnidirectionalStream( + optional WebTransportSendStreamOptions options = {}); /* a ReadableStream of WebTransportReceiveStream objects */ readonly attribute ReadableStream incomingUnidirectionalStreams; }; @@ -63,7 +65,11 @@ dictionary WebTransportCloseInfo { unsigned long closeCode = 0; - DOMString reason = ""; + USVString reason = ""; +}; + +dictionary WebTransportSendStreamOptions { + long long? sendOrder = null; }; dictionary WebTransportStats { @@ -88,7 +94,7 @@ unsigned long long lostOutgoing; }; -[Exposed=(Window,Worker), SecureContext] +[Exposed=(Window,Worker), SecureContext, Transferable] interface WebTransportSendStream : WritableStream { Promise<WebTransportSendStreamStats> getStats(); }; @@ -100,7 +106,7 @@ unsigned long long bytesAcknowledged; }; -[Exposed=(Window,Worker), SecureContext] +[Exposed=(Window,Worker), SecureContext, Transferable] interface WebTransportReceiveStream : ReadableStream { Promise<WebTransportReceiveStreamStats> getStats(); };
diff --git a/third_party/blink/web_tests/external/wpt/intersection-observer/cross-origin-iframe.sub.html.ini b/third_party/blink/web_tests/external/wpt/intersection-observer/cross-origin-iframe.sub.html.ini index 547df29..07d81d6 100644 --- a/third_party/blink/web_tests/external/wpt/intersection-observer/cross-origin-iframe.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/intersection-observer/cross-origin-iframe.sub.html.ini
@@ -1,15 +1,5 @@ [cross-origin-iframe.sub.html] [topDocument.scrollingElement.scrollTop = 200] expected: - if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [PASS, FAIL] if (os == "linux") and (flag_specific == "") and (product == "chrome"): FAIL if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): FAIL - - [iframeDocument.scrollingElement.scrollTop = 250] - expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] - - [topDocument.scrollingElement.scrollTop = 100] - expected: - if (flag_specific == "") and (product == "content_shell") and (os == "linux"): FAIL - if (flag_specific == "") and (product == "content_shell") and (os == "win"): [FAIL, PASS]
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-cross-origin-tao-animated-image.tentative.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-cross-origin-tao-animated-image.tentative.html.ini deleted file mode 100644 index 1cd483b..0000000 --- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-cross-origin-tao-animated-image.tentative.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[observe-cross-origin-tao-animated-image.tentative.html] - expected: - if flag_specific == "disable-site-isolation-trials": CRASH
diff --git a/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-dataChange.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/cross-origin-image.sub.html.ini similarity index 70% rename from third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-dataChange.html.ini rename to third_party/blink/web_tests/external/wpt/largest-contentful-paint/cross-origin-image.sub.html.ini index c1f1d46..c890a02a 100644 --- a/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-dataChange.html.ini +++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/cross-origin-image.sub.html.ini
@@ -1,3 +1,3 @@ -[Range-mutations-dataChange.html] +[cross-origin-image.sub.html] expected: if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html.ini index 7d56e93..db9b723 100644 --- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html.ini +++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html.ini
@@ -1,5 +1,5 @@ [first-paint-equals-lcp-text.html] [FCP and LCP are the same when there is a single text element in the page.] expected: - if product == "chrome": PASS + if product == "chrome": [FAIL, PASS] FAIL
diff --git a/third_party/blink/web_tests/external/wpt/lifecycle/freeze.html.ini b/third_party/blink/web_tests/external/wpt/lifecycle/freeze.html.ini index 38d7ada..a184acb 100644 --- a/third_party/blink/web_tests/external/wpt/lifecycle/freeze.html.ini +++ b/third_party/blink/web_tests/external/wpt/lifecycle/freeze.html.ini
@@ -2,4 +2,4 @@ [Test freeze callback.] expected: if (flag_specific == "") and (os == "linux") and (product == "chrome"): FAIL - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] + if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-absent-final-absent.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-absent-final-absent.h2.window.js.ini index d55450e..08b5950 100644 --- a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-absent-final-absent.h2.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-absent-final-absent.h2.window.js.ini
@@ -1,4 +1,2 @@ [csp-early-hints-absent-final-absent.h2.window.html] - expected: - if product == "chrome": [OK, ERROR] - ERROR + expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-allowed-final-absent.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-allowed-final-absent.h2.window.js.ini index 989e58b..c53530f1 100644 --- a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-allowed-final-absent.h2.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-allowed-final-absent.h2.window.js.ini
@@ -1,4 +1,4 @@ [csp-early-hints-allowed-final-absent.h2.window.html] expected: - if product == "chrome": OK + if product == "chrome": [OK, ERROR] ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-disallowed.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-disallowed.h2.window.js.ini index 3e11622..2aa08d2c 100644 --- a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-disallowed.h2.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-disallowed.h2.window.js.ini
@@ -1,4 +1,4 @@ [csp-early-hints-disallowed-final-disallowed.h2.window.html] expected: - if product == "chrome": OK + if product == "chrome": [OK, ERROR] ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-without-as.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-without-as.h2.window.js.ini index 6ac50adc..ed8057a6 100644 --- a/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-without-as.h2.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-without-as.h2.window.js.ini
@@ -1,4 +1,2 @@ [preload-without-as.h2.window.html] - expected: - if product == "chrome": [OK, ERROR] - ERROR + expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-cross-origin.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-cross-origin.h2.window.js.ini index 44a1ffc..6210ef7 100644 --- a/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-cross-origin.h2.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-cross-origin.h2.window.js.ini
@@ -1,4 +1,4 @@ [redirect-cross-origin.h2.window.html] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": OK ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-same-origin-between-early-hints.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-same-origin-between-early-hints.h2.window.js.ini index 66bceec..33dd97a 100644 --- a/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-same-origin-between-early-hints.h2.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-same-origin-between-early-hints.h2.window.js.ini
@@ -1,4 +1,4 @@ [redirect-same-origin-between-early-hints.h2.window.html] expected: - if product == "chrome": OK + if product == "chrome": [OK, ERROR] ERROR
diff --git a/third_party/blink/web_tests/external/wpt/longtask-timing/longtask-in-sibling-iframe-crossorigin.html.ini b/third_party/blink/web_tests/external/wpt/longtask-timing/longtask-in-sibling-iframe-crossorigin.html.ini index 9aec8da..1281282 100644 --- a/third_party/blink/web_tests/external/wpt/longtask-timing/longtask-in-sibling-iframe-crossorigin.html.ini +++ b/third_party/blink/web_tests/external/wpt/longtask-timing/longtask-in-sibling-iframe-crossorigin.html.ini
@@ -2,4 +2,3 @@ [Performance longtask entries from cross-origin iframe are observable in its sibling.] expected: if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] - if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/ignored-properties-001.html.ini b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/ignored-properties-001.html.ini index 72e2809..f779190 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/ignored-properties-001.html.ini +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/ignored-properties-001.html.ini
@@ -1,4 +1,6 @@ [ignored-properties-001.html] + expected: + if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT] [maction layout is not affected by width: 100px !important; height: 200px !important;] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/media-source/mediasource-avtracks.html.ini b/third_party/blink/web_tests/external/wpt/media-source/mediasource-avtracks.html.ini index 395d921f..cf16bf5 100644 --- a/third_party/blink/web_tests/external/wpt/media-source/mediasource-avtracks.html.ini +++ b/third_party/blink/web_tests/external/wpt/media-source/mediasource-avtracks.html.ini
@@ -4,5 +4,4 @@ [Media tracks must be removed when the SourceBuffer is removed from the MediaSource] expected: - if (flag_specific == "") and (os == "win"): FAIL - if flag_specific == "disable-layout-ng": FAIL + if os == "win": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/media-source/mediasource-duration.html.ini b/third_party/blink/web_tests/external/wpt/media-source/mediasource-duration.html.ini index e23991a4..cbf0c1c 100644 --- a/third_party/blink/web_tests/external/wpt/media-source/mediasource-duration.html.ini +++ b/third_party/blink/web_tests/external/wpt/media-source/mediasource-duration.html.ini
@@ -3,3 +3,10 @@ if (flag_specific == "") and (os == "linux") and (product == "chrome"): OK if (flag_specific == "") and (os == "win"): OK ERROR + [Test setting same duration multiple times does not fire duplicate durationchange] + expected: + if flag_specific == "disable-layout-ng": FAIL + + [Test seek starts on duration truncation below currentTime] + expected: + if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/navigation-api/navigation-methods/return-value/navigate-initial-about-blank.html.ini b/third_party/blink/web_tests/external/wpt/navigation-api/navigation-methods/return-value/navigate-initial-about-blank.html.ini new file mode 100644 index 0000000..9ae2538 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/navigation-api/navigation-methods/return-value/navigate-initial-about-blank.html.ini
@@ -0,0 +1,3 @@ +[navigate-initial-about-blank.html] + expected: + if flag_specific == "disable-site-isolation-trials": [ERROR, OK]
diff --git a/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html.ini b/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html.ini index 81269fb..61cb165 100644 --- a/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html.ini +++ b/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html.ini
@@ -1,4 +1,4 @@ [after-transition-intercept-handler-modifies.html] [scroll: state should be saved before intercept handlers run] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/navigation-timing/test-performance-attributes.sub.html.ini b/third_party/blink/web_tests/external/wpt/navigation-timing/test-performance-attributes.sub.html.ini index d0a1c61..d7b47d0 100644 --- a/third_party/blink/web_tests/external/wpt/navigation-timing/test-performance-attributes.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/navigation-timing/test-performance-attributes.sub.html.ini
@@ -1,4 +1,4 @@ [test-performance-attributes.sub.html] [Check that performance.timing has reasonable values for secureConnectionStart and other attributes] expected: - if product == "chrome": [PASS, FAIL] + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/pending-beacon/pending_beacon-sendondiscard.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/pending-beacon/pending_beacon-sendondiscard.tentative.https.window.js.ini index 0afa3eb6..f2617066 100644 --- a/third_party/blink/web_tests/external/wpt/pending-beacon/pending_beacon-sendondiscard.tentative.https.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/pending-beacon/pending_beacon-sendondiscard.tentative.https.window.js.ini
@@ -3,8 +3,8 @@ if product == "chrome": ERROR [A discarded document does not send an already sent beacon.] expected: - if os == "win": FAIL + if (flag_specific == "") and (os == "linux"): [PASS, FAIL] [A discarded document sends all its beacons of which backgroundTimeouts are\n not default.] expected: - if (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (flag_specific == "") and (os == "linux"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini b/third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini index af1aaca9..0316ca75 100644 --- a/third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini
@@ -1,5 +1,6 @@ [performance-navigation-timing-same-origin-bfcache.tentative.window.html] [RemoteContextHelper navigation using BFCache] expected: - if (flag_specific == "") and (os == "linux") and (product == "chrome"): FAIL - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if (flag_specific == "") and (os == "win"): [PASS, FAIL] + if flag_specific == "disable-layout-ng": PASS + FAIL
diff --git a/third_party/blink/web_tests/external/wpt/permissions-policy/experimental-features/unload-allowed-by-default.tentative.window.js.ini b/third_party/blink/web_tests/external/wpt/permissions-policy/experimental-features/unload-allowed-by-default.tentative.window.js.ini new file mode 100644 index 0000000..6360a03d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/permissions-policy/experimental-features/unload-allowed-by-default.tentative.window.js.ini
@@ -0,0 +1,3 @@ +[unload-allowed-by-default.tentative.window.html] + expected: + if os == "win": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/reporting/reporting-isolated-across-navigations.https.sub.html.ini b/third_party/blink/web_tests/external/wpt/reporting/reporting-isolated-across-navigations.https.sub.html.ini index ff4e0da..a20d664 100644 --- a/third_party/blink/web_tests/external/wpt/reporting/reporting-isolated-across-navigations.https.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/reporting/reporting-isolated-across-navigations.https.sub.html.ini
@@ -1,5 +1,4 @@ [reporting-isolated-across-navigations.https.sub.html] [Reports should be sent to the correct endpoints] expected: - if (product == "content_shell") and (flag_specific == "") and (os == "linux"): FAIL if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/requestidlecallback/callback-exception.html.ini b/third_party/blink/web_tests/external/wpt/requestidlecallback/callback-exception.html.ini new file mode 100644 index 0000000..a3b7256 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/requestidlecallback/callback-exception.html.ini
@@ -0,0 +1,3 @@ +[callback-exception.html] + expected: + if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/requestidlecallback/deadline-max-rAF-dynamic.html.ini b/third_party/blink/web_tests/external/wpt/requestidlecallback/deadline-max-rAF-dynamic.html.ini index f827d62..f581f89 100644 --- a/third_party/blink/web_tests/external/wpt/requestidlecallback/deadline-max-rAF-dynamic.html.ini +++ b/third_party/blink/web_tests/external/wpt/requestidlecallback/deadline-max-rAF-dynamic.html.ini
@@ -1,3 +1,3 @@ [deadline-max-rAF-dynamic.html] expected: - if (flag_specific == "") and (os == "win"): [OK, TIMEOUT] + if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/requestidlecallback/deadline-max-rAF.html.ini b/third_party/blink/web_tests/external/wpt/requestidlecallback/deadline-max-rAF.html.ini new file mode 100644 index 0000000..ff1add8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/requestidlecallback/deadline-max-rAF.html.ini
@@ -0,0 +1,3 @@ +[deadline-max-rAF.html] + expected: + if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/content-type-parsing.html.ini b/third_party/blink/web_tests/external/wpt/resource-timing/content-type-parsing.html.ini index affb928e4..d64197bd 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/content-type-parsing.html.ini +++ b/third_party/blink/web_tests/external/wpt/resource-timing/content-type-parsing.html.ini
@@ -22,12 +22,14 @@ [content-type 9 : text/html;charset=gbk,text/plain,text/html] expected: - if os == "win": PASS + if (flag_specific == "") and (os == "linux") and (product == "chrome"): PASS + if (flag_specific == "") and (os == "win"): PASS FAIL [content-type 10 : text/plain,*/*] expected: - if os == "win": PASS + if (flag_specific == "") and (os == "linux") and (product == "chrome"): PASS + if (flag_specific == "") and (os == "win"): PASS FAIL [content-type 11 : text/html,*/*] @@ -42,8 +44,7 @@ [content-type 14 : text/html,*/*;charset=gbk] expected: - if (flag_specific == "") and (os == "linux") and (product == "chrome"): PASS - if (flag_specific == "") and (os == "win"): PASS + if os == "win": PASS FAIL [content-type 15 : text/html;x=",text/plain]
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/nested-context-navigations-iframe.html.ini b/third_party/blink/web_tests/external/wpt/resource-timing/nested-context-navigations-iframe.html.ini index 58d4c10..1c863b1 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/nested-context-navigations-iframe.html.ini +++ b/third_party/blink/web_tests/external/wpt/resource-timing/nested-context-navigations-iframe.html.ini
@@ -1,4 +1,4 @@ [nested-context-navigations-iframe.html] - [Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent] + [Test that cross-site iframe navigations are not observable by the parent, even after history navigations by the parent] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] + if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/no-entries-for-cross-origin-css-fetched-memory-cache.sub.html.ini b/third_party/blink/web_tests/external/wpt/resource-timing/no-entries-for-cross-origin-css-fetched-memory-cache.sub.html.ini index ff8840b..95e0598c 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/no-entries-for-cross-origin-css-fetched-memory-cache.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/resource-timing/no-entries-for-cross-origin-css-fetched-memory-cache.sub.html.ini
@@ -1,5 +1,5 @@ [no-entries-for-cross-origin-css-fetched-memory-cache.sub.html] [Make sure that resources fetched by cross origin CSS are not in the timeline.] expected: - if flag_specific == "disable-layout-ng": PASS - FAIL + if (flag_specific == "") and (os == "win"): FAIL + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html.ini b/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html.ini index 5496d8a0..46b003a 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html.ini +++ b/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html.ini
@@ -78,7 +78,8 @@ expected: [PASS, NOTRUN] [This test validates the response status of resources. 85] - expected: [PASS, NOTRUN] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL [This test validates the response status of resources. 197] expected: [PASS, NOTRUN] @@ -281,9 +282,6 @@ [This test validates the response status of resources. 129] expected: [PASS, NOTRUN] - [This test validates the response status of resources. 246] - expected: [NOTRUN, PASS] - [This test validates the response status of resources. 231] expected: [PASS, NOTRUN] @@ -305,9 +303,6 @@ [This test validates the response status of resources. 90] expected: [PASS, NOTRUN] - [This test validates the response status of resources. 244] - expected: [PASS, NOTRUN] - [This test validates the response status of resources. 162] expected: [PASS, NOTRUN] @@ -557,14 +552,26 @@ [This test validates the response status of resources. 191] expected: [PASS, NOTRUN] - [This test validates the response status of resources. 277] + [This test validates the response status of resources. 273] + expected: + if product == "chrome": [PASS, FAIL] + + [This test validates the response status of resources. 292] + expected: + if product == "chrome": [PASS, FAIL] + + [This test validates the response status of resources. 84] + expected: + if product == "chrome": [PASS, FAIL] + + [This test validates the response status of resources. 279] + expected: + if product == "chrome": [PASS, FAIL] + + [This test validates the response status of resources. 272] expected: if product == "chrome": [PASS, FAIL] [This test validates the response status of resources. 278] expected: - if (flag_specific == "") and (product == "chrome"): [FAIL, PASS] - - [This test validates the response status of resources. 274] - expected: if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/resources/idlharness.js b/third_party/blink/web_tests/external/wpt/resources/idlharness.js index bda4a31..46aa11e 100644 --- a/third_party/blink/web_tests/external/wpt/resources/idlharness.js +++ b/third_party/blink/web_tests/external/wpt/resources/idlharness.js
@@ -2668,6 +2668,7 @@ IdlInterface.prototype.test_members = function() { + var unexposed_members = new Set(); for (var i = 0; i < this.members.length; i++) { var member = this.members[i]; @@ -2676,15 +2677,18 @@ } if (!exposed_in(exposure_set(member, this.exposureSet))) { - subsetTestByKey(this.name, test, function() { - // It's not exposed, so we shouldn't find it anywhere. - assert_false(member.name in this.get_interface_object(), - "The interface object must not have a property " + - format_value(member.name)); - assert_false(member.name in this.get_interface_object().prototype, - "The prototype object must not have a property " + - format_value(member.name)); - }.bind(this), this.name + " interface: member " + member.name); + if (!unexposed_members.has(member.name)) { + unexposed_members.add(member.name); + subsetTestByKey(this.name, test, function() { + // It's not exposed, so we shouldn't find it anywhere. + assert_false(member.name in this.get_interface_object(), + "The interface object must not have a property " + + format_value(member.name)); + assert_false(member.name in this.get_interface_object().prototype, + "The prototype object must not have a property " + + format_value(member.name)); + }.bind(this), this.name + " interface: member " + member.name); + } continue; } @@ -2855,17 +2859,23 @@ return; } + var unexposed_properties = new Set(); for (var i = 0; i < this.members.length; i++) { var member = this.members[i]; if (member.untested) { continue; } - if (!exposed_in(exposure_set(member, this.exposureSet))) { - subsetTestByKey(this.name, test, function() { - assert_equals(exception, null, "Unexpected exception when evaluating object"); - assert_false(member.name in obj); - }.bind(this), this.name + " interface: " + desc + ' must not have property "' + member.name + '"'); + if (!exposed_in(exposure_set(member, this.exposureSet))) + { + if (!unexposed_properties.has(member.name)) + { + unexposed_properties.add(member.name); + subsetTestByKey(this.name, test, function() { + assert_equals(exception, null, "Unexpected exception when evaluating object"); + assert_false(member.name in obj); + }.bind(this), this.name + " interface: " + desc + ' must not have property "' + member.name + '"'); + } continue; } if (member.type == "attribute" && member.isUnforgeable)
diff --git a/third_party/blink/web_tests/external/wpt/selection/idlharness.window-expected.txt b/third_party/blink/web_tests/external/wpt/selection/idlharness.window-expected.txt new file mode 100644 index 0000000..aab2a3e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/selection/idlharness.window-expected.txt
@@ -0,0 +1,112 @@ +This is a testharness.js-based test. +Found 108 tests; 105 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS idl_test setup +PASS idl_test validation +PASS Partial interface Document: original interface defined +PASS Partial interface Document: member names are unique +PASS Partial interface Window: original interface defined +PASS Partial interface Window: member names are unique +PASS Partial interface mixin GlobalEventHandlers: original interface mixin defined +PASS Partial interface mixin GlobalEventHandlers: member names are unique +PASS Partial interface Document[2]: member names are unique +PASS Partial interface Document[3]: member names are unique +PASS Partial interface Window[2]: member names are unique +PASS Document includes GlobalEventHandlers: member names are unique +PASS HTMLElement includes GlobalEventHandlers: member names are unique +PASS HTMLElement includes ElementContentEditable: member names are unique +PASS HTMLElement includes HTMLOrSVGElement: member names are unique +PASS Window includes GlobalEventHandlers: member names are unique +PASS Window includes WindowEventHandlers: member names are unique +PASS Window includes WindowOrWorkerGlobalScope: member names are unique +PASS Window includes AnimationFrameProvider: member names are unique +PASS Window includes WindowSessionStorage: member names are unique +PASS Window includes WindowLocalStorage: member names are unique +PASS Document includes NonElementParentNode: member names are unique +PASS Document includes ParentNode: member names are unique +PASS Element includes ParentNode: member names are unique +PASS Element includes NonDocumentTypeChildNode: member names are unique +PASS Element includes ChildNode: member names are unique +PASS Element includes Slottable: member names are unique +PASS Document includes XPathEvaluatorBase: member names are unique +PASS Selection interface: existence and properties of interface object +PASS Selection interface object length +PASS Selection interface object name +PASS Selection interface: existence and properties of interface prototype object +PASS Selection interface: existence and properties of interface prototype object's "constructor" property +PASS Selection interface: existence and properties of interface prototype object's @@unscopables property +PASS Selection interface: attribute anchorNode +PASS Selection interface: attribute anchorOffset +PASS Selection interface: attribute focusNode +PASS Selection interface: attribute focusOffset +PASS Selection interface: attribute isCollapsed +PASS Selection interface: attribute rangeCount +PASS Selection interface: attribute type +PASS Selection interface: operation getRangeAt(unsigned long) +PASS Selection interface: operation addRange(Range) +PASS Selection interface: operation removeRange(Range) +PASS Selection interface: operation removeAllRanges() +PASS Selection interface: operation empty() +FAIL Selection interface: operation getComposedRange(ShadowRoot...) assert_own_property: interface prototype object missing non-static operation expected property "getComposedRange" missing +PASS Selection interface: operation collapse(Node?, optional unsigned long) +PASS Selection interface: operation setPosition(Node?, optional unsigned long) +PASS Selection interface: operation collapseToStart() +PASS Selection interface: operation collapseToEnd() +PASS Selection interface: operation extend(Node, optional unsigned long) +PASS Selection interface: operation setBaseAndExtent(Node, unsigned long, Node, unsigned long) +PASS Selection interface: operation selectAllChildren(Node) +PASS Selection interface: operation modify(optional DOMString, optional DOMString, optional DOMString) +PASS Selection interface: operation deleteFromDocument() +PASS Selection interface: operation containsNode(Node, optional boolean) +PASS Selection interface: stringifier +PASS Selection must be primary interface of getSelection() +PASS Stringification of getSelection() +PASS Selection interface: getSelection() must inherit property "anchorNode" with the proper type +PASS Selection interface: getSelection() must inherit property "anchorOffset" with the proper type +PASS Selection interface: getSelection() must inherit property "focusNode" with the proper type +PASS Selection interface: getSelection() must inherit property "focusOffset" with the proper type +PASS Selection interface: getSelection() must inherit property "isCollapsed" with the proper type +PASS Selection interface: getSelection() must inherit property "rangeCount" with the proper type +PASS Selection interface: getSelection() must inherit property "type" with the proper type +PASS Selection interface: getSelection() must inherit property "getRangeAt(unsigned long)" with the proper type +PASS Selection interface: calling getRangeAt(unsigned long) on getSelection() with too few arguments must throw TypeError +PASS Selection interface: getSelection() must inherit property "addRange(Range)" with the proper type +PASS Selection interface: calling addRange(Range) on getSelection() with too few arguments must throw TypeError +PASS Selection interface: getSelection() must inherit property "removeRange(Range)" with the proper type +PASS Selection interface: calling removeRange(Range) on getSelection() with too few arguments must throw TypeError +PASS Selection interface: getSelection() must inherit property "removeAllRanges()" with the proper type +PASS Selection interface: getSelection() must inherit property "empty()" with the proper type +FAIL Selection interface: getSelection() must inherit property "getComposedRange(ShadowRoot...)" with the proper type assert_inherits: property "getComposedRange" not found in prototype chain +FAIL Selection interface: calling getComposedRange(ShadowRoot...) on getSelection() with too few arguments must throw TypeError assert_inherits: property "getComposedRange" not found in prototype chain +PASS Selection interface: getSelection() must inherit property "collapse(Node?, optional unsigned long)" with the proper type +PASS Selection interface: calling collapse(Node?, optional unsigned long) on getSelection() with too few arguments must throw TypeError +PASS Selection interface: getSelection() must inherit property "setPosition(Node?, optional unsigned long)" with the proper type +PASS Selection interface: calling setPosition(Node?, optional unsigned long) on getSelection() with too few arguments must throw TypeError +PASS Selection interface: getSelection() must inherit property "collapseToStart()" with the proper type +PASS Selection interface: getSelection() must inherit property "collapseToEnd()" with the proper type +PASS Selection interface: getSelection() must inherit property "extend(Node, optional unsigned long)" with the proper type +PASS Selection interface: calling extend(Node, optional unsigned long) on getSelection() with too few arguments must throw TypeError +PASS Selection interface: getSelection() must inherit property "setBaseAndExtent(Node, unsigned long, Node, unsigned long)" with the proper type +PASS Selection interface: calling setBaseAndExtent(Node, unsigned long, Node, unsigned long) on getSelection() with too few arguments must throw TypeError +PASS Selection interface: getSelection() must inherit property "selectAllChildren(Node)" with the proper type +PASS Selection interface: calling selectAllChildren(Node) on getSelection() with too few arguments must throw TypeError +PASS Selection interface: getSelection() must inherit property "modify(optional DOMString, optional DOMString, optional DOMString)" with the proper type +PASS Selection interface: calling modify(optional DOMString, optional DOMString, optional DOMString) on getSelection() with too few arguments must throw TypeError +PASS Selection interface: getSelection() must inherit property "deleteFromDocument()" with the proper type +PASS Selection interface: getSelection() must inherit property "containsNode(Node, optional boolean)" with the proper type +PASS Selection interface: calling containsNode(Node, optional boolean) on getSelection() with too few arguments must throw TypeError +PASS HTMLElement interface: attribute onselectstart +PASS HTMLElement interface: attribute onselectionchange +PASS Window interface: operation getSelection() +PASS Window interface: attribute onselectstart +PASS Window interface: attribute onselectionchange +PASS Window interface: window must inherit property "getSelection()" with the proper type +PASS Window interface: window must inherit property "onselectstart" with the proper type +PASS Window interface: window must inherit property "onselectionchange" with the proper type +PASS Document interface: operation getSelection() +PASS Document interface: attribute onselectstart +PASS Document interface: attribute onselectionchange +PASS Document interface: document must inherit property "getSelection()" with the proper type +PASS Document interface: document must inherit property "onselectstart" with the proper type +PASS Document interface: document must inherit property "onselectionchange" with the proper type +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/selection/idlharness.window.js.ini b/third_party/blink/web_tests/external/wpt/selection/idlharness.window.js.ini new file mode 100644 index 0000000..61d4af1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/selection/idlharness.window.js.ini
@@ -0,0 +1,9 @@ +[idlharness.window.html] + [Selection interface: operation getComposedRange(ShadowRoot...)] + expected: FAIL + + [Selection interface: getSelection() must inherit property "getComposedRange(ShadowRoot...)" with the proper type] + expected: FAIL + + [Selection interface: calling getComposedRange(ShadowRoot...) on getSelection() with too few arguments must throw TypeError] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/cache-storage/cache-add.https.any.js.ini b/third_party/blink/web_tests/external/wpt/service-workers/cache-storage/cache-add.https.any.js.ini index 6af02218..b2db2c56 100644 --- a/third_party/blink/web_tests/external/wpt/service-workers/cache-storage/cache-add.https.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/service-workers/cache-storage/cache-add.https.any.js.ini
@@ -2,15 +2,15 @@ [Cache.addAll called with the same Request object specified twice] expected: FAIL + [Cache.addAll should succeed when entries differ by vary header] + expected: + if product == "chrome": FAIL + [cache-add.https.any.sharedworker.html] [Cache.addAll called with the same Request object specified twice] expected: FAIL - [Cache.addAll should succeed when entries differ by vary header] - expected: - if product == "chrome": [PASS, FAIL] - [cache-add.https.any.serviceworker.html] [Cache.addAll called with the same Request object specified twice]
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/about-blank-replacement.https.html.ini b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/about-blank-replacement.https.html.ini index c59a16f..44673f0a 100644 --- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/about-blank-replacement.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/about-blank-replacement.https.html.ini
@@ -1,6 +1,4 @@ [about-blank-replacement.https.html] - expected: - if product == "chrome": ERROR [Initial about:blank is controlled, exposed to clients.matchAll(), and matches final Client.] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/client-navigate.https.html.ini b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/client-navigate.https.html.ini index 3c0cf64..19fc7b48 100644 --- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/client-navigate.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/client-navigate.https.html.ini
@@ -1,4 +1,8 @@ [client-navigate.https.html] [Frame location should not be accessible after cross-origin navigation] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL + + [Frame location should not be accessible after redirect] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini index 5f5d44e..4507f10 100644 --- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini
@@ -1,8 +1,4 @@ [unregister-immediately-during-extendable-events.https.html] - expected: - if flag_specific == "disable-site-isolation-trials": OK - TIMEOUT + expected: TIMEOUT [Clear-Site-Data must fail pending subresource fetch events.] - expected: - if product == "chrome": TIMEOUT - FAIL + expected: TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/navigation-timing-sizes.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/navigation-timing-sizes.https.html.ini index 53d3be2..ece08a3a 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/navigation-timing-sizes.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/navigation-timing-sizes.https.html.ini
@@ -1,4 +1,6 @@ [navigation-timing-sizes.https.html?prefetch=true] + expected: + if product == "chrome": [OK, ERROR] [PerformanceNavigationTiming.transferSize/encodedBodySize/decodedBodySize test, same origin prefetch.] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/about-blank-iframes.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/about-blank-iframes.html.ini index 555cff45..aa7329b 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/about-blank-iframes.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/about-blank-iframes.html.ini
@@ -5,8 +5,8 @@ disabled: if flag_specific == "force-renderer-accessibility": was skipped in 'FlagExpectations/force-renderer-accessibility' expected: - if (os == "linux") and (product == "chrome"): TIMEOUT + if (product == "content_shell") and (os == "win"): [OK, ERROR] + if product == "chrome": TIMEOUT [about:blank iframes] expected: - if (product == "content_shell") and (os == "win"): [PASS, FAIL] - if product == "chrome": TIMEOUT + if (os == "linux") and (product == "chrome"): TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cookies.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cookies.https.html.ini index e492233c..5a0542c 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cookies.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cookies.https.html.ini
@@ -1,6 +1,5 @@ [cookies.https.html] expected: - if (product == "content_shell") and (os == "win"): [OK, TIMEOUT] if product == "chrome": TIMEOUT [prerendering page should be able to access cookies] expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe.html.ini index 47d7e2c..1cda8fa 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe.html.ini
@@ -1,7 +1,7 @@ [cross-origin-iframe.html] expected: - if (product == "content_shell") and (os == "win"): [OK, ERROR] - if product == "chrome": TIMEOUT + if (os == "linux") and (product == "chrome"): TIMEOUT + if os == "win": ERROR [cross-origin iframes should not load until activation] expected: if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/csp-script-src-self.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/csp-script-src-self.html.ini index 23f1c74..148ccc34 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/csp-script-src-self.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/csp-script-src-self.html.ini
@@ -1,4 +1,4 @@ [csp-script-src-self.html] expected: - if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [OK, ERROR] - if os == "win": ERROR + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): ERROR + if flag_specific == "disable-site-isolation-trials": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/iframe-added-post-activation.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/iframe-added-post-activation.html.ini index 6b9bf4fd..639ddc1 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/iframe-added-post-activation.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/iframe-added-post-activation.html.ini
@@ -1,6 +1,7 @@ [iframe-added-post-activation.html] expected: - if product == "chrome": TIMEOUT + if (os == "linux") and (product == "chrome"): TIMEOUT + if os == "win": ERROR [iframe added after activation has false document.prerendering] expected: if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/referrer-policy-from-rules.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/referrer-policy-from-rules.html.ini index c96a9be..d0cdf48 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/referrer-policy-from-rules.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/referrer-policy-from-rules.html.ini
@@ -1,6 +1,4 @@ [referrer-policy-from-rules.html?2-last] - expected: - if product == "chrome": [OK, ERROR] [referrer-policy-from-rules.html?1-1] expected: TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-non-successful.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-non-successful.html.ini index dc41559..4b1e4a64 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-non-successful.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-non-successful.html.ini
@@ -1,13 +1,15 @@ -[response-code-non-successful.html?code=204] - -[response-code-non-successful.html?code=402] - [response-code-non-successful.html?code=500] - -[response-code-non-successful.html?code=404] expected: - if product == "chrome": ERROR + if product == "chrome": [OK, ERROR] + +[response-code-non-successful.html?code=205] [response-code-non-successful.html?code=503] -[response-code-non-successful.html?code=205] +[response-code-non-successful.html?code=402] + +[response-code-non-successful.html?code=404] + +[response-code-non-successful.html?code=204] + expected: + if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-successful.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-successful.html.ini index a98d0a40..4a3d841 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-successful.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-successful.html.ini
@@ -5,10 +5,14 @@ [response-code-successful.html?code=200] - expected: - if product == "chrome": ERROR + [Responses with code 200 should be activated] + expected: + if product == "chrome": FAIL + [response-code-successful.html?code=201] + expected: + if product == "chrome": [ERROR, OK] [Responses with code 201 should be activated] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini index ebc3e37..8dacf33 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini
@@ -1,7 +1,7 @@ [restriction-bluetooth.tentative.https.html] expected: - if (product == "content_shell") and (os == "win"): [OK, ERROR] - if product == "chrome": TIMEOUT + if (os == "linux") and (product == "chrome"): TIMEOUT + if os == "win": ERROR [the access to the Bluetooth API should be deferred until the\n prerendered page is activated] expected: if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-dedicated-worker.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-dedicated-worker.https.html.ini index 4aeadc5..9362fa3 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-dedicated-worker.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-dedicated-worker.https.html.ini
@@ -1,7 +1,6 @@ [restriction-dedicated-worker.https.html] expected: - if (os == "linux") and (product == "chrome"): TIMEOUT - if os == "win": ERROR + if product == "chrome": TIMEOUT [The access to the Dedicated Worker API should be deferred until the\n prerendered page is activated] expected: if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-idle-detection.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-idle-detection.https.html.ini index 407d3c4..f9c08def 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-idle-detection.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-idle-detection.https.html.ini
@@ -1,7 +1,7 @@ [restriction-idle-detection.https.html] expected: - if (flag_specific == "") and (product == "content_shell") and (os == "win"): [OK, TIMEOUT] - if (flag_specific == "") and (product == "chrome"): TIMEOUT + if (os == "linux") and (product == "chrome"): TIMEOUT + if os == "win": TIMEOUT [prerendering pages should not be able to invoke the Idle Detection API] expected: if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-message-boxes.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-message-boxes.html.ini index a190613..aeb2a55 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-message-boxes.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-message-boxes.html.ini
@@ -1,7 +1,6 @@ [restriction-message-boxes.html] expected: - if (os == "linux") and (product == "chrome"): TIMEOUT - if os == "win": ERROR + if product == "chrome": TIMEOUT [alert() does not display the modal and returns immediately] expected: if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-prompt-by-before-unload.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-prompt-by-before-unload.html.ini index 465f205d3..9071c15b 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-prompt-by-before-unload.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-prompt-by-before-unload.html.ini
@@ -3,7 +3,6 @@ disabled: if flag_specific == "force-renderer-accessibility": was skipped in 'FlagExpectations/force-renderer-accessibility' expected: - if (product == "content_shell") and (os == "win"): [OK, TIMEOUT] if product == "chrome": TIMEOUT [Prerendering cannot invoke the prompt by the beforeunload event.] expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-screen-capture.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-screen-capture.https.html.ini index d5fb1f0..eae5030b 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-screen-capture.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-screen-capture.https.html.ini
@@ -1,5 +1,6 @@ [restriction-screen-capture.https.html] expected: + if (product == "content_shell") and (os == "win"): [OK, ERROR] if product == "chrome": TIMEOUT [The access to the Screen Capture API should be deferred until the\n prerendered page is activated] expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-speech-synthesis.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-speech-synthesis.html.ini index c8b329d..6984300 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-speech-synthesis.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-speech-synthesis.html.ini
@@ -1,7 +1,7 @@ [restriction-speech-synthesis.html] expected: - if (os == "linux") and (product == "chrome"): TIMEOUT - if os == "win": ERROR + if (product == "content_shell") and (os == "win"): [OK, ERROR] + if product == "chrome": TIMEOUT [speechSynthesis.speak(utterance) should be deferred until the prerendered page is activated] expected: if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-hid.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-hid.https.html.ini index 4491024..671c261 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-hid.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-hid.https.html.ini
@@ -1,5 +1,6 @@ [restriction-web-hid.https.html] expected: + if (product == "content_shell") and (os == "win"): [OK, ERROR] if product == "chrome": TIMEOUT [the access to the Web HID API should be deferred until the prerendered\n page is activated] expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-locks.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-locks.https.html.ini index eb9f2ef..d55497ae 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-locks.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-locks.https.html.ini
@@ -1,6 +1,5 @@ [restriction-web-locks.https.html] expected: - if (product == "content_shell") and (os == "win"): [OK, ERROR] if product == "chrome": TIMEOUT [navigator.locks.request should be deferred until the prerendered page is activated] expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-share.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-share.https.html.ini index 9e705b8..6a5f19de 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-share.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-share.https.html.ini
@@ -1,7 +1,7 @@ [restriction-web-share.https.html] expected: - if (product == "content_shell") and (os == "win"): [OK, TIMEOUT] - if product == "chrome": TIMEOUT + if (os == "linux") and (product == "chrome"): TIMEOUT + if os == "win": TIMEOUT [prerendering pages should not be able to invoke the Web Share API] expected: if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini index ff00e5563..84a416f 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini
@@ -1,7 +1,7 @@ [session-history-subframe-navigation.https.html] expected: - if (product == "content_shell") and (os == "win"): [OK, TIMEOUT] - if product == "chrome": TIMEOUT + if (os == "linux") and (product == "chrome"): TIMEOUT + if os == "win": TIMEOUT [Subframe navigation in prerender replaces the session entry] expected: if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-reload.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-reload.https.html.ini index c8f6acf6..833b7bd0 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-reload.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-reload.https.html.ini
@@ -1,5 +1,6 @@ [session-history-subframe-reload.https.html] expected: + if (product == "content_shell") and (os == "win"): [OK, TIMEOUT] if product == "chrome": TIMEOUT [Subframe reload works in prerendered page] expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/web-database.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/web-database.https.html.ini index 178759e..2d394993 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/web-database.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/web-database.https.html.ini
@@ -8,7 +8,6 @@ [web-database.https.html] expected: - if (product == "content_shell") and (os == "win"): [OK, TIMEOUT] if product == "chrome": TIMEOUT [prerendering page should be able to access Web Database] expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/workers.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/workers.html.ini index bea4222..a986d42 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/workers.html.ini +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/workers.html.ini
@@ -1,6 +1,7 @@ [workers.html] expected: - if product == "chrome": TIMEOUT + if (os == "linux") and (product == "chrome"): TIMEOUT + if os == "win": TIMEOUT [Dedicated workers should be loaded in suspended state until activated] expected: if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speech-api/SpeechSynthesisUtterance-basics.https.html.ini b/third_party/blink/web_tests/external/wpt/speech-api/SpeechSynthesisUtterance-basics.https.html.ini deleted file mode 100644 index aee42a9..0000000 --- a/third_party/blink/web_tests/external/wpt/speech-api/SpeechSynthesisUtterance-basics.https.html.ini +++ /dev/null
@@ -1,12 +0,0 @@ -[SpeechSynthesisUtterance-basics.https.html] - [new SpeechSynthesisUtterance() default volume] - expected: FAIL - - [new SpeechSynthesisUtterance() default rate] - expected: FAIL - - [new SpeechSynthesisUtterance() default pitch] - expected: FAIL - - [new SpeechSynthesisUtterance("hello") text and defaults] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/storage/partitioned-estimate-usage-details-caches.tentative.https.sub.html.ini b/third_party/blink/web_tests/external/wpt/storage/partitioned-estimate-usage-details-caches.tentative.https.sub.html.ini new file mode 100644 index 0000000..286fa1f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/storage/partitioned-estimate-usage-details-caches.tentative.https.sub.html.ini
@@ -0,0 +1,3 @@ +[partitioned-estimate-usage-details-caches.tentative.https.sub.html] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/url/a-element-xhtml.xhtml.ini b/third_party/blink/web_tests/external/wpt/url/a-element-xhtml.xhtml.ini index 0e56240..bdea44be 100644 --- a/third_party/blink/web_tests/external/wpt/url/a-element-xhtml.xhtml.ini +++ b/third_party/blink/web_tests/external/wpt/url/a-element-xhtml.xhtml.ini
@@ -963,8 +963,8 @@ [a-element-xhtml.xhtml?include=file] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): CRASH if (flag_specific == "") and (os == "win"): [OK, TIMEOUT] + if flag_specific == "disable-site-isolation-trials": [OK, CRASH] [Parsing: <file://example%/> against <about:blank>] expected: FAIL @@ -2065,14 +2065,13 @@ [a-element-xhtml.xhtml?include=mailto] expected: - if os == "win": TIMEOUT + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): CRASH [Parsing: <mailto:/../> against <about:blank>] expected: FAIL [a-element-xhtml.xhtml?include=javascript] expected: - if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [OK, CRASH] - if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [OK, CRASH] + if flag_specific == "disable-site-isolation-trials": [OK, CRASH] [Parsing: <javascript:/../> against <about:blank>] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/a-element.html.ini b/third_party/blink/web_tests/external/wpt/url/a-element.html.ini index 42b42a2f..09107dee 100644 --- a/third_party/blink/web_tests/external/wpt/url/a-element.html.ini +++ b/third_party/blink/web_tests/external/wpt/url/a-element.html.ini
@@ -1072,9 +1072,6 @@ [a-element.html?include=file] - expected: - if (flag_specific == "") and (os == "win"): [OK, TIMEOUT] - if flag_specific == "disable-layout-ng": [OK, CRASH] [Parsing: <file://example%/> against <about:blank>] expected: FAIL @@ -1323,7 +1320,7 @@ [a-element.html?include=mailto] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): CRASH + if flag_specific == "disable-site-isolation-trials": [OK, CRASH] if flag_specific == "highdpi": [OK, CRASH] [Parsing: <mailto:/../> against <about:blank>] expected: FAIL @@ -2180,5 +2177,7 @@ [a-element.html?include=javascript] + expected: + if (flag_specific == "") and (os == "win"): [OK, TIMEOUT] [Parsing: <javascript:/../> against <about:blank>] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/failure.html.ini b/third_party/blink/web_tests/external/wpt/url/failure.html.ini index 97ce987..764b2f9 100644 --- a/third_party/blink/web_tests/external/wpt/url/failure.html.ini +++ b/third_party/blink/web_tests/external/wpt/url/failure.html.ini
@@ -1,7 +1,6 @@ [failure.html] expected: - if (flag_specific == "") and (product == "chrome"): TIMEOUT - if flag_specific == "disable-layout-ng": CRASH + if flag_specific == "disable-layout-ng": [OK, CRASH] [Location's href: file://example:1/ should throw] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/percent-encoding.window.js.ini b/third_party/blink/web_tests/external/wpt/url/percent-encoding.window.js.ini new file mode 100644 index 0000000..36d5702 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/url/percent-encoding.window.js.ini
@@ -0,0 +1,3 @@ +[percent-encoding.window.html] + expected: + if flag_specific == "disable-site-isolation-trials": CRASH
diff --git a/third_party/blink/web_tests/external/wpt/url/toascii.window.js.ini b/third_party/blink/web_tests/external/wpt/url/toascii.window.js.ini index f1a9b16..bfb782f 100644 --- a/third_party/blink/web_tests/external/wpt/url/toascii.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/url/toascii.window.js.ini
@@ -1,6 +1,6 @@ [toascii.window.html] expected: - if flag_specific == "disable-site-isolation-trials": [OK, CRASH] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH] [xn--a (using URL)] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window.js.ini b/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window.js.ini index 71ef2b0..6dad5c9 100644 --- a/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window.js.ini
@@ -586,7 +586,7 @@ [url-setters-a-area.window.html?include=file] expected: - if flag_specific == "disable-site-isolation-trials": [OK, CRASH] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH] [<a>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host] expected: FAIL @@ -1163,6 +1163,9 @@ [url-setters-a-area.window.html?include=javascript] + expected: + if (flag_specific == "") and (os == "win"): [OK, TIMEOUT] + if flag_specific == "disable-layout-ng": [OK, CRASH] [<a>: Setting <javascript://x/>.username = 'wario'] expected: FAIL @@ -1183,9 +1186,6 @@ [url-setters-a-area.window.html?include=mailto] - expected: - if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [OK, CRASH] - if os == "win": TIMEOUT [<a>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/url-setters-stripping.any.js.ini b/third_party/blink/web_tests/external/wpt/url/url-setters-stripping.any.js.ini index ad2f860..68d160c 100644 --- a/third_party/blink/web_tests/external/wpt/url/url-setters-stripping.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/url/url-setters-stripping.any.js.ini
@@ -317,7 +317,7 @@ [url-setters-stripping.any.worker.html] expected: - if os == "win": [OK, TIMEOUT] + if os == "win": TIMEOUT [Setting pathname with leading U+0000 (https:)] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/url-setters.any.js.ini b/third_party/blink/web_tests/external/wpt/url/url-setters.any.js.ini index 2cdb957..51787b7 100644 --- a/third_party/blink/web_tests/external/wpt/url/url-setters.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/url/url-setters.any.js.ini
@@ -845,8 +845,6 @@ [url-setters.any.worker.html?exclude=(file|javascript|mailto)] - expected: - if os == "win": [OK, TIMEOUT] [URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.] expected: if os == "win": FAIL @@ -1185,6 +1183,8 @@ [url-setters.any.worker.html?include=javascript] + expected: + if os == "win": [OK, TIMEOUT] [URL: Setting <javascript://x/>.username = 'wario'] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/urlsearchparams-delete.any.js.ini b/third_party/blink/web_tests/external/wpt/url/urlsearchparams-delete.any.js.ini index e35316b..8c158fa3 100644 --- a/third_party/blink/web_tests/external/wpt/url/urlsearchparams-delete.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/url/urlsearchparams-delete.any.js.ini
@@ -1,6 +1,6 @@ [urlsearchparams-delete.any.html] expected: - if flag_specific == "disable-site-isolation-trials": [OK, CRASH] + if flag_specific == "disable-site-isolation-trials": CRASH [Changing the query of a URL with an opaque path can impact the path] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/urlsearchparams-get.any.js.ini b/third_party/blink/web_tests/external/wpt/url/urlsearchparams-get.any.js.ini index 9c74fd4f..3c8d8fe 100644 --- a/third_party/blink/web_tests/external/wpt/url/urlsearchparams-get.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/url/urlsearchparams-get.any.js.ini
@@ -1,5 +1,5 @@ [urlsearchparams-get.any.worker.html] expected: - if flag_specific == "disable-layout-ng": [OK, CRASH] + if flag_specific == "disable-layout-ng": CRASH [urlsearchparams-get.any.html]
diff --git a/third_party/blink/web_tests/external/wpt/url/urlsearchparams-stringifier.any.js.ini b/third_party/blink/web_tests/external/wpt/url/urlsearchparams-stringifier.any.js.ini index 6439b79..e3259c3 100644 --- a/third_party/blink/web_tests/external/wpt/url/urlsearchparams-stringifier.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/url/urlsearchparams-stringifier.any.js.ini
@@ -1,5 +1,5 @@ [urlsearchparams-stringifier.any.html] - expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH] [urlsearchparams-stringifier.any.worker.html] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/user-timing/case-sensitivity.any.js.ini b/third_party/blink/web_tests/external/wpt/user-timing/case-sensitivity.any.js.ini index 81bad87..133dfaa 100644 --- a/third_party/blink/web_tests/external/wpt/user-timing/case-sensitivity.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/user-timing/case-sensitivity.any.js.ini
@@ -1,5 +1,5 @@ [case-sensitivity.any.html] - -[case-sensitivity.any.worker.html] expected: if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH] + +[case-sensitivity.any.worker.html]
diff --git a/third_party/blink/web_tests/external/wpt/wasm/jsapi/constructor/compile.any.js.ini b/third_party/blink/web_tests/external/wpt/wasm/jsapi/constructor/compile.any.js.ini index 04173d1f..541072a 100644 --- a/third_party/blink/web_tests/external/wpt/wasm/jsapi/constructor/compile.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/wasm/jsapi/constructor/compile.any.js.ini
@@ -1,5 +1,5 @@ [compile.any.html] - expected: - if os == "win": [OK, TIMEOUT] [compile.any.worker.html] + expected: + if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/idlharness.window-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/idlharness.window-expected.txt index 80e721f..c38dda96 100644 --- a/third_party/blink/web_tests/external/wpt/web-animations/idlharness.window-expected.txt +++ b/third_party/blink/web_tests/external/wpt/web-animations/idlharness.window-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 204 tests; 155 PASS, 49 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 212 tests; 163 PASS, 49 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation PASS Partial interface Document: original interface defined @@ -40,6 +40,15 @@ PASS Element includes Slottable: member names are unique PASS Document includes XPathEvaluatorBase: member names are unique PASS Document includes GlobalEventHandlers: member names are unique +PASS AnimationTimeline interface: existence and properties of interface object +PASS AnimationTimeline interface object length +PASS AnimationTimeline interface object name +PASS AnimationTimeline interface: existence and properties of interface prototype object +PASS AnimationTimeline interface: existence and properties of interface prototype object's "constructor" property +PASS AnimationTimeline interface: existence and properties of interface prototype object's @@unscopables property +PASS AnimationTimeline interface: attribute currentTime +PASS AnimationTimeline interface: attribute duration +FAIL AnimationTimeline interface: operation play(optional AnimationEffect?) assert_own_property: interface prototype object missing non-static operation expected property "play" missing PASS DocumentTimeline interface: existence and properties of interface object PASS DocumentTimeline interface object length PASS DocumentTimeline interface object name @@ -48,6 +57,7 @@ PASS DocumentTimeline interface: existence and properties of interface prototype object's @@unscopables property PASS DocumentTimeline must be primary interface of document.timeline PASS Stringification of document.timeline +PASS AnimationTimeline interface: document.timeline must inherit property "currentTime" with the proper type PASS AnimationTimeline interface: document.timeline must inherit property "duration" with the proper type FAIL AnimationTimeline interface: document.timeline must inherit property "play(optional AnimationEffect?)" with the proper type assert_inherits: property "play" not found in prototype chain FAIL AnimationTimeline interface: calling play(optional AnimationEffect?) on document.timeline with too few arguments must throw TypeError assert_inherits: property "play" not found in prototype chain @@ -202,7 +212,5 @@ PASS ShadowRoot interface: shadowRoot must inherit property "getAnimations()" with the proper type PASS Element interface: operation animate(object?, optional (unrestricted double or KeyframeAnimationOptions)) PASS Element interface: operation getAnimations(optional GetAnimationsOptions) -PASS AnimationTimeline interface: attribute duration -FAIL AnimationTimeline interface: operation play(optional AnimationEffect?) assert_own_property: interface prototype object missing non-static operation expected property "play" missing Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/finished.html.ini b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/finished.html.ini index 1311a6a6..b8cc7340 100644 --- a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/finished.html.ini +++ b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/finished.html.ini
@@ -1,5 +1,5 @@ [finished.html] [Test finished promise changes for animation duration changes] expected: - if (flag_specific == "") and (product == "chrome"): [FAIL, PASS] - if flag_specific == "disable-layout-ng": FAIL + if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [PASS, FAIL] + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/sibling-iframe-timeline.html.ini b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/sibling-iframe-timeline.html.ini index fda793b..f045b6a 100644 --- a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/sibling-iframe-timeline.html.ini +++ b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/sibling-iframe-timeline.html.ini
@@ -1,6 +1,6 @@ [sibling-iframe-timeline.html] [animation tied to another frame's timeline runs properly] expected: - if (flag_specific == "") and (product == "chrome"): PASS - if flag_specific == "disable-site-isolation-trials": PASS - FAIL + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [FAIL, PASS] + if (flag_specific == "") and (os == "win"): FAIL + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/resource-timing-attributes-consistent.https.tentative.sub.html.ini b/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/resource-timing-attributes-consistent.https.tentative.sub.html.ini index a0a908d6..46f53479 100644 --- a/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/resource-timing-attributes-consistent.https.tentative.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/resource-timing-attributes-consistent.https.tentative.sub.html.ini
@@ -1,4 +1,4 @@ [resource-timing-attributes-consistent.https.tentative.sub.html] [Timestamp attributes filled in resource timing entries should be consistent.] expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/reuse-web-bundle-resource.https.tentative.html.ini b/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/reuse-web-bundle-resource.https.tentative.html.ini index 9c8170d6..750959d 100644 --- a/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/reuse-web-bundle-resource.https.tentative.html.ini +++ b/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/reuse-web-bundle-resource.https.tentative.html.ini
@@ -1,8 +1,8 @@ [reuse-web-bundle-resource.https.tentative.html] - [A webbundle should be fetched again when new script element is appended.] + [replaceWith() should reuse webbundle resources.] expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL] - ['remove(), then append()' should reuse webbundle resources] + [append() should reuse webbundle resoruces even if the old script was moved to another document.] expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL] + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/web-locks/bfcache/sharedworker-multiple.tentative.https.html.ini b/third_party/blink/web_tests/external/wpt/web-locks/bfcache/sharedworker-multiple.tentative.https.html.ini index d8bf264..169cb70 100644 --- a/third_party/blink/web_tests/external/wpt/web-locks/bfcache/sharedworker-multiple.tentative.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/web-locks/bfcache/sharedworker-multiple.tentative.https.html.ini
@@ -1,3 +1,3 @@ [sharedworker-multiple.tentative.https.html] expected: - if os == "win": [OK, TIMEOUT] + if os == "win": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html.ini b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html.ini index 9673c06..46c0f33 100644 --- a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html.ini +++ b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html.ini
@@ -1,4 +1,4 @@ [test-analyser-output.html] [AnalyserNode output] expected: - if (flag_specific == "") and (os == "win"): [PASS, FAIL] + if (os == "linux") and (flag_specific == "disable-layout-ng"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html.ini b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html.ini new file mode 100644 index 0000000..97f1aa6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html.ini
@@ -0,0 +1,9 @@ +[audioworkletnode-output-channel-count.https.html] + [X The expected output channel count is not equal to 17. Got 1.] + expected: FAIL + + [< [Dynamically change the channel count to if unspecified.\] 1 out of 1 assertions were failed.] + expected: FAIL + + [# AUDIT TASK RUNNER FINISHED: 1 out of 2 tasks were failed.] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan.html.ini b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan.html.ini deleted file mode 100644 index 9c0d59a..0000000 --- a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[convolver-response-4-chan.html] - expected: - if flag_specific == "disable-layout-ng": CRASH
diff --git a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html.ini b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html.ini index 93fe647..a30e93b 100644 --- a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html.ini +++ b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html.ini
@@ -1,4 +1,4 @@ [mediaElementAudioSourceToScriptProcessorTest.html] [All data processed correctly] expected: - if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html.ini b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html.ini deleted file mode 100644 index af268033c..0000000 --- a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[no-cors.https.html] - expected: - if flag_specific == "disable-layout-ng": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini b/third_party/blink/web_tests/external/wpt/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini new file mode 100644 index 0000000..2362edf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini
@@ -0,0 +1,3 @@ +[cross-partition.https.tentative.html] + expected: + if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/broadcastchannel/origin.window.js.ini b/third_party/blink/web_tests/external/wpt/webmessaging/broadcastchannel/origin.window.js.ini new file mode 100644 index 0000000..df1f5ad --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webmessaging/broadcastchannel/origin.window.js.ini
@@ -0,0 +1,3 @@ +[origin.window.html] + expected: + if flag_specific == "disable-layout-ng": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/message-channels/worker-post-after-close.any.js.ini b/third_party/blink/web_tests/external/wpt/webmessaging/message-channels/worker-post-after-close.any.js.ini index be207b65..38e85428 100644 --- a/third_party/blink/web_tests/external/wpt/webmessaging/message-channels/worker-post-after-close.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/webmessaging/message-channels/worker-post-after-close.any.js.ini
@@ -1,5 +1,5 @@ [worker-post-after-close.any.html] - expected: - if os == "win": [OK, TIMEOUT] [worker-post-after-close.any.worker.html] + expected: + if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/multi-globals/broadcastchannel-incumbent.sub.html.ini b/third_party/blink/web_tests/external/wpt/webmessaging/multi-globals/broadcastchannel-incumbent.sub.html.ini index b7ed4395..6742e102 100644 --- a/third_party/blink/web_tests/external/wpt/webmessaging/multi-globals/broadcastchannel-incumbent.sub.html.ini +++ b/third_party/blink/web_tests/external/wpt/webmessaging/multi-globals/broadcastchannel-incumbent.sub.html.ini
@@ -1,7 +1,6 @@ [broadcastchannel-incumbent.sub.html] - expected: - if os == "win": TIMEOUT [The incumbent page being cross-origin must not prevent the BroadcastChannel message from being seen] expected: - if (flag_specific == "") and (product == "content_shell"): FAIL - if flag_specific == "disable-layout-ng": FAIL + if (flag_specific == "") and (product == "chrome"): PASS + if flag_specific == "disable-site-isolation-trials": PASS + FAIL
diff --git a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any-expected.txt index ab8aed9..858b47cb4 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any-expected.txt
@@ -1,6 +1,6 @@ This is a testharness.js-based test. -Found 389 tests; 166 PASS, 223 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL idl_test setup assert_unreached: navigator.ml.createContext returned a Promise Reached unreachable code +Found 391 tests; 228 PASS, 163 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL idl_test setup promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" PASS idl_test validation PASS Partial interface MLContext: original interface defined PASS Partial interface MLContext: member names are unique @@ -106,53 +106,51 @@ PASS ML interface: existence and properties of interface prototype object PASS ML interface: existence and properties of interface prototype object's "constructor" property PASS ML interface: existence and properties of interface prototype object's @@unscopables property -FAIL ML interface: operation createContext(optional MLContextOptions) assert_throws_js: calling operation with this = null didn't throw TypeError function "function() { - fn.apply(obj, args); - }" did not throw -FAIL ML interface: operation createContext(GPUDevice) assert_throws_js: calling operation with this = null didn't throw TypeError function "function() { - fn.apply(obj, args); - }" did not throw +PASS ML interface: operation createContext(optional MLContextOptions) +PASS ML interface: operation createContext(GPUDevice) +PASS ML interface: member createContextSync PASS ML must be primary interface of navigator.ml PASS Stringification of navigator.ml PASS ML interface: navigator.ml must inherit property "createContext(optional MLContextOptions)" with the proper type PASS ML interface: calling createContext(optional MLContextOptions) on navigator.ml with too few arguments must throw TypeError PASS ML interface: navigator.ml must inherit property "createContext(GPUDevice)" with the proper type PASS ML interface: calling createContext(GPUDevice) on navigator.ml with too few arguments must throw TypeError +PASS ML interface: navigator.ml must not have property "createContextSync" PASS MLContext interface: existence and properties of interface object PASS MLContext interface object length PASS MLContext interface object name PASS MLContext interface: existence and properties of interface prototype object PASS MLContext interface: existence and properties of interface prototype object's "constructor" property PASS MLContext interface: existence and properties of interface prototype object's @@unscopables property -PASS MLContext interface: member compute -FAIL MLContext interface: operation computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) assert_own_property: interface prototype object missing non-static operation expected property "computeAsync" missing +PASS MLContext interface: member computeSync +FAIL MLContext interface: operation compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) assert_own_property: interface prototype object missing non-static operation expected property "compute" missing FAIL MLContext interface: operation createCommandEncoder() assert_own_property: interface prototype object missing non-static operation expected property "createCommandEncoder" missing -FAIL MLContext must be primary interface of context assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL Stringification of context assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: context must not have property "compute" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: context must inherit property "computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: calling computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: context must inherit property "createCommandEncoder()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" +PASS MLContext must be primary interface of context +PASS Stringification of context +PASS MLContext interface: context must not have property "computeSync" +FAIL MLContext interface: context must inherit property "compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type assert_inherits: property "compute" not found in prototype chain +FAIL MLContext interface: calling compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError assert_inherits: property "compute" not found in prototype chain +FAIL MLContext interface: context must inherit property "createCommandEncoder()" with the proper type assert_inherits: property "createCommandEncoder" not found in prototype chain PASS MLOperand interface: existence and properties of interface object PASS MLOperand interface object length PASS MLOperand interface object name PASS MLOperand interface: existence and properties of interface prototype object PASS MLOperand interface: existence and properties of interface prototype object's "constructor" property PASS MLOperand interface: existence and properties of interface prototype object's @@unscopables property -FAIL MLOperand must be primary interface of input assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: input is not defined" -FAIL Stringification of input assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: input is not defined" -FAIL MLOperand must be primary interface of filter assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: filter is not defined" -FAIL Stringification of filter assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: filter is not defined" -FAIL MLOperand must be primary interface of output assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: output is not defined" -FAIL Stringification of output assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: output is not defined" +PASS MLOperand must be primary interface of input +PASS Stringification of input +PASS MLOperand must be primary interface of filter +PASS Stringification of filter +PASS MLOperand must be primary interface of output +PASS Stringification of output PASS MLOperator interface: existence and properties of interface object PASS MLOperator interface object length PASS MLOperator interface object name PASS MLOperator interface: existence and properties of interface prototype object PASS MLOperator interface: existence and properties of interface prototype object's "constructor" property PASS MLOperator interface: existence and properties of interface prototype object's @@unscopables property -FAIL MLOperator must be primary interface of relu assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: relu is not defined" -FAIL Stringification of relu assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: relu is not defined" +PASS MLOperator must be primary interface of relu +PASS Stringification of relu PASS MLGraphBuilder interface: existence and properties of interface object PASS MLGraphBuilder interface object length PASS MLGraphBuilder interface object name @@ -162,8 +160,8 @@ PASS MLGraphBuilder interface: operation input(DOMString, MLOperandDescriptor) FAIL MLGraphBuilder interface: operation constant(MLOperandDescriptor, MLBufferView) assert_equals: property has wrong .length expected 1 but got 2 FAIL MLGraphBuilder interface: operation constant(double, optional MLOperandType) assert_equals: property has wrong .length expected 1 but got 2 -PASS MLGraphBuilder interface: member build -PASS MLGraphBuilder interface: operation buildAsync(MLNamedOperands) +FAIL MLGraphBuilder interface: operation build(MLNamedOperands) assert_own_property: interface prototype object missing non-static operation expected property "build" missing +PASS MLGraphBuilder interface: member buildSync FAIL MLGraphBuilder interface: operation batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) assert_own_property: interface prototype object missing non-static operation expected property "batchNormalization" missing PASS MLGraphBuilder interface: operation clamp(MLOperand, optional MLClampOptions) PASS MLGraphBuilder interface: operation clamp(optional MLClampOptions) @@ -218,7 +216,7 @@ PASS MLGraphBuilder interface: operation relu(MLOperand) PASS MLGraphBuilder interface: operation relu() PASS MLGraphBuilder interface: operation resample2d(MLOperand, optional MLResample2dOptions) -PASS MLGraphBuilder interface: operation reshape(MLOperand, sequence<long>) +PASS MLGraphBuilder interface: operation reshape(MLOperand, sequence<unsigned long?>) PASS MLGraphBuilder interface: operation sigmoid(MLOperand) PASS MLGraphBuilder interface: operation sigmoid() FAIL MLGraphBuilder interface: operation slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) assert_own_property: interface prototype object missing non-static operation expected property "slice" missing @@ -232,148 +230,148 @@ FAIL MLGraphBuilder interface: operation tanh(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "tanh" missing FAIL MLGraphBuilder interface: operation tanh() assert_own_property: interface prototype object missing non-static operation expected property "tanh" missing FAIL MLGraphBuilder interface: operation transpose(MLOperand, optional MLTransposeOptions) assert_own_property: interface prototype object missing non-static operation expected property "transpose" missing -FAIL MLGraphBuilder must be primary interface of builder assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL Stringification of builder assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "input(DOMString, MLOperandDescriptor)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling input(DOMString, MLOperandDescriptor) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "constant(MLOperandDescriptor, MLBufferView)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling constant(MLOperandDescriptor, MLBufferView) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "constant(double, optional MLOperandType)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling constant(double, optional MLOperandType) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must not have property "build" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "buildAsync(MLNamedOperands)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling buildAsync(MLNamedOperands) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "clamp(MLOperand, optional MLClampOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling clamp(MLOperand, optional MLClampOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "clamp(optional MLClampOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling clamp(optional MLClampOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "concat(sequence<MLOperand>, long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling concat(sequence<MLOperand>, long) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "conv2d(MLOperand, MLOperand, optional MLConv2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling conv2d(MLOperand, MLOperand, optional MLConv2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "add(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling add(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sub(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sub(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "mul(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling mul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "div(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling div(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "max(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling max(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "min(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling min(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "pow(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling pow(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "abs(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling abs(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "ceil(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling ceil(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "cos(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling cos(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "exp(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling exp(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "floor(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling floor(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "log(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling log(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "neg(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling neg(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sin(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sin(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tan(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling tan(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "elu(MLOperand, optional MLEluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling elu(MLOperand, optional MLEluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "elu(optional MLEluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling elu(optional MLEluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gemm(MLOperand, MLOperand, optional MLGemmOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gemm(MLOperand, MLOperand, optional MLGemmOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(MLOperand, optional MLHardSigmoidOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSigmoid(MLOperand, optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(optional MLHardSigmoidOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSigmoid(optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSwish(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSwish(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSwish()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(MLOperand, optional MLLeakyReluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling leakyRelu(MLOperand, optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(optional MLLeakyReluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling leakyRelu(optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "matmul(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling matmul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "linear(MLOperand, optional MLLinearOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling linear(MLOperand, optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "linear(optional MLLinearOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling linear(optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "pad(MLOperand, MLOperand, optional MLPadOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling pad(MLOperand, MLOperand, optional MLPadOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "averagePool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling averagePool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "l2Pool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling l2Pool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "maxPool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling maxPool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceL1(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceL1(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceL2(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceL2(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSum(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceLogSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSumExp(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceLogSumExp(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMax(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMax(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMean(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMean(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMin(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMin(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceProduct(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceProduct(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceSum(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceSumSquare(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceSumSquare(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "relu(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling relu(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "relu()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "resample2d(MLOperand, optional MLResample2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling resample2d(MLOperand, optional MLResample2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<long>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reshape(MLOperand, sequence<long>) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sigmoid(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sigmoid(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sigmoid()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softmax(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softmax(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softplus(MLOperand, optional MLSoftplusOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softplus(MLOperand, optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softplus(optional MLSoftplusOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softplus(optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softsign(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softsign(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softsign()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "squeeze(MLOperand, optional MLSqueezeOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling squeeze(MLOperand, optional MLSqueezeOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tanh(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling tanh(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tanh()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "transpose(MLOperand, optional MLTransposeOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling transpose(MLOperand, optional MLTransposeOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" +PASS MLGraphBuilder must be primary interface of builder +PASS Stringification of builder +PASS MLGraphBuilder interface: builder must inherit property "input(DOMString, MLOperandDescriptor)" with the proper type +PASS MLGraphBuilder interface: calling input(DOMString, MLOperandDescriptor) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "constant(MLOperandDescriptor, MLBufferView)" with the proper type +PASS MLGraphBuilder interface: calling constant(MLOperandDescriptor, MLBufferView) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "constant(double, optional MLOperandType)" with the proper type +PASS MLGraphBuilder interface: calling constant(double, optional MLOperandType) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "build(MLNamedOperands)" with the proper type assert_inherits: property "build" not found in prototype chain +FAIL MLGraphBuilder interface: calling build(MLNamedOperands) on builder with too few arguments must throw TypeError assert_inherits: property "build" not found in prototype chain +PASS MLGraphBuilder interface: builder must not have property "buildSync" +FAIL MLGraphBuilder interface: builder must inherit property "batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions)" with the proper type assert_inherits: property "batchNormalization" not found in prototype chain +FAIL MLGraphBuilder interface: calling batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) on builder with too few arguments must throw TypeError assert_inherits: property "batchNormalization" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "clamp(MLOperand, optional MLClampOptions)" with the proper type +PASS MLGraphBuilder interface: calling clamp(MLOperand, optional MLClampOptions) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "clamp(optional MLClampOptions)" with the proper type +PASS MLGraphBuilder interface: calling clamp(optional MLClampOptions) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "concat(sequence<MLOperand>, long)" with the proper type assert_inherits: property "concat" not found in prototype chain +FAIL MLGraphBuilder interface: calling concat(sequence<MLOperand>, long) on builder with too few arguments must throw TypeError assert_inherits: property "concat" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "conv2d(MLOperand, MLOperand, optional MLConv2dOptions)" with the proper type +PASS MLGraphBuilder interface: calling conv2d(MLOperand, MLOperand, optional MLConv2dOptions) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions)" with the proper type assert_inherits: property "convTranspose2d" not found in prototype chain +FAIL MLGraphBuilder interface: calling convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) on builder with too few arguments must throw TypeError assert_inherits: property "convTranspose2d" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "add(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling add(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "sub(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling sub(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "mul(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling mul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "div(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling div(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "max(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling max(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "min(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling min(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "pow(MLOperand, MLOperand)" with the proper type assert_inherits: property "pow" not found in prototype chain +FAIL MLGraphBuilder interface: calling pow(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "pow" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "abs(MLOperand)" with the proper type assert_inherits: property "abs" not found in prototype chain +FAIL MLGraphBuilder interface: calling abs(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "abs" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "ceil(MLOperand)" with the proper type assert_inherits: property "ceil" not found in prototype chain +FAIL MLGraphBuilder interface: calling ceil(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "ceil" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "cos(MLOperand)" with the proper type assert_inherits: property "cos" not found in prototype chain +FAIL MLGraphBuilder interface: calling cos(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "cos" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "exp(MLOperand)" with the proper type assert_inherits: property "exp" not found in prototype chain +FAIL MLGraphBuilder interface: calling exp(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "exp" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "floor(MLOperand)" with the proper type assert_inherits: property "floor" not found in prototype chain +FAIL MLGraphBuilder interface: calling floor(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "floor" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "log(MLOperand)" with the proper type assert_inherits: property "log" not found in prototype chain +FAIL MLGraphBuilder interface: calling log(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "log" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "neg(MLOperand)" with the proper type assert_inherits: property "neg" not found in prototype chain +FAIL MLGraphBuilder interface: calling neg(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "neg" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "sin(MLOperand)" with the proper type assert_inherits: property "sin" not found in prototype chain +FAIL MLGraphBuilder interface: calling sin(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "sin" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "tan(MLOperand)" with the proper type assert_inherits: property "tan" not found in prototype chain +FAIL MLGraphBuilder interface: calling tan(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "tan" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "elu(MLOperand, optional MLEluOptions)" with the proper type assert_inherits: property "elu" not found in prototype chain +FAIL MLGraphBuilder interface: calling elu(MLOperand, optional MLEluOptions) on builder with too few arguments must throw TypeError assert_inherits: property "elu" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "elu(optional MLEluOptions)" with the proper type assert_inherits: property "elu" not found in prototype chain +FAIL MLGraphBuilder interface: calling elu(optional MLEluOptions) on builder with too few arguments must throw TypeError assert_inherits: property "elu" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "gemm(MLOperand, MLOperand, optional MLGemmOptions)" with the proper type +PASS MLGraphBuilder interface: calling gemm(MLOperand, MLOperand, optional MLGemmOptions) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions)" with the proper type assert_inherits: property "gru" not found in prototype chain +FAIL MLGraphBuilder interface: calling gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions) on builder with too few arguments must throw TypeError assert_inherits: property "gru" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions)" with the proper type assert_inherits: property "gruCell" not found in prototype chain +FAIL MLGraphBuilder interface: calling gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions) on builder with too few arguments must throw TypeError assert_inherits: property "gruCell" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(MLOperand, optional MLHardSigmoidOptions)" with the proper type assert_inherits: property "hardSigmoid" not found in prototype chain +FAIL MLGraphBuilder interface: calling hardSigmoid(MLOperand, optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_inherits: property "hardSigmoid" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(optional MLHardSigmoidOptions)" with the proper type assert_inherits: property "hardSigmoid" not found in prototype chain +FAIL MLGraphBuilder interface: calling hardSigmoid(optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_inherits: property "hardSigmoid" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "hardSwish(MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling hardSwish(MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "hardSwish()" with the proper type +FAIL MLGraphBuilder interface: builder must inherit property "instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions)" with the proper type assert_inherits: property "instanceNormalization" not found in prototype chain +FAIL MLGraphBuilder interface: calling instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions) on builder with too few arguments must throw TypeError assert_inherits: property "instanceNormalization" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(MLOperand, optional MLLeakyReluOptions)" with the proper type assert_inherits: property "leakyRelu" not found in prototype chain +FAIL MLGraphBuilder interface: calling leakyRelu(MLOperand, optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_inherits: property "leakyRelu" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(optional MLLeakyReluOptions)" with the proper type assert_inherits: property "leakyRelu" not found in prototype chain +FAIL MLGraphBuilder interface: calling leakyRelu(optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_inherits: property "leakyRelu" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "matmul(MLOperand, MLOperand)" with the proper type assert_inherits: property "matmul" not found in prototype chain +FAIL MLGraphBuilder interface: calling matmul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "matmul" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "linear(MLOperand, optional MLLinearOptions)" with the proper type assert_inherits: property "linear" not found in prototype chain +FAIL MLGraphBuilder interface: calling linear(MLOperand, optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_inherits: property "linear" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "linear(optional MLLinearOptions)" with the proper type assert_inherits: property "linear" not found in prototype chain +FAIL MLGraphBuilder interface: calling linear(optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_inherits: property "linear" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "pad(MLOperand, MLOperand, optional MLPadOptions)" with the proper type assert_inherits: property "pad" not found in prototype chain +FAIL MLGraphBuilder interface: calling pad(MLOperand, MLOperand, optional MLPadOptions) on builder with too few arguments must throw TypeError assert_inherits: property "pad" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "averagePool2d(MLOperand, optional MLPool2dOptions)" with the proper type +PASS MLGraphBuilder interface: calling averagePool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "l2Pool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_inherits: property "l2Pool2d" not found in prototype chain +FAIL MLGraphBuilder interface: calling l2Pool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_inherits: property "l2Pool2d" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "maxPool2d(MLOperand, optional MLPool2dOptions)" with the proper type +PASS MLGraphBuilder interface: calling maxPool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "reduceL1(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceL1" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceL1(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceL1" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceL2(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceL2" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceL2(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceL2" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSum(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceLogSum" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceLogSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceLogSum" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSumExp(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceLogSumExp" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceLogSumExp(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceLogSumExp" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceMax(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceMax" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceMax(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceMax" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceMean(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceMean" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceMean(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceMean" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceMin(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceMin" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceMin(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceMin" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceProduct(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceProduct" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceProduct(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceProduct" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceSum(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceSum" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceSum" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceSumSquare(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceSumSquare" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceSumSquare(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceSumSquare" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "relu(MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling relu(MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "relu()" with the proper type +PASS MLGraphBuilder interface: builder must inherit property "resample2d(MLOperand, optional MLResample2dOptions)" with the proper type +PASS MLGraphBuilder interface: calling resample2d(MLOperand, optional MLResample2dOptions) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<unsigned long?>)" with the proper type +PASS MLGraphBuilder interface: calling reshape(MLOperand, sequence<unsigned long?>) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "sigmoid(MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling sigmoid(MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "sigmoid()" with the proper type +FAIL MLGraphBuilder interface: builder must inherit property "slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions)" with the proper type assert_inherits: property "slice" not found in prototype chain +FAIL MLGraphBuilder interface: calling slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "slice" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "softmax(MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling softmax(MLOperand) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "softplus(MLOperand, optional MLSoftplusOptions)" with the proper type assert_inherits: property "softplus" not found in prototype chain +FAIL MLGraphBuilder interface: calling softplus(MLOperand, optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_inherits: property "softplus" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "softplus(optional MLSoftplusOptions)" with the proper type assert_inherits: property "softplus" not found in prototype chain +FAIL MLGraphBuilder interface: calling softplus(optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_inherits: property "softplus" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "softsign(MLOperand)" with the proper type assert_inherits: property "softsign" not found in prototype chain +FAIL MLGraphBuilder interface: calling softsign(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "softsign" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "softsign()" with the proper type assert_inherits: property "softsign" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions)" with the proper type assert_inherits: property "split" not found in prototype chain +FAIL MLGraphBuilder interface: calling split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions) on builder with too few arguments must throw TypeError assert_inherits: property "split" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "squeeze(MLOperand, optional MLSqueezeOptions)" with the proper type assert_inherits: property "squeeze" not found in prototype chain +FAIL MLGraphBuilder interface: calling squeeze(MLOperand, optional MLSqueezeOptions) on builder with too few arguments must throw TypeError assert_inherits: property "squeeze" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "tanh(MLOperand)" with the proper type assert_inherits: property "tanh" not found in prototype chain +FAIL MLGraphBuilder interface: calling tanh(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "tanh" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "tanh()" with the proper type assert_inherits: property "tanh" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "transpose(MLOperand, optional MLTransposeOptions)" with the proper type assert_inherits: property "transpose" not found in prototype chain +FAIL MLGraphBuilder interface: calling transpose(MLOperand, optional MLTransposeOptions) on builder with too few arguments must throw TypeError assert_inherits: property "transpose" not found in prototype chain PASS MLGraph interface: existence and properties of interface object PASS MLGraph interface object length PASS MLGraph interface object name
diff --git a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js index 5f53831..6122134 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js +++ b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js
@@ -35,25 +35,22 @@ } for (const deviceType of DeviceTypeArray) { - const context = navigator.ml.createContext({deviceType}); - // Per spec navigator.ml.createContext should return a MLContext, but - // in Chromium it returns a Promise<MLContext>. Fail the setup if this - // happens, since the tests wouldn't make sense. - if (context instanceof Promise) { - context.catch(() => {}); - assert_unreached('navigator.ml.createContext returned a Promise'); + if (isSync) { + self.context = navigator.ml.createContextSync({deviceType}); + } else { + self.context = await navigator.ml.createContext({deviceType}); } - self.context = context; - self.builder = new MLGraphBuilder(context); + + self.builder = new MLGraphBuilder(self.context); self.input = builder.input('input', {type: 'float32', dimensions: [1, 1, 5, 5]}); self.filter = builder.constant({type: 'float32', dimensions: [1, 1, 3, 3]}, new Float32Array(9).fill(1)); self.relu = builder.relu(); self.output = builder.conv2d(input, filter, {activation: relu, inputLayout: "nchw"}); if (isSync) { - self.graph = builder.build({output}); + self.graph = builder.buildSync({output}); } else { - self.graph = await builder.buildAsync({output}); + self.graph = await builder.build({output}); } } }
diff --git a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js.ini b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js.ini index 38d8bc33..4c1b1e4 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js.ini
@@ -1,6 +1,4 @@ [idlharness.https.any.html] - expected: - if product == "chrome": [OK, ERROR] [idl_test setup] expected: FAIL @@ -10,60 +8,12 @@ [Stringification of navigator] expected: FAIL - [ML interface: operation createContext(optional MLContextOptions)] - expected: FAIL - - [ML interface: operation createContext(GPUDevice)] - expected: FAIL - - [MLContext interface: operation computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)] - expected: FAIL - [MLContext interface: operation createCommandEncoder()] expected: FAIL - [MLContext must be primary interface of context] - expected: FAIL - - [Stringification of context] - expected: FAIL - - [MLContext interface: context must not have property "compute"] - expected: FAIL - - [MLContext interface: context must inherit property "computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type] - expected: FAIL - - [MLContext interface: calling computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError] - expected: FAIL - [MLContext interface: context must inherit property "createCommandEncoder()" with the proper type] expected: FAIL - [MLOperand must be primary interface of input] - expected: FAIL - - [Stringification of input] - expected: FAIL - - [MLOperand must be primary interface of filter] - expected: FAIL - - [Stringification of filter] - expected: FAIL - - [MLOperand must be primary interface of output] - expected: FAIL - - [Stringification of output] - expected: FAIL - - [MLOperator must be primary interface of relu] - expected: FAIL - - [Stringification of relu] - expected: FAIL - [MLGraphBuilder interface: operation constant(MLOperandDescriptor, MLBufferView)] expected: FAIL @@ -211,111 +161,24 @@ [MLGraphBuilder interface: operation transpose(MLOperand, optional MLTransposeOptions)] expected: FAIL - [MLGraphBuilder must be primary interface of builder] - expected: FAIL - - [Stringification of builder] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "input(DOMString, MLOperandDescriptor)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling input(DOMString, MLOperandDescriptor) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "constant(MLOperandDescriptor, MLBufferView)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling constant(MLOperandDescriptor, MLBufferView) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "constant(double, optional MLOperandType)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling constant(double, optional MLOperandType) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must not have property "build"] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "buildAsync(MLNamedOperands)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling buildAsync(MLNamedOperands) on builder with too few arguments must throw TypeError] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions)" with the proper type] expected: FAIL [MLGraphBuilder interface: calling batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "clamp(MLOperand, optional MLClampOptions)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling clamp(MLOperand, optional MLClampOptions) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "clamp(optional MLClampOptions)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling clamp(optional MLClampOptions) on builder with too few arguments must throw TypeError] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "concat(sequence<MLOperand>, long)" with the proper type] expected: FAIL [MLGraphBuilder interface: calling concat(sequence<MLOperand>, long) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "conv2d(MLOperand, MLOperand, optional MLConv2dOptions)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling conv2d(MLOperand, MLOperand, optional MLConv2dOptions) on builder with too few arguments must throw TypeError] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions)" with the proper type] expected: FAIL [MLGraphBuilder interface: calling convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "add(MLOperand, MLOperand)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling add(MLOperand, MLOperand) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "sub(MLOperand, MLOperand)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling sub(MLOperand, MLOperand) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "mul(MLOperand, MLOperand)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling mul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "div(MLOperand, MLOperand)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling div(MLOperand, MLOperand) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "max(MLOperand, MLOperand)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling max(MLOperand, MLOperand) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "min(MLOperand, MLOperand)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling min(MLOperand, MLOperand) on builder with too few arguments must throw TypeError] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "pow(MLOperand, MLOperand)" with the proper type] expected: FAIL @@ -388,12 +251,6 @@ [MLGraphBuilder interface: calling elu(optional MLEluOptions) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "gemm(MLOperand, MLOperand, optional MLGemmOptions)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling gemm(MLOperand, MLOperand, optional MLGemmOptions) on builder with too few arguments must throw TypeError] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions)" with the proper type] expected: FAIL @@ -418,15 +275,6 @@ [MLGraphBuilder interface: calling hardSigmoid(optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "hardSwish(MLOperand)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling hardSwish(MLOperand) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "hardSwish()" with the proper type] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions)" with the proper type] expected: FAIL @@ -469,24 +317,12 @@ [MLGraphBuilder interface: calling pad(MLOperand, MLOperand, optional MLPadOptions) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "averagePool2d(MLOperand, optional MLPool2dOptions)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling averagePool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "l2Pool2d(MLOperand, optional MLPool2dOptions)" with the proper type] expected: FAIL [MLGraphBuilder interface: calling l2Pool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "maxPool2d(MLOperand, optional MLPool2dOptions)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling maxPool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "reduceL1(MLOperand, optional MLReduceOptions)" with the proper type] expected: FAIL @@ -547,48 +383,12 @@ [MLGraphBuilder interface: calling reduceSumSquare(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "relu(MLOperand)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling relu(MLOperand) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "relu()" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "resample2d(MLOperand, optional MLResample2dOptions)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling resample2d(MLOperand, optional MLResample2dOptions) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<long>)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling reshape(MLOperand, sequence<long>) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "sigmoid(MLOperand)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling sigmoid(MLOperand) on builder with too few arguments must throw TypeError] - expected: FAIL - - [MLGraphBuilder interface: builder must inherit property "sigmoid()" with the proper type] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions)" with the proper type] expected: FAIL [MLGraphBuilder interface: calling slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "softmax(MLOperand)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling softmax(MLOperand) on builder with too few arguments must throw TypeError] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "softplus(MLOperand, optional MLSoftplusOptions)" with the proper type] expected: FAIL @@ -670,6 +470,24 @@ [MLCommandEncoder interface: operation finish(optional GPUCommandBufferDescriptor)] expected: FAIL + [MLContext interface: calling compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError] + expected: FAIL + + [MLContext interface: context must inherit property "compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type] + expected: FAIL + + [MLGraphBuilder interface: calling build(MLNamedOperands) on builder with too few arguments must throw TypeError] + expected: FAIL + + [MLGraphBuilder interface: operation build(MLNamedOperands)] + expected: FAIL + + [MLContext interface: operation compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)] + expected: FAIL + + [MLGraphBuilder interface: builder must inherit property "build(MLNamedOperands)" with the proper type] + expected: FAIL + [idlharness.https.any.worker.html] [idl_test setup] @@ -744,9 +562,6 @@ [MLContext interface: operation compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)] expected: FAIL - [MLContext interface: operation computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)] - expected: FAIL - [MLContext interface: operation createCommandEncoder()] expected: FAIL @@ -762,12 +577,6 @@ [MLContext interface: calling compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError] expected: FAIL - [MLContext interface: context must inherit property "computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type] - expected: FAIL - - [MLContext interface: calling computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError] - expected: FAIL - [MLContext interface: context must inherit property "createCommandEncoder()" with the proper type] expected: FAIL @@ -861,9 +670,6 @@ [MLGraphBuilder interface: operation build(MLNamedOperands)] expected: FAIL - [MLGraphBuilder interface: operation buildAsync(MLNamedOperands)] - expected: FAIL - [MLGraphBuilder interface: operation batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions)] expected: FAIL @@ -1026,9 +832,6 @@ [MLGraphBuilder interface: operation resample2d(MLOperand, optional MLResample2dOptions)] expected: FAIL - [MLGraphBuilder interface: operation reshape(MLOperand, sequence<long>)] - expected: FAIL - [MLGraphBuilder interface: operation sigmoid(MLOperand)] expected: FAIL @@ -1098,12 +901,6 @@ [MLGraphBuilder interface: calling build(MLNamedOperands) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "buildAsync(MLNamedOperands)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling buildAsync(MLNamedOperands) on builder with too few arguments must throw TypeError] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions)" with the proper type] expected: FAIL @@ -1422,12 +1219,6 @@ [MLGraphBuilder interface: calling resample2d(MLOperand, optional MLResample2dOptions) on builder with too few arguments must throw TypeError] expected: FAIL - [MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<long>)" with the proper type] - expected: FAIL - - [MLGraphBuilder interface: calling reshape(MLOperand, sequence<long>) on builder with too few arguments must throw TypeError] - expected: FAIL - [MLGraphBuilder interface: builder must inherit property "sigmoid(MLOperand)" with the proper type] expected: FAIL @@ -1553,3 +1344,48 @@ [WorkerNavigator interface: navigator must inherit property "ml" with the proper type] expected: FAIL + + [ML interface: operation createContextSync(GPUDevice)] + expected: FAIL + + [ML interface: operation createContextSync(optional MLContextOptions)] + expected: FAIL + + [MLGraphBuilder interface: operation reshape(MLOperand, sequence<unsigned long?>)] + expected: FAIL + + [MLContext interface: calling computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError] + expected: FAIL + + [MLGraphBuilder interface: calling buildSync(MLNamedOperands) on builder with too few arguments must throw TypeError] + expected: FAIL + + [MLGraphBuilder interface: operation buildSync(MLNamedOperands)] + expected: FAIL + + [ML interface: calling createContextSync(optional MLContextOptions) on navigator.ml with too few arguments must throw TypeError] + expected: FAIL + + [MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<unsigned long?>)" with the proper type] + expected: FAIL + + [MLGraphBuilder interface: calling reshape(MLOperand, sequence<unsigned long?>) on builder with too few arguments must throw TypeError] + expected: FAIL + + [MLContext interface: context must inherit property "computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type] + expected: FAIL + + [MLGraphBuilder interface: builder must inherit property "buildSync(MLNamedOperands)" with the proper type] + expected: FAIL + + [ML interface: navigator.ml must inherit property "createContextSync(GPUDevice)" with the proper type] + expected: FAIL + + [ML interface: navigator.ml must inherit property "createContextSync(optional MLContextOptions)" with the proper type] + expected: FAIL + + [MLContext interface: operation computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)] + expected: FAIL + + [ML interface: calling createContextSync(GPUDevice) on navigator.ml with too few arguments must throw TypeError] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.worker-expected.txt index 21d0d61..a4befa25 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.worker-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 391 tests; 97 PASS, 294 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 397 tests; 97 PASS, 300 FAIL, 0 TIMEOUT, 0 NOTRUN. FAIL idl_test setup promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of undefined (reading 'createContext')" PASS idl_test validation PASS Partial interface MLContext: original interface defined @@ -108,27 +108,33 @@ FAIL ML interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ML" expected property "ML" missing FAIL ML interface: operation createContext(optional MLContextOptions) assert_own_property: self does not have own property "ML" expected property "ML" missing FAIL ML interface: operation createContext(GPUDevice) assert_own_property: self does not have own property "ML" expected property "ML" missing +FAIL ML interface: operation createContextSync(optional MLContextOptions) assert_own_property: self does not have own property "ML" expected property "ML" missing +FAIL ML interface: operation createContextSync(GPUDevice) assert_own_property: self does not have own property "ML" expected property "ML" missing FAIL ML must be primary interface of navigator.ml assert_equals: wrong typeof object expected "object" but got "undefined" FAIL Stringification of navigator.ml assert_equals: wrong typeof object expected "object" but got "undefined" FAIL ML interface: navigator.ml must inherit property "createContext(optional MLContextOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" FAIL ML interface: calling createContext(optional MLContextOptions) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" FAIL ML interface: navigator.ml must inherit property "createContext(GPUDevice)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" FAIL ML interface: calling createContext(GPUDevice) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" +FAIL ML interface: navigator.ml must inherit property "createContextSync(optional MLContextOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" +FAIL ML interface: calling createContextSync(optional MLContextOptions) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" +FAIL ML interface: navigator.ml must inherit property "createContextSync(GPUDevice)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" +FAIL ML interface: calling createContextSync(GPUDevice) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" FAIL MLContext interface: existence and properties of interface object assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing FAIL MLContext interface object length assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing FAIL MLContext interface object name assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing FAIL MLContext interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing FAIL MLContext interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing FAIL MLContext interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing +FAIL MLContext interface: operation computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing FAIL MLContext interface: operation compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface: operation computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing FAIL MLContext interface: operation createCommandEncoder() assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing FAIL MLContext must be primary interface of context assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" FAIL Stringification of context assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" +FAIL MLContext interface: context must inherit property "computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" +FAIL MLContext interface: calling computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" FAIL MLContext interface: context must inherit property "compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" FAIL MLContext interface: calling compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: context must inherit property "computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: calling computeAsync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" FAIL MLContext interface: context must inherit property "createCommandEncoder()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" FAIL MLOperand interface: existence and properties of interface object assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing FAIL MLOperand interface object length assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing @@ -160,7 +166,7 @@ FAIL MLGraphBuilder interface: operation constant(MLOperandDescriptor, MLBufferView) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing FAIL MLGraphBuilder interface: operation constant(double, optional MLOperandType) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing FAIL MLGraphBuilder interface: operation build(MLNamedOperands) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation buildAsync(MLNamedOperands) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing +FAIL MLGraphBuilder interface: operation buildSync(MLNamedOperands) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing FAIL MLGraphBuilder interface: operation batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing FAIL MLGraphBuilder interface: operation clamp(MLOperand, optional MLClampOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing FAIL MLGraphBuilder interface: operation clamp(optional MLClampOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing @@ -215,7 +221,7 @@ FAIL MLGraphBuilder interface: operation relu(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing FAIL MLGraphBuilder interface: operation relu() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing FAIL MLGraphBuilder interface: operation resample2d(MLOperand, optional MLResample2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reshape(MLOperand, sequence<long>) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing +FAIL MLGraphBuilder interface: operation reshape(MLOperand, sequence<unsigned long?>) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing FAIL MLGraphBuilder interface: operation sigmoid(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing FAIL MLGraphBuilder interface: operation sigmoid() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing FAIL MLGraphBuilder interface: operation slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing @@ -239,8 +245,8 @@ FAIL MLGraphBuilder interface: calling constant(double, optional MLOperandType) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" FAIL MLGraphBuilder interface: builder must inherit property "build(MLNamedOperands)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" FAIL MLGraphBuilder interface: calling build(MLNamedOperands) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "buildAsync(MLNamedOperands)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling buildAsync(MLNamedOperands) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" +FAIL MLGraphBuilder interface: builder must inherit property "buildSync(MLNamedOperands)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" +FAIL MLGraphBuilder interface: calling buildSync(MLNamedOperands) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" FAIL MLGraphBuilder interface: builder must inherit property "batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" FAIL MLGraphBuilder interface: calling batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" FAIL MLGraphBuilder interface: builder must inherit property "clamp(MLOperand, optional MLClampOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" @@ -347,8 +353,8 @@ FAIL MLGraphBuilder interface: builder must inherit property "relu()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" FAIL MLGraphBuilder interface: builder must inherit property "resample2d(MLOperand, optional MLResample2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" FAIL MLGraphBuilder interface: calling resample2d(MLOperand, optional MLResample2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<long>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reshape(MLOperand, sequence<long>) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" +FAIL MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<unsigned long?>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" +FAIL MLGraphBuilder interface: calling reshape(MLOperand, sequence<unsigned long?>) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" FAIL MLGraphBuilder interface: builder must inherit property "sigmoid(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" FAIL MLGraphBuilder interface: calling sigmoid(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" FAIL MLGraphBuilder interface: builder must inherit property "sigmoid()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined"
diff --git a/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats.https-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats.https-expected.txt index f169960..fe1bbcf 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats.https-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats.https-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 246 tests; 230 PASS, 16 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 248 tests; 231 PASS, 17 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS getStats succeeds PASS Validating stats PASS codec's payloadType @@ -17,6 +17,7 @@ PASS inbound-rtp's remoteId PASS inbound-rtp's framesDecoded PASS inbound-rtp's keyFramesDecoded +FAIL inbound-rtp's framesRendered assert_true: Is framesRendered present expected true got false PASS inbound-rtp's framesDropped PASS inbound-rtp's frameWidth PASS inbound-rtp's frameHeight @@ -96,6 +97,7 @@ PASS outbound-rtp's encoderImplementation PASS outbound-rtp's powerEfficientEncoder PASS outbound-rtp's active +PASS outbound-rtp's scalabilityMode PASS outbound-rtp's packetsSent PASS outbound-rtp's bytesSent PASS outbound-rtp's ssrc
diff --git a/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats.https.html.ini b/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats.https.html.ini index 1b34d11..a68414e9 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats.https.html.ini
@@ -56,10 +56,6 @@ [media-playout's id] expected: FAIL - [transport's remoteCertificateId] - expected: - if (flag_specific == "") and (product == "chrome"): [PASS, FAIL] - [candidate-pair's availableIncomingBitrate] expected: PRECONDITION_FAILED @@ -92,3 +88,6 @@ [certificate's issuerCertificateId] expected: PRECONDITION_FAILED + + [inbound-rtp's framesRendered] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-onicecandidateerror.https.html.ini b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-onicecandidateerror.https.html.ini index ba907ae9..14dff26 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-onicecandidateerror.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-onicecandidateerror.https.html.ini
@@ -1,6 +1,6 @@ [RTCPeerConnection-onicecandidateerror.https.html] expected: - if product == "chrome": [OK, TIMEOUT] + if product == "chrome": TIMEOUT [Surfacing onicecandidateerror] expected: - if product == "chrome": [PASS, TIMEOUT] + if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html.ini b/third_party/blink/web_tests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html.ini new file mode 100644 index 0000000..fa43da55 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html.ini
@@ -0,0 +1,5 @@ +[bufferedAmount-defineProperty-setter.html?wss] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH] + +[bufferedAmount-defineProperty-setter.html]
diff --git a/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/close.any.js.ini b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/close.any.js.ini index 381caf01..2dc8a82 100644 --- a/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/close.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/close.any.js.ini
@@ -3,8 +3,35 @@ [close.any.sharedworker.html?wss] [close.any.worker.html?wpt_flags=h2] + expected: + if product == "chrome": [OK, TIMEOUT] [canceling the readable should result in a clean close] - expected: [PASS, TIMEOUT] + expected: + if product == "chrome": [PASS, TIMEOUT] + + [canceling the readable with a code and reason should use them] + expected: + if product == "chrome": [PASS, NOTRUN] + + [canceling the readable with a reason but no code should be ignored] + expected: + if product == "chrome": [PASS, NOTRUN] + + [canceling the readable with a code should send that code] + expected: + if product == "chrome": [PASS, NOTRUN] + + [canceling the readable with an invalid code should be ignored] + expected: + if product == "chrome": [PASS, NOTRUN] + + [canceling the readable with a DOMException should be ignored] + expected: + if product == "chrome": [PASS, NOTRUN] + + [canceling the readable with an invalid reason should be ignored] + expected: + if product == "chrome": [PASS, NOTRUN] [close.any.serviceworker.html?wss] @@ -13,7 +40,15 @@ [close.any.html?wpt_flags=h2] expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT] + if product == "chrome": [OK, TIMEOUT] + [canceling the readable with a DOMException should be ignored] + expected: + if product == "chrome": [PASS, NOTRUN] + + [canceling the readable with an invalid reason should be ignored] + expected: + if product == "chrome": [PASS, TIMEOUT] + [close.any.sharedworker.html?wpt_flags=h2] [canceling the readable with a code should send that code] @@ -39,3 +74,24 @@ [close.any.serviceworker.html?wpt_flags=h2] + expected: + if product == "chrome": [OK, TIMEOUT] + [canceling the readable with a code and reason should use them] + expected: + if product == "chrome": [PASS, TIMEOUT] + + [canceling the readable with a reason but no code should be ignored] + expected: + if product == "chrome": [PASS, NOTRUN] + + [canceling the readable with an invalid code should be ignored] + expected: + if product == "chrome": [PASS, NOTRUN] + + [canceling the readable with a DOMException should be ignored] + expected: + if product == "chrome": [PASS, NOTRUN] + + [canceling the readable with an invalid reason should be ignored] + expected: + if product == "chrome": [PASS, NOTRUN]
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/audio_has_no_subtitles.html.ini b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/audio_has_no_subtitles.html.ini deleted file mode 100644 index 6a131e9..0000000 --- a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/audio_has_no_subtitles.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[audio_has_no_subtitles.html] - expected: - if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/webxr/events_referenceSpace_reset_inline.https.html.ini b/third_party/blink/web_tests/external/wpt/webxr/events_referenceSpace_reset_inline.https.html.ini index 1ce4928..00c1d56 100644 --- a/third_party/blink/web_tests/external/wpt/webxr/events_referenceSpace_reset_inline.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/webxr/events_referenceSpace_reset_inline.https.html.ini
@@ -1,11 +1,7 @@ [events_referenceSpace_reset_inline.https.html] - expected: - if (product == "content_shell") and (os == "win"): [OK, TIMEOUT] - TIMEOUT + expected: TIMEOUT [XRSession resetpose from a device properly fires off the right events for non-immersive sessions - webgl] - expected: - if os == "linux": FAIL + expected: FAIL [XRSession resetpose from a device properly fires off the right events for non-immersive sessions - webgl2] - expected: - if os == "linux": TIMEOUT + expected: TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/webxr/webxr_feature_policy.https.html.ini b/third_party/blink/web_tests/external/wpt/webxr/webxr_feature_policy.https.html.ini index aca8d11e..3d63abd4 100644 --- a/third_party/blink/web_tests/external/wpt/webxr/webxr_feature_policy.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/webxr/webxr_feature_policy.https.html.ini
@@ -1,4 +1,6 @@ [webxr_feature_policy.https.html] + expected: + if flag_specific == "disable-layout-ng": [OK, CRASH] [Validate isSessionSupported behavior without xr-spatial-tracking policy] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini b/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini index 13ee403..fa08ed77 100644 --- a/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini
@@ -2,3 +2,7 @@ [XRFrame getViewerPose updates on the next frame for non-immersive sessions - webgl] expected: if product == "chrome": FAIL + + [XRFrame getViewerPose updates on the next frame for non-immersive sessions - webgl2] + expected: + if product == "chrome": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestReferenceSpace_features.https.html.ini b/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestReferenceSpace_features.https.html.ini index 819352f..81dc968 100644 --- a/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestReferenceSpace_features.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestReferenceSpace_features.https.html.ini
@@ -43,8 +43,12 @@ [Immersive session supports local-floor space when required - webgl2] expected: - if product == "chrome": [PASS, TIMEOUT] + if product == "chrome": [PASS, NOTRUN] [Non-immersive session rejects bounded-floor space even when requested - webgl] expected: if product == "chrome": [PASS, NOTRUN] + + [Immersive session supports local-floor space when required - webgl] + expected: + if product == "chrome": [PASS, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/workers/data-url-shared.html.ini b/third_party/blink/web_tests/external/wpt/workers/data-url-shared.html.ini deleted file mode 100644 index 298751c..0000000 --- a/third_party/blink/web_tests/external/wpt/workers/data-url-shared.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[data-url-shared.html] - expected: - if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-in-data-url-context.window.js.ini b/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-in-data-url-context.window.js.ini index 8e3ebef..491bbc07 100644 --- a/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-in-data-url-context.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-in-data-url-context.window.js.ini
@@ -1,4 +1,6 @@ [dedicated-worker-in-data-url-context.window.html] + expected: + if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT] [Create a dedicated worker in a data url frame] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/close/setInterval.html.ini b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/close/setInterval.html.ini index 61d568f..8cb5e5e 100644 --- a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/close/setInterval.html.ini +++ b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/close/setInterval.html.ini
@@ -1,3 +1,3 @@ [setInterval.html] expected: - if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT] + if flag_specific == "disable-site-isolation-trials": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/location/redirect.html.ini b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/location/redirect.html.ini deleted file mode 100644 index 3a0f10f..0000000 --- a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/location/redirect.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[redirect.html] - expected: - if os == "win": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/importScripts/003.html.ini b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/importScripts/003.html.ini new file mode 100644 index 0000000..df562551 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/importScripts/003.html.ini
@@ -0,0 +1,3 @@ +[003.html] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/importScripts/report-error-cross-origin.sub.any.js.ini b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/importScripts/report-error-cross-origin.sub.any.js.ini deleted file mode 100644 index fb1eade..0000000 --- a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/importScripts/report-error-cross-origin.sub.any.js.ini +++ /dev/null
@@ -1,5 +0,0 @@ -[report-error-cross-origin.sub.any.sharedworker.html] - -[report-error-cross-origin.sub.any.worker.html] - expected: - if flag_specific == "disable-layout-ng": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/workers/semantics/xhr/003.html.ini b/third_party/blink/web_tests/external/wpt/workers/semantics/xhr/003.html.ini new file mode 100644 index 0000000..df562551 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/workers/semantics/xhr/003.html.ini
@@ -0,0 +1,3 @@ +[003.html] + expected: + if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/workers/shared-worker-in-data-url-context.window.js.ini b/third_party/blink/web_tests/external/wpt/workers/shared-worker-in-data-url-context.window.js.ini index 5f4813ff..e0d2ea3d 100644 --- a/third_party/blink/web_tests/external/wpt/workers/shared-worker-in-data-url-context.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/workers/shared-worker-in-data-url-context.window.js.ini
@@ -1,6 +1,4 @@ [shared-worker-in-data-url-context.window.html] - expected: - if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT] [Create a shared worker in a data url frame] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/WindowTimers/003.html.ini b/third_party/blink/web_tests/external/wpt/x-frame-options/get-decode-split.html.ini similarity index 65% rename from third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/WindowTimers/003.html.ini rename to third_party/blink/web_tests/external/wpt/x-frame-options/get-decode-split.html.ini index a724a8c..5afb0df 100644 --- a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/WindowTimers/003.html.ini +++ b/third_party/blink/web_tests/external/wpt/x-frame-options/get-decode-split.html.ini
@@ -1,3 +1,3 @@ -[003.html] +[get-decode-split.html] expected: if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/xhr/send-timeout-events.htm.ini b/third_party/blink/web_tests/external/wpt/xhr/send-timeout-events.htm.ini index 3811a2d..7f24ac7 100644 --- a/third_party/blink/web_tests/external/wpt/xhr/send-timeout-events.htm.ini +++ b/third_party/blink/web_tests/external/wpt/xhr/send-timeout-events.htm.ini
@@ -1,4 +1,4 @@ [send-timeout-events.htm] [XMLHttpRequest: The send() method: timeout is not 0 ] expected: - if flag_specific == "disable-site-isolation-trials": [PASS, FAIL] + if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/images/resources/avif/gray1024x704.avif b/third_party/blink/web_tests/images/resources/avif/gray1024x704.avif new file mode 100644 index 0000000..f90c1ad --- /dev/null +++ b/third_party/blink/web_tests/images/resources/avif/gray1024x704.avif Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/webnn/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/webnn/idlharness.https.any-expected.txt deleted file mode 100644 index 3a69eb7a..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/webnn/idlharness.https.any-expected.txt +++ /dev/null
@@ -1,371 +0,0 @@ -This is a testharness.js-based test. -Found 361 tests; 105 PASS, 256 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL idl_test setup promise_test: Unhandled rejection with value: object "ReferenceError: MLGraphBuilder is not defined" -PASS idl_test validation -PASS Partial interface MLGraphBuilder: original interface defined -PASS Partial interface MLGraphBuilder: member names are unique -PASS Partial interface MLGraphBuilder[2]: original interface defined -PASS Partial interface MLGraphBuilder[2]: member names are unique -PASS Partial interface MLGraphBuilder[3]: original interface defined -PASS Partial interface MLGraphBuilder[3]: member names are unique -PASS Partial interface MLGraphBuilder[4]: original interface defined -PASS Partial interface MLGraphBuilder[4]: member names are unique -PASS Partial interface MLGraphBuilder[5]: original interface defined -PASS Partial interface MLGraphBuilder[5]: member names are unique -PASS Partial interface MLGraphBuilder[6]: original interface defined -PASS Partial interface MLGraphBuilder[6]: member names are unique -PASS Partial interface MLGraphBuilder[7]: original interface defined -PASS Partial interface MLGraphBuilder[7]: member names are unique -PASS Partial interface MLGraphBuilder[8]: original interface defined -PASS Partial interface MLGraphBuilder[8]: member names are unique -PASS Partial interface MLGraphBuilder[9]: original interface defined -PASS Partial interface MLGraphBuilder[9]: member names are unique -PASS Partial interface MLGraphBuilder[10]: original interface defined -PASS Partial interface MLGraphBuilder[10]: member names are unique -PASS Partial interface MLGraphBuilder[11]: original interface defined -PASS Partial interface MLGraphBuilder[11]: member names are unique -PASS Partial interface MLGraphBuilder[12]: original interface defined -PASS Partial interface MLGraphBuilder[12]: member names are unique -PASS Partial interface MLGraphBuilder[13]: original interface defined -PASS Partial interface MLGraphBuilder[13]: member names are unique -PASS Partial interface MLGraphBuilder[14]: original interface defined -PASS Partial interface MLGraphBuilder[14]: member names are unique -PASS Partial interface MLGraphBuilder[15]: original interface defined -PASS Partial interface MLGraphBuilder[15]: member names are unique -PASS Partial interface MLGraphBuilder[16]: original interface defined -PASS Partial interface MLGraphBuilder[16]: member names are unique -PASS Partial interface MLGraphBuilder[17]: original interface defined -PASS Partial interface MLGraphBuilder[17]: member names are unique -PASS Partial interface MLGraphBuilder[18]: original interface defined -PASS Partial interface MLGraphBuilder[18]: member names are unique -PASS Partial interface MLGraphBuilder[19]: original interface defined -PASS Partial interface MLGraphBuilder[19]: member names are unique -PASS Partial interface MLGraphBuilder[20]: original interface defined -PASS Partial interface MLGraphBuilder[20]: member names are unique -PASS Partial interface MLGraphBuilder[21]: original interface defined -PASS Partial interface MLGraphBuilder[21]: member names are unique -PASS Partial interface MLGraphBuilder[22]: original interface defined -PASS Partial interface MLGraphBuilder[22]: member names are unique -PASS Partial interface MLGraphBuilder[23]: original interface defined -PASS Partial interface MLGraphBuilder[23]: member names are unique -PASS Partial interface MLGraphBuilder[24]: original interface defined -PASS Partial interface MLGraphBuilder[24]: member names are unique -PASS Partial interface MLGraphBuilder[25]: original interface defined -PASS Partial interface MLGraphBuilder[25]: member names are unique -PASS Partial interface MLGraphBuilder[26]: original interface defined -PASS Partial interface MLGraphBuilder[26]: member names are unique -PASS Partial interface MLGraphBuilder[27]: original interface defined -PASS Partial interface MLGraphBuilder[27]: member names are unique -PASS Partial interface MLGraphBuilder[28]: original interface defined -PASS Partial interface MLGraphBuilder[28]: member names are unique -PASS Partial interface MLGraphBuilder[29]: original interface defined -PASS Partial interface MLGraphBuilder[29]: member names are unique -PASS Partial interface MLGraphBuilder[30]: original interface defined -PASS Partial interface MLGraphBuilder[30]: member names are unique -PASS Partial interface MLGraphBuilder[31]: original interface defined -PASS Partial interface MLGraphBuilder[31]: member names are unique -PASS Partial interface MLGraphBuilder[32]: original interface defined -PASS Partial interface MLGraphBuilder[32]: member names are unique -PASS Partial interface mixin NavigatorID: member names are unique -PASS Navigator includes NavigatorML: member names are unique -PASS WorkerNavigator includes NavigatorML: member names are unique -PASS Navigator includes NavigatorID: member names are unique -PASS Navigator includes NavigatorLanguage: member names are unique -PASS Navigator includes NavigatorOnLine: member names are unique -PASS Navigator includes NavigatorContentUtils: member names are unique -PASS Navigator includes NavigatorCookies: member names are unique -PASS Navigator includes NavigatorPlugins: member names are unique -PASS Navigator includes NavigatorConcurrentHardware: member names are unique -PASS WorkerNavigator includes NavigatorID: member names are unique -PASS WorkerNavigator includes NavigatorLanguage: member names are unique -PASS WorkerNavigator includes NavigatorOnLine: member names are unique -PASS WorkerNavigator includes NavigatorConcurrentHardware: member names are unique -PASS Navigator includes NavigatorGPU: member names are unique -PASS WorkerNavigator includes NavigatorGPU: member names are unique -PASS GPUTexture includes GPUObjectBase: member names are unique -FAIL NavigatorML must be primary interface of navigator assert_own_property: self does not have own property "NavigatorML" expected property "NavigatorML" missing -FAIL Stringification of navigator assert_class_string: class string of navigator expected "[object NavigatorML]" but got "[object Navigator]" -PASS NavigatorML interface: navigator must inherit property "ml" with the proper type -PASS ML interface: existence and properties of interface object -PASS ML interface object length -PASS ML interface object name -PASS ML interface: existence and properties of interface prototype object -PASS ML interface: existence and properties of interface prototype object's "constructor" property -PASS ML interface: existence and properties of interface prototype object's @@unscopables property -FAIL ML interface: operation createContext(optional MLContextOptions) assert_throws_js: calling operation with this = null didn't throw TypeError function "function() { - fn.apply(obj, args); - }" did not throw -FAIL ML interface: operation createContext(WebGLRenderingContext) assert_throws_js: calling operation with this = null didn't throw TypeError function "function() { - fn.apply(obj, args); - }" did not throw -FAIL ML interface: operation createContext(GPUDevice) assert_throws_js: calling operation with this = null didn't throw TypeError function "function() { - fn.apply(obj, args); - }" did not throw -PASS ML must be primary interface of navigator.ml -PASS Stringification of navigator.ml -PASS ML interface: navigator.ml must inherit property "createContext(optional MLContextOptions)" with the proper type -PASS ML interface: calling createContext(optional MLContextOptions) on navigator.ml with too few arguments must throw TypeError -PASS ML interface: navigator.ml must inherit property "createContext(WebGLRenderingContext)" with the proper type -PASS ML interface: calling createContext(WebGLRenderingContext) on navigator.ml with too few arguments must throw TypeError -PASS ML interface: navigator.ml must inherit property "createContext(GPUDevice)" with the proper type -PASS ML interface: calling createContext(GPUDevice) on navigator.ml with too few arguments must throw TypeError -PASS MLContext interface: existence and properties of interface object -PASS MLContext interface object length -PASS MLContext interface object name -PASS MLContext interface: existence and properties of interface prototype object -PASS MLContext interface: existence and properties of interface prototype object's "constructor" property -PASS MLContext interface: existence and properties of interface prototype object's @@unscopables property -FAIL MLContext must be primary interface of context assert_equals: context's prototype is not MLContext.prototype expected object "[object MLContext]" but got object "[object Promise]" -FAIL Stringification of context assert_class_string: class string of context expected "[object MLContext]" but got "[object Promise]" -FAIL MLOperand interface: existence and properties of interface object assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface object length assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface object name assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand must be primary interface of input assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: input is not defined" -FAIL Stringification of input assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: input is not defined" -FAIL MLOperand must be primary interface of filter assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: filter is not defined" -FAIL Stringification of filter assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: filter is not defined" -FAIL MLOperator interface: existence and properties of interface object assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface object length assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface object name assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator must be primary interface of relu assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: relu is not defined" -FAIL Stringification of relu assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: relu is not defined" -FAIL MLGraphBuilder interface: existence and properties of interface object assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface object length assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface object name assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation input(DOMString, MLOperandDescriptor) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation constant(MLOperandDescriptor, MLBufferView) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation constant(double, optional MLOperandType) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation build(MLNamedOperands) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation clamp(MLOperand, optional MLClampOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation clamp(optional MLClampOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation concat(sequence<MLOperand>, long) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation conv2d(MLOperand, MLOperand, optional MLConv2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation add(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sub(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation mul(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation div(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation max(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation min(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation pow(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation abs(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation ceil(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation cos(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation exp(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation floor(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation log(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation neg(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sin(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation tan(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation elu(MLOperand, optional MLEluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation elu(optional MLEluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation gemm(MLOperand, MLOperand, optional MLGemmOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSigmoid(MLOperand, optional MLHardSigmoidOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSigmoid(optional MLHardSigmoidOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSwish(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSwish() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation leakyRelu(MLOperand, optional MLLeakyReluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation leakyRelu(optional MLLeakyReluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation matmul(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation linear(MLOperand, optional MLLinearOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation linear(optional MLLinearOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation pad(MLOperand, MLOperand, optional MLPadOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation averagePool2d(MLOperand, optional MLPool2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation l2Pool2d(MLOperand, optional MLPool2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation maxPool2d(MLOperand, optional MLPool2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceL1(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceL2(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceLogSum(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceLogSumExp(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceMax(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceMean(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceMin(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceProduct(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceSum(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceSumSquare(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation relu(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation relu() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation resample2d(MLOperand, optional MLResample2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reshape(MLOperand, sequence<long>) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sigmoid(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sigmoid() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softmax(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softplus(MLOperand, optional MLSoftplusOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softplus(optional MLSoftplusOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softsign(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softsign() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation squeeze(MLOperand, optional MLSqueezeOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation tanh(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation tanh() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation transpose(MLOperand, optional MLTransposeOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder must be primary interface of builder assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL Stringification of builder assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "input(DOMString, MLOperandDescriptor)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling input(DOMString, MLOperandDescriptor) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "constant(MLOperandDescriptor, MLBufferView)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling constant(MLOperandDescriptor, MLBufferView) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "constant(double, optional MLOperandType)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling constant(double, optional MLOperandType) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "build(MLNamedOperands)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling build(MLNamedOperands) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "clamp(MLOperand, optional MLClampOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling clamp(MLOperand, optional MLClampOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "clamp(optional MLClampOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling clamp(optional MLClampOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "concat(sequence<MLOperand>, long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling concat(sequence<MLOperand>, long) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "conv2d(MLOperand, MLOperand, optional MLConv2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling conv2d(MLOperand, MLOperand, optional MLConv2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "add(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling add(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sub(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sub(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "mul(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling mul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "div(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling div(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "max(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling max(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "min(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling min(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "pow(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling pow(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "abs(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling abs(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "ceil(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling ceil(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "cos(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling cos(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "exp(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling exp(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "floor(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling floor(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "log(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling log(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "neg(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling neg(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sin(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sin(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tan(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling tan(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "elu(MLOperand, optional MLEluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling elu(MLOperand, optional MLEluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "elu(optional MLEluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling elu(optional MLEluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gemm(MLOperand, MLOperand, optional MLGemmOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gemm(MLOperand, MLOperand, optional MLGemmOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(MLOperand, optional MLHardSigmoidOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSigmoid(MLOperand, optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(optional MLHardSigmoidOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSigmoid(optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSwish(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSwish(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSwish()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(MLOperand, optional MLLeakyReluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling leakyRelu(MLOperand, optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(optional MLLeakyReluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling leakyRelu(optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "matmul(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling matmul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "linear(MLOperand, optional MLLinearOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling linear(MLOperand, optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "linear(optional MLLinearOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling linear(optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "pad(MLOperand, MLOperand, optional MLPadOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling pad(MLOperand, MLOperand, optional MLPadOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "averagePool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling averagePool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "l2Pool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling l2Pool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "maxPool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling maxPool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceL1(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceL1(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceL2(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceL2(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSum(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceLogSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSumExp(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceLogSumExp(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMax(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMax(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMean(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMean(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMin(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMin(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceProduct(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceProduct(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceSum(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceSumSquare(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceSumSquare(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "relu(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling relu(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "relu()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "resample2d(MLOperand, optional MLResample2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling resample2d(MLOperand, optional MLResample2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<long>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reshape(MLOperand, sequence<long>) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sigmoid(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sigmoid(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sigmoid()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softmax(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softmax(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softplus(MLOperand, optional MLSoftplusOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softplus(MLOperand, optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softplus(optional MLSoftplusOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softplus(optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softsign(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softsign(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softsign()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "squeeze(MLOperand, optional MLSqueezeOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling squeeze(MLOperand, optional MLSqueezeOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tanh(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling tanh(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tanh()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "transpose(MLOperand, optional MLTransposeOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling transpose(MLOperand, optional MLTransposeOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraph interface: existence and properties of interface object assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface object length assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface object name assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: operation compute(MLNamedInputs, MLNamedOutputs) assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph must be primary interface of graph assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: graph is not defined" -FAIL Stringification of graph assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: graph is not defined" -FAIL MLGraph interface: graph must inherit property "compute(MLNamedInputs, MLNamedOutputs)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: graph is not defined" -FAIL MLGraph interface: calling compute(MLNamedInputs, MLNamedOutputs) on graph with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: graph is not defined" -PASS Navigator interface: attribute ml -PASS Navigator interface: navigator must inherit property "ml" with the proper type -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/webnn/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/webnn/idlharness.https.any.worker-expected.txt deleted file mode 100644 index 46d99e7..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/webnn/idlharness.https.any.worker-expected.txt +++ /dev/null
@@ -1,365 +0,0 @@ -This is a testharness.js-based test. -Found 361 tests; 83 PASS, 278 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL idl_test setup promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of undefined (reading 'createContext')" -PASS idl_test validation -PASS Partial interface MLGraphBuilder: original interface defined -PASS Partial interface MLGraphBuilder: member names are unique -PASS Partial interface MLGraphBuilder[2]: original interface defined -PASS Partial interface MLGraphBuilder[2]: member names are unique -PASS Partial interface MLGraphBuilder[3]: original interface defined -PASS Partial interface MLGraphBuilder[3]: member names are unique -PASS Partial interface MLGraphBuilder[4]: original interface defined -PASS Partial interface MLGraphBuilder[4]: member names are unique -PASS Partial interface MLGraphBuilder[5]: original interface defined -PASS Partial interface MLGraphBuilder[5]: member names are unique -PASS Partial interface MLGraphBuilder[6]: original interface defined -PASS Partial interface MLGraphBuilder[6]: member names are unique -PASS Partial interface MLGraphBuilder[7]: original interface defined -PASS Partial interface MLGraphBuilder[7]: member names are unique -PASS Partial interface MLGraphBuilder[8]: original interface defined -PASS Partial interface MLGraphBuilder[8]: member names are unique -PASS Partial interface MLGraphBuilder[9]: original interface defined -PASS Partial interface MLGraphBuilder[9]: member names are unique -PASS Partial interface MLGraphBuilder[10]: original interface defined -PASS Partial interface MLGraphBuilder[10]: member names are unique -PASS Partial interface MLGraphBuilder[11]: original interface defined -PASS Partial interface MLGraphBuilder[11]: member names are unique -PASS Partial interface MLGraphBuilder[12]: original interface defined -PASS Partial interface MLGraphBuilder[12]: member names are unique -PASS Partial interface MLGraphBuilder[13]: original interface defined -PASS Partial interface MLGraphBuilder[13]: member names are unique -PASS Partial interface MLGraphBuilder[14]: original interface defined -PASS Partial interface MLGraphBuilder[14]: member names are unique -PASS Partial interface MLGraphBuilder[15]: original interface defined -PASS Partial interface MLGraphBuilder[15]: member names are unique -PASS Partial interface MLGraphBuilder[16]: original interface defined -PASS Partial interface MLGraphBuilder[16]: member names are unique -PASS Partial interface MLGraphBuilder[17]: original interface defined -PASS Partial interface MLGraphBuilder[17]: member names are unique -PASS Partial interface MLGraphBuilder[18]: original interface defined -PASS Partial interface MLGraphBuilder[18]: member names are unique -PASS Partial interface MLGraphBuilder[19]: original interface defined -PASS Partial interface MLGraphBuilder[19]: member names are unique -PASS Partial interface MLGraphBuilder[20]: original interface defined -PASS Partial interface MLGraphBuilder[20]: member names are unique -PASS Partial interface MLGraphBuilder[21]: original interface defined -PASS Partial interface MLGraphBuilder[21]: member names are unique -PASS Partial interface MLGraphBuilder[22]: original interface defined -PASS Partial interface MLGraphBuilder[22]: member names are unique -PASS Partial interface MLGraphBuilder[23]: original interface defined -PASS Partial interface MLGraphBuilder[23]: member names are unique -PASS Partial interface MLGraphBuilder[24]: original interface defined -PASS Partial interface MLGraphBuilder[24]: member names are unique -PASS Partial interface MLGraphBuilder[25]: original interface defined -PASS Partial interface MLGraphBuilder[25]: member names are unique -PASS Partial interface MLGraphBuilder[26]: original interface defined -PASS Partial interface MLGraphBuilder[26]: member names are unique -PASS Partial interface MLGraphBuilder[27]: original interface defined -PASS Partial interface MLGraphBuilder[27]: member names are unique -PASS Partial interface MLGraphBuilder[28]: original interface defined -PASS Partial interface MLGraphBuilder[28]: member names are unique -PASS Partial interface MLGraphBuilder[29]: original interface defined -PASS Partial interface MLGraphBuilder[29]: member names are unique -PASS Partial interface MLGraphBuilder[30]: original interface defined -PASS Partial interface MLGraphBuilder[30]: member names are unique -PASS Partial interface MLGraphBuilder[31]: original interface defined -PASS Partial interface MLGraphBuilder[31]: member names are unique -PASS Partial interface MLGraphBuilder[32]: original interface defined -PASS Partial interface MLGraphBuilder[32]: member names are unique -PASS Partial interface mixin NavigatorID: member names are unique -PASS Navigator includes NavigatorML: member names are unique -PASS WorkerNavigator includes NavigatorML: member names are unique -PASS Navigator includes NavigatorID: member names are unique -PASS Navigator includes NavigatorLanguage: member names are unique -PASS Navigator includes NavigatorOnLine: member names are unique -PASS Navigator includes NavigatorContentUtils: member names are unique -PASS Navigator includes NavigatorCookies: member names are unique -PASS Navigator includes NavigatorPlugins: member names are unique -PASS Navigator includes NavigatorConcurrentHardware: member names are unique -PASS WorkerNavigator includes NavigatorID: member names are unique -PASS WorkerNavigator includes NavigatorLanguage: member names are unique -PASS WorkerNavigator includes NavigatorOnLine: member names are unique -PASS WorkerNavigator includes NavigatorConcurrentHardware: member names are unique -PASS Navigator includes NavigatorGPU: member names are unique -PASS WorkerNavigator includes NavigatorGPU: member names are unique -PASS GPUTexture includes GPUObjectBase: member names are unique -FAIL NavigatorML must be primary interface of navigator assert_own_property: self does not have own property "NavigatorML" expected property "NavigatorML" missing -FAIL Stringification of navigator assert_class_string: class string of navigator expected "[object NavigatorML]" but got "[object WorkerNavigator]" -PASS NavigatorML interface: navigator must not have property "ml" -FAIL ML interface: existence and properties of interface object assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface object length assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface object name assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: operation createContext(optional MLContextOptions) assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: operation createContext(WebGLRenderingContext) assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: operation createContext(GPUDevice) assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML must be primary interface of navigator.ml assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL Stringification of navigator.ml assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: navigator.ml must inherit property "createContext(optional MLContextOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: calling createContext(optional MLContextOptions) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: navigator.ml must inherit property "createContext(WebGLRenderingContext)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: calling createContext(WebGLRenderingContext) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: navigator.ml must inherit property "createContext(GPUDevice)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: calling createContext(GPUDevice) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL MLContext interface: existence and properties of interface object assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface object length assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface object name assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext must be primary interface of context assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL Stringification of context assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLOperand interface: existence and properties of interface object assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface object length assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface object name assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand must be primary interface of input assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: input is not defined" -FAIL Stringification of input assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: input is not defined" -FAIL MLOperand must be primary interface of filter assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: filter is not defined" -FAIL Stringification of filter assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: filter is not defined" -FAIL MLOperator interface: existence and properties of interface object assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface object length assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface object name assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator must be primary interface of relu assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: relu is not defined" -FAIL Stringification of relu assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: relu is not defined" -FAIL MLGraphBuilder interface: existence and properties of interface object assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface object length assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface object name assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation input(DOMString, MLOperandDescriptor) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation constant(MLOperandDescriptor, MLBufferView) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation constant(double, optional MLOperandType) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation build(MLNamedOperands) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation clamp(MLOperand, optional MLClampOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation clamp(optional MLClampOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation concat(sequence<MLOperand>, long) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation conv2d(MLOperand, MLOperand, optional MLConv2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation add(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sub(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation mul(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation div(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation max(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation min(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation pow(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation abs(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation ceil(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation cos(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation exp(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation floor(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation log(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation neg(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sin(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation tan(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation elu(MLOperand, optional MLEluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation elu(optional MLEluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation gemm(MLOperand, MLOperand, optional MLGemmOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSigmoid(MLOperand, optional MLHardSigmoidOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSigmoid(optional MLHardSigmoidOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSwish(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSwish() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation leakyRelu(MLOperand, optional MLLeakyReluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation leakyRelu(optional MLLeakyReluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation matmul(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation linear(MLOperand, optional MLLinearOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation linear(optional MLLinearOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation pad(MLOperand, MLOperand, optional MLPadOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation averagePool2d(MLOperand, optional MLPool2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation l2Pool2d(MLOperand, optional MLPool2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation maxPool2d(MLOperand, optional MLPool2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceL1(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceL2(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceLogSum(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceLogSumExp(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceMax(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceMean(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceMin(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceProduct(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceSum(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceSumSquare(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation relu(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation relu() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation resample2d(MLOperand, optional MLResample2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reshape(MLOperand, sequence<long>) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sigmoid(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sigmoid() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softmax(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softplus(MLOperand, optional MLSoftplusOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softplus(optional MLSoftplusOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softsign(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softsign() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation squeeze(MLOperand, optional MLSqueezeOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation tanh(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation tanh() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation transpose(MLOperand, optional MLTransposeOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder must be primary interface of builder assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL Stringification of builder assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "input(DOMString, MLOperandDescriptor)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling input(DOMString, MLOperandDescriptor) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "constant(MLOperandDescriptor, MLBufferView)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling constant(MLOperandDescriptor, MLBufferView) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "constant(double, optional MLOperandType)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling constant(double, optional MLOperandType) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "build(MLNamedOperands)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling build(MLNamedOperands) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "clamp(MLOperand, optional MLClampOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling clamp(MLOperand, optional MLClampOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "clamp(optional MLClampOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling clamp(optional MLClampOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "concat(sequence<MLOperand>, long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling concat(sequence<MLOperand>, long) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "conv2d(MLOperand, MLOperand, optional MLConv2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling conv2d(MLOperand, MLOperand, optional MLConv2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "add(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling add(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sub(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sub(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "mul(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling mul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "div(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling div(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "max(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling max(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "min(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling min(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "pow(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling pow(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "abs(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling abs(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "ceil(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling ceil(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "cos(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling cos(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "exp(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling exp(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "floor(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling floor(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "log(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling log(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "neg(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling neg(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sin(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sin(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tan(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling tan(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "elu(MLOperand, optional MLEluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling elu(MLOperand, optional MLEluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "elu(optional MLEluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling elu(optional MLEluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gemm(MLOperand, MLOperand, optional MLGemmOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gemm(MLOperand, MLOperand, optional MLGemmOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(MLOperand, optional MLHardSigmoidOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSigmoid(MLOperand, optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(optional MLHardSigmoidOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSigmoid(optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSwish(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSwish(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSwish()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(MLOperand, optional MLLeakyReluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling leakyRelu(MLOperand, optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(optional MLLeakyReluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling leakyRelu(optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "matmul(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling matmul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "linear(MLOperand, optional MLLinearOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling linear(MLOperand, optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "linear(optional MLLinearOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling linear(optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "pad(MLOperand, MLOperand, optional MLPadOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling pad(MLOperand, MLOperand, optional MLPadOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "averagePool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling averagePool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "l2Pool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling l2Pool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "maxPool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling maxPool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceL1(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceL1(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceL2(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceL2(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSum(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceLogSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSumExp(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceLogSumExp(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMax(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMax(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMean(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMean(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMin(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMin(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceProduct(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceProduct(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceSum(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceSumSquare(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceSumSquare(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "relu(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling relu(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "relu()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "resample2d(MLOperand, optional MLResample2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling resample2d(MLOperand, optional MLResample2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<long>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reshape(MLOperand, sequence<long>) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sigmoid(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sigmoid(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sigmoid()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softmax(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softmax(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softplus(MLOperand, optional MLSoftplusOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softplus(MLOperand, optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softplus(optional MLSoftplusOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softplus(optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softsign(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softsign(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softsign()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "squeeze(MLOperand, optional MLSqueezeOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling squeeze(MLOperand, optional MLSqueezeOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tanh(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling tanh(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tanh()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "transpose(MLOperand, optional MLTransposeOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling transpose(MLOperand, optional MLTransposeOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraph interface: existence and properties of interface object assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface object length assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface object name assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: operation compute(MLNamedInputs, MLNamedOutputs) assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph must be primary interface of graph assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: graph is not defined" -FAIL Stringification of graph assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: graph is not defined" -FAIL MLGraph interface: graph must inherit property "compute(MLNamedInputs, MLNamedOutputs)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: graph is not defined" -FAIL MLGraph interface: calling compute(MLNamedInputs, MLNamedOutputs) on graph with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: graph is not defined" -FAIL WorkerNavigator interface: attribute ml assert_true: The prototype object must have a property "ml" expected true got false -FAIL WorkerNavigator interface: navigator must inherit property "ml" with the proper type assert_inherits: property "ml" not found in prototype chain -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt new file mode 100644 index 0000000..e085798 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +PASS Test that getContext with un-supported string throws a TypeError. +FAIL Test that getContext with supported string returns correct results assert_true: expected true got false +FAIL Test that getContext twice with different context type returns null the second time assert_equals: expected null but got object "[object OffscreenCanvasRenderingContext2D]" +PASS Test that 2dcontext.canvas should return the original OffscreenCanvas +FAIL Test that webglcontext.canvas should return the original OffscreenCanvas Cannot read properties of null (reading 'canvas') +PASS Test that OffscreenCanvasRenderingContext2D with alpha disabled makes the OffscreenCanvas opaque +PASS Test that OffscreenCanvasRenderingContext2D with alpha enabled preserves the alpha +PASS Test that 'alpha' context creation attribute is true by default +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt new file mode 100644 index 0000000..e085798 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +PASS Test that getContext with un-supported string throws a TypeError. +FAIL Test that getContext with supported string returns correct results assert_true: expected true got false +FAIL Test that getContext twice with different context type returns null the second time assert_equals: expected null but got object "[object OffscreenCanvasRenderingContext2D]" +PASS Test that 2dcontext.canvas should return the original OffscreenCanvas +FAIL Test that webglcontext.canvas should return the original OffscreenCanvas Cannot read properties of null (reading 'canvas') +PASS Test that OffscreenCanvasRenderingContext2D with alpha disabled makes the OffscreenCanvas opaque +PASS Test that OffscreenCanvasRenderingContext2D with alpha enabled preserves the alpha +PASS Test that 'alpha' context creation attribute is true by default +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap-expected.txt new file mode 100644 index 0000000..8681bd95 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Test that transferToImageBitmap returns an ImageBitmap with correct width and height Failed to execute 'transferToImageBitmap' on 'OffscreenCanvas': Cannot transfer an ImageBitmap from an OffscreenCanvas with no context +PASS Test that transferToImageBitmap returns an ImageBitmap with correct color +PASS Test that transferToImageBitmap won't change context's property +PASS Test that transferToImageBitmap preserves transform +PASS Test that call transferToImageBitmap on a detached OffscreenCanvas throws an exception +PASS Test that transferToImageBitmap without a context throws an exception +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt new file mode 100644 index 0000000..0062a95 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Test that transferToImageBitmap returns an ImageBitmap with correct width and height in a worker assert_unreached: error Reached unreachable code +PASS Test that transferToImageBitmap returns an ImageBitmap with correct color in a worker +PASS Test that call transferToImageBitmap twice returns an ImageBitmap with correct color in a worker +PASS Test that call transferToImageBitmap twice on a alpha-disabled context returns an ImageBitmap with correct color in a worker +PASS Test that transferToImageBitmap won't change context's property in a worker +PASS Test that call transferToImageBitmap preserves transform in a worker +PASS Test that call transferToImageBitmap on a detached OffscreenCanvas throws an exception in a worker +PASS Test that call transferToImageBitmap without a context throws an exception in a worker +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.w-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.w-expected.txt new file mode 100644 index 0000000..9ada9e2 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.w-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +PASS Test that OffscreenCanvas's size is correct after being transferred from a worker. +FAIL Test that transfer an OffscreenCanvas that has a 2d context throws exception in a worker. assert_true: expected true got false +FAIL Test that transfer an OffscreenCanvas that has a webgl context throws exception in a worker. assert_true: expected true got object "[object OffscreenCanvas]" +PASS Test that transfer an OffscreenCanvas twice throws exception in a worker. +PASS Test that calling getContext('2d') on a detached OffscreenCanvas throws exception in a worker. +PASS Test that calling getContext('webgl') on a detached OffscreenCanvas throws exception in a worker. +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/paint-timing/with-first-paint/first-contentful-canvas-webgl2-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/paint-timing/with-first-paint/first-contentful-canvas-webgl2-expected.txt new file mode 100644 index 0000000..50d8f8f7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/paint-timing/with-first-paint/first-contentful-canvas-webgl2-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +NOTRUN First contentful paint fires due to webgl2 canvas render. WebGL 2 Canvas isn't supported. +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/resource-timing/response-status-code-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/resource-timing/response-status-code-expected.txt new file mode 100644 index 0000000..2cbaf46 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/resource-timing/response-status-code-expected.txt
@@ -0,0 +1,304 @@ +This is a testharness.js-based test. +Found 300 tests; 299 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS This test validates the response status of resources. +PASS This test validates the response status of resources. 1 +PASS This test validates the response status of resources. 2 +PASS This test validates the response status of resources. 3 +PASS This test validates the response status of resources. 4 +PASS This test validates the response status of resources. 5 +PASS This test validates the response status of resources. 6 +PASS This test validates the response status of resources. 7 +PASS This test validates the response status of resources. 8 +PASS This test validates the response status of resources. 9 +PASS This test validates the response status of resources. 10 +PASS This test validates the response status of resources. 11 +PASS This test validates the response status of resources. 12 +PASS This test validates the response status of resources. 13 +PASS This test validates the response status of resources. 14 +PASS This test validates the response status of resources. 15 +PASS This test validates the response status of resources. 16 +PASS This test validates the response status of resources. 17 +PASS This test validates the response status of resources. 18 +PASS This test validates the response status of resources. 19 +PASS This test validates the response status of resources. 20 +PASS This test validates the response status of resources. 21 +PASS This test validates the response status of resources. 22 +PASS This test validates the response status of resources. 23 +PASS This test validates the response status of resources. 24 +PASS This test validates the response status of resources. 25 +PASS This test validates the response status of resources. 26 +PASS This test validates the response status of resources. 27 +PASS This test validates the response status of resources. 28 +PASS This test validates the response status of resources. 29 +PASS This test validates the response status of resources. 30 +PASS This test validates the response status of resources. 31 +PASS This test validates the response status of resources. 32 +PASS This test validates the response status of resources. 33 +PASS This test validates the response status of resources. 34 +PASS This test validates the response status of resources. 35 +PASS This test validates the response status of resources. 36 +PASS This test validates the response status of resources. 37 +PASS This test validates the response status of resources. 38 +PASS This test validates the response status of resources. 39 +PASS This test validates the response status of resources. 40 +PASS This test validates the response status of resources. 41 +PASS This test validates the response status of resources. 42 +PASS This test validates the response status of resources. 43 +PASS This test validates the response status of resources. 44 +PASS This test validates the response status of resources. 45 +PASS This test validates the response status of resources. 46 +PASS This test validates the response status of resources. 47 +PASS This test validates the response status of resources. 48 +PASS This test validates the response status of resources. 49 +PASS This test validates the response status of resources. 50 +PASS This test validates the response status of resources. 51 +PASS This test validates the response status of resources. 52 +PASS This test validates the response status of resources. 53 +PASS This test validates the response status of resources. 54 +PASS This test validates the response status of resources. 55 +PASS This test validates the response status of resources. 56 +PASS This test validates the response status of resources. 57 +PASS This test validates the response status of resources. 58 +PASS This test validates the response status of resources. 59 +PASS This test validates the response status of resources. 60 +PASS This test validates the response status of resources. 61 +PASS This test validates the response status of resources. 62 +PASS This test validates the response status of resources. 63 +PASS This test validates the response status of resources. 64 +PASS This test validates the response status of resources. 65 +PASS This test validates the response status of resources. 66 +PASS This test validates the response status of resources. 67 +PASS This test validates the response status of resources. 68 +PASS This test validates the response status of resources. 69 +PASS This test validates the response status of resources. 70 +PASS This test validates the response status of resources. 71 +PASS This test validates the response status of resources. 72 +PASS This test validates the response status of resources. 73 +PASS This test validates the response status of resources. 74 +PASS This test validates the response status of resources. 75 +PASS This test validates the response status of resources. 76 +PASS This test validates the response status of resources. 77 +PASS This test validates the response status of resources. 78 +PASS This test validates the response status of resources. 79 +PASS This test validates the response status of resources. 80 +PASS This test validates the response status of resources. 81 +PASS This test validates the response status of resources. 82 +PASS This test validates the response status of resources. 83 +PASS This test validates the response status of resources. 84 +PASS This test validates the response status of resources. 85 +FAIL This test validates the response status of resources. 86 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of undefined (reading 'responseStatus')" +PASS This test validates the response status of resources. 87 +PASS This test validates the response status of resources. 88 +PASS This test validates the response status of resources. 89 +PASS This test validates the response status of resources. 90 +PASS This test validates the response status of resources. 91 +PASS This test validates the response status of resources. 92 +PASS This test validates the response status of resources. 93 +PASS This test validates the response status of resources. 94 +PASS This test validates the response status of resources. 95 +PASS This test validates the response status of resources. 96 +PASS This test validates the response status of resources. 97 +PASS This test validates the response status of resources. 98 +PASS This test validates the response status of resources. 99 +PASS This test validates the response status of resources. 100 +PASS This test validates the response status of resources. 101 +PASS This test validates the response status of resources. 102 +PASS This test validates the response status of resources. 103 +PASS This test validates the response status of resources. 104 +PASS This test validates the response status of resources. 105 +PASS This test validates the response status of resources. 106 +PASS This test validates the response status of resources. 107 +PASS This test validates the response status of resources. 108 +PASS This test validates the response status of resources. 109 +PASS This test validates the response status of resources. 110 +PASS This test validates the response status of resources. 111 +PASS This test validates the response status of resources. 112 +PASS This test validates the response status of resources. 113 +PASS This test validates the response status of resources. 114 +PASS This test validates the response status of resources. 115 +PASS This test validates the response status of resources. 116 +PASS This test validates the response status of resources. 117 +PASS This test validates the response status of resources. 118 +PASS This test validates the response status of resources. 119 +PASS This test validates the response status of resources. 120 +PASS This test validates the response status of resources. 121 +PASS This test validates the response status of resources. 122 +PASS This test validates the response status of resources. 123 +PASS This test validates the response status of resources. 124 +PASS This test validates the response status of resources. 125 +PASS This test validates the response status of resources. 126 +PASS This test validates the response status of resources. 127 +PASS This test validates the response status of resources. 128 +PASS This test validates the response status of resources. 129 +PASS This test validates the response status of resources. 130 +PASS This test validates the response status of resources. 131 +PASS This test validates the response status of resources. 132 +PASS This test validates the response status of resources. 133 +PASS This test validates the response status of resources. 134 +PASS This test validates the response status of resources. 135 +PASS This test validates the response status of resources. 136 +PASS This test validates the response status of resources. 137 +PASS This test validates the response status of resources. 138 +PASS This test validates the response status of resources. 139 +PASS This test validates the response status of resources. 140 +PASS This test validates the response status of resources. 141 +PASS This test validates the response status of resources. 142 +PASS This test validates the response status of resources. 143 +PASS This test validates the response status of resources. 144 +PASS This test validates the response status of resources. 145 +PASS This test validates the response status of resources. 146 +PASS This test validates the response status of resources. 147 +PASS This test validates the response status of resources. 148 +PASS This test validates the response status of resources. 149 +PASS This test validates the response status of resources. 150 +PASS This test validates the response status of resources. 151 +PASS This test validates the response status of resources. 152 +PASS This test validates the response status of resources. 153 +PASS This test validates the response status of resources. 154 +PASS This test validates the response status of resources. 155 +PASS This test validates the response status of resources. 156 +PASS This test validates the response status of resources. 157 +PASS This test validates the response status of resources. 158 +PASS This test validates the response status of resources. 159 +PASS This test validates the response status of resources. 160 +PASS This test validates the response status of resources. 161 +PASS This test validates the response status of resources. 162 +PASS This test validates the response status of resources. 163 +PASS This test validates the response status of resources. 164 +PASS This test validates the response status of resources. 165 +PASS This test validates the response status of resources. 166 +PASS This test validates the response status of resources. 167 +PASS This test validates the response status of resources. 168 +PASS This test validates the response status of resources. 169 +PASS This test validates the response status of resources. 170 +PASS This test validates the response status of resources. 171 +PASS This test validates the response status of resources. 172 +PASS This test validates the response status of resources. 173 +PASS This test validates the response status of resources. 174 +PASS This test validates the response status of resources. 175 +PASS This test validates the response status of resources. 176 +PASS This test validates the response status of resources. 177 +PASS This test validates the response status of resources. 178 +PASS This test validates the response status of resources. 179 +PASS This test validates the response status of resources. 180 +PASS This test validates the response status of resources. 181 +PASS This test validates the response status of resources. 182 +PASS This test validates the response status of resources. 183 +PASS This test validates the response status of resources. 184 +PASS This test validates the response status of resources. 185 +PASS This test validates the response status of resources. 186 +PASS This test validates the response status of resources. 187 +PASS This test validates the response status of resources. 188 +PASS This test validates the response status of resources. 189 +PASS This test validates the response status of resources. 190 +PASS This test validates the response status of resources. 191 +PASS This test validates the response status of resources. 192 +PASS This test validates the response status of resources. 193 +PASS This test validates the response status of resources. 194 +PASS This test validates the response status of resources. 195 +PASS This test validates the response status of resources. 196 +PASS This test validates the response status of resources. 197 +PASS This test validates the response status of resources. 198 +PASS This test validates the response status of resources. 199 +PASS This test validates the response status of resources. 200 +PASS This test validates the response status of resources. 201 +PASS This test validates the response status of resources. 202 +PASS This test validates the response status of resources. 203 +PASS This test validates the response status of resources. 204 +PASS This test validates the response status of resources. 205 +PASS This test validates the response status of resources. 206 +PASS This test validates the response status of resources. 207 +PASS This test validates the response status of resources. 208 +PASS This test validates the response status of resources. 209 +PASS This test validates the response status of resources. 210 +PASS This test validates the response status of resources. 211 +PASS This test validates the response status of resources. 212 +PASS This test validates the response status of resources. 213 +PASS This test validates the response status of resources. 214 +PASS This test validates the response status of resources. 215 +PASS This test validates the response status of resources. 216 +PASS This test validates the response status of resources. 217 +PASS This test validates the response status of resources. 218 +PASS This test validates the response status of resources. 219 +PASS This test validates the response status of resources. 220 +PASS This test validates the response status of resources. 221 +PASS This test validates the response status of resources. 222 +PASS This test validates the response status of resources. 223 +PASS This test validates the response status of resources. 224 +PASS This test validates the response status of resources. 225 +PASS This test validates the response status of resources. 226 +PASS This test validates the response status of resources. 227 +PASS This test validates the response status of resources. 228 +PASS This test validates the response status of resources. 229 +PASS This test validates the response status of resources. 230 +PASS This test validates the response status of resources. 231 +PASS This test validates the response status of resources. 232 +PASS This test validates the response status of resources. 233 +PASS This test validates the response status of resources. 234 +PASS This test validates the response status of resources. 235 +PASS This test validates the response status of resources. 236 +PASS This test validates the response status of resources. 237 +PASS This test validates the response status of resources. 238 +PASS This test validates the response status of resources. 239 +PASS This test validates the response status of resources. 240 +PASS This test validates the response status of resources. 241 +PASS This test validates the response status of resources. 242 +PASS This test validates the response status of resources. 243 +PASS This test validates the response status of resources. 244 +PASS This test validates the response status of resources. 245 +PASS This test validates the response status of resources. 246 +PASS This test validates the response status of resources. 247 +PASS This test validates the response status of resources. 248 +PASS This test validates the response status of resources. 249 +PASS This test validates the response status of resources. 250 +PASS This test validates the response status of resources. 251 +PASS This test validates the response status of resources. 252 +PASS This test validates the response status of resources. 253 +PASS This test validates the response status of resources. 254 +PASS This test validates the response status of resources. 255 +PASS This test validates the response status of resources. 256 +PASS This test validates the response status of resources. 257 +PASS This test validates the response status of resources. 258 +PASS This test validates the response status of resources. 259 +PASS This test validates the response status of resources. 260 +PASS This test validates the response status of resources. 261 +PASS This test validates the response status of resources. 262 +PASS This test validates the response status of resources. 263 +PASS This test validates the response status of resources. 264 +PASS This test validates the response status of resources. 265 +PASS This test validates the response status of resources. 266 +PASS This test validates the response status of resources. 267 +PASS This test validates the response status of resources. 268 +PASS This test validates the response status of resources. 269 +PASS This test validates the response status of resources. 270 +PASS This test validates the response status of resources. 271 +PASS This test validates the response status of resources. 272 +PASS This test validates the response status of resources. 273 +PASS This test validates the response status of resources. 274 +PASS This test validates the response status of resources. 275 +PASS This test validates the response status of resources. 276 +PASS This test validates the response status of resources. 277 +PASS This test validates the response status of resources. 278 +PASS This test validates the response status of resources. 279 +PASS This test validates the response status of resources. 280 +PASS This test validates the response status of resources. 281 +PASS This test validates the response status of resources. 282 +PASS This test validates the response status of resources. 283 +PASS This test validates the response status of resources. 284 +PASS This test validates the response status of resources. 285 +PASS This test validates the response status of resources. 286 +PASS This test validates the response status of resources. 287 +PASS This test validates the response status of resources. 288 +PASS This test validates the response status of resources. 289 +PASS This test validates the response status of resources. 290 +PASS This test validates the response status of resources. 291 +PASS This test validates the response status of resources. 292 +PASS This test validates the response status of resources. 293 +PASS This test validates the response status of resources. 294 +PASS This test validates the response status of resources. 295 +PASS This test validates the response status of resources. 296 +PASS This test validates the response status of resources. 297 +PASS This test validates the response status of resources. 298 +PASS This test validates the response status of resources. 299 +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/video-rvfc/request-video-frame-callback-before-xr-session.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/video-rvfc/request-video-frame-callback-before-xr-session.https-expected.txt new file mode 100644 index 0000000..15d046c3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/video-rvfc/request-video-frame-callback-before-xr-session.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Make sure video.rVFC works during a non-immersive session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Make sure video.rVFC works during a non-immersive session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Make sure video.rVFC works during an immersive session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Make sure video.rVFC works during an immersive session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/video-rvfc/request-video-frame-callback-during-xr-session.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/video-rvfc/request-video-frame-callback-during-xr-session.https-expected.txt new file mode 100644 index 0000000..fc6ad49 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/video-rvfc/request-video-frame-callback-during-xr-session.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Make sure video.rVFC callbacks started during an immersive session continue after it ends - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Make sure video.rVFC callbacks started during an immersive session continue after it ends - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webcodecs/videoFrame-texImage.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webcodecs/videoFrame-texImage.any-expected.txt new file mode 100644 index 0000000..e809318 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webcodecs/videoFrame-texImage.any-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL texImage2D with 48x36 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texSubImage2D with 48x36 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texImage2D with 480x360 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texSubImage2D with 480x360 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texImage2D with a closed VideoFrame. Cannot read properties of null (reading 'texImage2D') +FAIL texSubImage2D with a closed VideoFrame. Cannot read properties of null (reading 'texSubImage2D') +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webcodecs/videoFrame-texImage.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webcodecs/videoFrame-texImage.any.worker-expected.txt new file mode 100644 index 0000000..e809318 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webcodecs/videoFrame-texImage.any.worker-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL texImage2D with 48x36 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texSubImage2D with 48x36 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texImage2D with 480x360 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texSubImage2D with 480x360 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texImage2D with a closed VideoFrame. Cannot read properties of null (reading 'texImage2D') +FAIL texSubImage2D with a closed VideoFrame. Cannot read properties of null (reading 'texSubImage2D') +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_create_move.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_create_move.https-expected.txt new file mode 100644 index 0000000..8a4b74d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_create_move.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures free-floating anchor move gets propagated to anchor poses - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor move gets propagated to anchor poses - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_delay_creation.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_delay_creation.https-expected.txt new file mode 100644 index 0000000..3f29f35 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_delay_creation.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Ensures free-floating anchor creation with delayed success is handled correctly - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor creation with delayed success is handled correctly - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor creation with delayed failure is handled correctly - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor creation with delayed failure is handled correctly - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_failure.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_failure.https-expected.txt new file mode 100644 index 0000000..8256af3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_failure.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures free-floating anchor creation failure is handled correctly - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor creation failure is handled correctly - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https-expected.txt new file mode 100644 index 0000000..9a688c2 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures free-floating anchor state changes get propagated - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor state changes get propagated - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_getAnchors.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_getAnchors.https-expected.txt new file mode 100644 index 0000000..4d04e9c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_getAnchors.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame's trackedAnchors is empty when the feature was not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame's trackedAnchors is empty when the feature was not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame's trackedAnchors is empty when the feature was requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame's trackedAnchors is empty when the feature was requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_states.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_states.https-expected.txt new file mode 100644 index 0000000..cad2ec62 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/anchors/ar_anchor_states.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Anchor creation succeeds if the feature was requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Anchor creation succeeds if the feature was requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Anchor creation fails if the feature was not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Anchor creation fails if the feature was not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Anchor creation fails if the feature was requested but the session already ended - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Anchor creation fails if the feature was requested but the session already ended - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/ar-module/xrDevice_requestSession_immersive-ar.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/ar-module/xrDevice_requestSession_immersive-ar.https-expected.txt new file mode 100644 index 0000000..b689d65f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/ar-module/xrDevice_requestSession_immersive-ar.https-expected.txt
@@ -0,0 +1,6 @@ +This is a testharness.js-based test. +FAIL Tests requestSession accepts immersive-ar mode - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts immersive-ar mode - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +PASS Tests requestSession rejects immersive-ar mode when unsupported +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/ar-module/xrSession_environmentBlendMode.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/ar-module/xrSession_environmentBlendMode.https-expected.txt new file mode 100644 index 0000000..7cf63b3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/ar-module/xrSession_environmentBlendMode.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Tests environmentBlendMode for an AR device - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests environmentBlendMode for an AR device - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests environmentBlendMode for a VR device - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests environmentBlendMode for a VR device - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/ar-module/xrSession_interactionMode.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/ar-module/xrSession_interactionMode.https-expected.txt new file mode 100644 index 0000000..2d1305a3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/ar-module/xrSession_interactionMode.https-expected.txt
@@ -0,0 +1,13 @@ +This is a testharness.js-based test. +FAIL Tests interactionMode for an VR_HMD_DEVICE - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an VR_HMD_DEVICE - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an VR_SCREEN_DEVICE - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an VR_SCREEN_DEVICE - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an AR_HMD_DEVICE - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an AR_HMD_DEVICE - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an AR_SCREEN_DEVICE - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an AR_SCREEN_DEVICE - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for a INLINE_SCREEN_DEVICE - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for a INLINE_SCREEN_DEVICE - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/camera-access/xrCamera_resolution.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/camera-access/xrCamera_resolution.https-expected.txt new file mode 100644 index 0000000..108a308 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/camera-access/xrCamera_resolution.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRCamera object is present and carries expected dimensions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRCamera object is present and carries expected dimensions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https-expected.txt new file mode 100644 index 0000000..20eba12 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures depth data is not available when cleared in the controller, `cpu-optimized` - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures depth data is not available when cleared in the controller, `cpu-optimized` - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https-expected.txt new file mode 100644 index 0000000..728da41 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures getDepthInformation() throws when not run in an active frame, `cpu-optimized` - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures getDepthInformation() throws when not run in an active frame, `cpu-optimized` - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https-expected.txt new file mode 100644 index 0000000..a19f085 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures XRWebGLDepthInformation is not obtainable in `cpu-optimized` usage mode - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures XRWebGLDepthInformation is not obtainable in `cpu-optimized` usage mode - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https-expected.txt new file mode 100644 index 0000000..12ccf7d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures depth data is returned and values match expectation, cpu-optimized, luminance-alpha. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures depth data is returned and values match expectation, cpu-optimized, luminance-alpha. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https-expected.txt new file mode 100644 index 0000000..61a5fff --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures getDepthInformation() throws when run with stale XRView, `cpu-optimized` - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures getDepthInformation() throws when run with stale XRView, `cpu-optimized` - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/depth_sensing_notEnabled.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/depth_sensing_notEnabled.https-expected.txt new file mode 100644 index 0000000..de953cb --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/depth-sensing/depth_sensing_notEnabled.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLBinding.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLBinding.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay.https-expected.txt new file mode 100644 index 0000000..53fe1720 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay.https-expected.txt
@@ -0,0 +1,14 @@ +This is a testharness.js-based test. +PASS Ensures DOM Overlay rejected without root element +FAIL Ensures DOM Overlay feature works for immersive-ar, body element - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay feature works for immersive-ar, body element - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay feature works for immersive-ar, div element - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay feature works for immersive-ar, div element - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay input deduplication works - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay input deduplication works - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay Fullscreen API doesn't change DOM overlay - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay Fullscreen API doesn't change DOM overlay - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay interactions on cross origin iframe are ignored - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay interactions on cross origin iframe are ignored - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay_hit_test.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay_hit_test.https-expected.txt new file mode 100644 index 0000000..b904e6d7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay_hit_test.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures DOM Overlay interactions on cross origin iframe do not cause hit test results to come up - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay interactions on cross origin iframe do not cause hit test results to come up - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/dom-overlay/nested_fullscreen.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/dom-overlay/nested_fullscreen.https-expected.txt new file mode 100644 index 0000000..17c5fc0 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/dom-overlay/nested_fullscreen.https-expected.txt
@@ -0,0 +1,6 @@ +This is a testharness.js-based test. +PASS fullscreen setup +FAIL Check XR session from fullscreen - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Check XR session from fullscreen - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_input_source_recreation.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_input_source_recreation.https-expected.txt new file mode 100644 index 0000000..0b76a453 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_input_source_recreation.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Input sources are re-created when handedness or target ray mode changes - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Input sources are re-created when handedness or target ray mode changes - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_input_sources_change.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_input_sources_change.https-expected.txt new file mode 100644 index 0000000..412e308 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_input_sources_change.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Transient input sources fire events in the right order - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient input sources fire events in the right order - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_referenceSpace_reset_immersive.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_referenceSpace_reset_immersive.https-expected.txt new file mode 100644 index 0000000..f84c1f1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_referenceSpace_reset_immersive.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRSession resetpose from a device properly fires off the right events for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession resetpose from a device properly fires off the right events for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_session_select.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_session_select.https-expected.txt new file mode 100644 index 0000000..0c27143e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_session_select.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSources primary input presses properly fires off the right events - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSources primary input presses properly fires off the right events - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_session_select_subframe.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_session_select_subframe.https-expected.txt new file mode 100644 index 0000000..1e621b7d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_session_select_subframe.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures that an XRInputSources primary input being pressed and released in the space of a single frame properly fires off the right events - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures that an XRInputSources primary input being pressed and released in the space of a single frame properly fires off the right events - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_session_squeeze.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_session_squeeze.https-expected.txt new file mode 100644 index 0000000..0c27143e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/events_session_squeeze.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSources primary input presses properly fires off the right events - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSources primary input presses properly fires off the right events - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/exclusive_requestFrame_nolayer.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/exclusive_requestFrame_nolayer.https-expected.txt new file mode 100644 index 0000000..228c15f2 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/exclusive_requestFrame_nolayer.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRSession requestAnimationFrame must fail if the session has no baseLayer for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame must fail if the session has no baseLayer for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame must fail if the session has no baseLayer for non immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame must fail if the session has no baseLayer for non immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https-expected.txt new file mode 100644 index 0000000..e210316 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL WebXR InputSource's gamepad gets disconnected when the input source is removed - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL WebXR InputSource's gamepad gets disconnected when the input source is removed - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https-expected.txt new file mode 100644 index 0000000..1ba2ad4 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL WebXR InputSource's gamepad properly registers input - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL WebXR InputSource's gamepad properly registers input - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/getInputPose_handedness.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/getInputPose_handedness.https-expected.txt new file mode 100644 index 0000000..19f280ac7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/getInputPose_handedness.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSources properly communicate their handedness - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSources properly communicate their handedness - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/getInputPose_pointer.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/getInputPose_pointer.https-expected.txt new file mode 100644 index 0000000..5f492b1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/getInputPose_pointer.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSources with a target ray mode of 'tracked-pointer' properly communicate their poses - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSources with a target ray mode of 'tracked-pointer' properly communicate their poses - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/getViewerPose_emulatedPosition.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/getViewerPose_emulatedPosition.https-expected.txt new file mode 100644 index 0000000..42437dad --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/getViewerPose_emulatedPosition.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame getViewerPose has emulatedPosition set properly. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose has emulatedPosition set properly. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_source_cancel.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_source_cancel.https-expected.txt new file mode 100644 index 0000000..16e1776 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_source_cancel.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Ensures hit test source cancellation works when the session has not ended. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation works when the session has not ended. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation works when the session has not ended. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation works when the session has not ended. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation works when the session has ended - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation works when the session has ended - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation works when the session has ended - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation works when the session has ended - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_inputSources.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_inputSources.https-expected.txt new file mode 100644 index 0000000..bf8d56ee --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_inputSources.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Ensures subscription to hit test works with an XRSpace from input source - no move - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with an XRSpace from input source - no move - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with an XRSpace from input source - after move - no results - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with an XRSpace from input source - after move - no results - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with an XRSpace from input source - after move - 1 result - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with an XRSpace from input source - after move - 1 result - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_refSpaces.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_refSpaces.https-expected.txt new file mode 100644 index 0000000..e41a8b0 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_refSpaces.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Ensures subscription to hit test works with viewer space - straight ahead - plane - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with viewer space - straight ahead - plane - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with viewer space - straight up - no results - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with viewer space - straight up - no results - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with local space - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with local space - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with local-floor space - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with local-floor space - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_regular.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_regular.https-expected.txt new file mode 100644 index 0000000..23a01cef --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_regular.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Hit test subscription succeeds if the feature was requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Hit test subscription succeeds if the feature was requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Hit test subscription fails if the feature was not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Hit test subscription fails if the feature was not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Hit test subscription fails if the feature was requested but the session already ended - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Hit test subscription fails if the feature was requested but the session already ended - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_transient.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_transient.https-expected.txt new file mode 100644 index 0000000..93b3efc8 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_transient.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Transient hit test subscription succeeds if the feature was requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient hit test subscription succeeds if the feature was requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient hit test subscription fails if the feature was not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient hit test subscription fails if the feature was not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient test subscription fails if the feature was requested but the session already ended - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient test subscription fails if the feature was requested but the session already ended - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_transientInputSources.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_transientInputSources.https-expected.txt new file mode 100644 index 0000000..e8c17df --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_transientInputSources.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - no move - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - no move - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - after move - no results - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - after move - no results - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - after move - 1 result - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - after move - 1 result - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_unlocalizable.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_unlocalizable.https-expected.txt new file mode 100644 index 0000000..9600a0f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_unlocalizable.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures hit test result returns null pose w/unlocalizable space - viewer space - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test result returns null pose w/unlocalizable space - viewer space - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/idlharness.https.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/idlharness.https.window-expected.txt new file mode 100644 index 0000000..bfdde4a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/idlharness.https.window-expected.txt
@@ -0,0 +1,301 @@ +This is a testharness.js-based test. +Found 297 tests; 262 PASS, 35 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL idl_test setup promise_test: Unhandled rejection with value: object "TypeError: Failed to construct 'XRWebGLLayer': The provided value is not of type '(WebGL2RenderingContext or WebGLRenderingContext)'." +PASS idl_test validation +PASS Partial interface Navigator: original interface defined +PASS Partial interface Navigator: member names are unique +PASS Partial dictionary WebGLContextAttributes: original dictionary defined +PASS Partial dictionary WebGLContextAttributes: member names are unique +PASS Partial interface mixin WebGLRenderingContextBase: original interface mixin defined +PASS Partial interface mixin WebGLRenderingContextBase: member names are unique +PASS Partial interface Navigator[2]: member names are unique +PASS Partial interface Navigator[3]: member names are unique +PASS Partial interface mixin NavigatorID: member names are unique +PASS WebGLRenderingContext includes WebGLRenderingContextBase: member names are unique +FAIL WebGLRenderingContext includes WebGLRenderingContextOverloads: member names are unique assert_true: member bufferData is unique expected true got false +PASS Navigator includes NavigatorID: member names are unique +PASS Navigator includes NavigatorLanguage: member names are unique +PASS Navigator includes NavigatorOnLine: member names are unique +PASS Navigator includes NavigatorContentUtils: member names are unique +PASS Navigator includes NavigatorCookies: member names are unique +PASS Navigator includes NavigatorPlugins: member names are unique +PASS Navigator includes NavigatorConcurrentHardware: member names are unique +PASS XRSystem interface: existence and properties of interface object +PASS XRSystem interface object length +PASS XRSystem interface object name +PASS XRSystem interface: existence and properties of interface prototype object +PASS XRSystem interface: existence and properties of interface prototype object's "constructor" property +PASS XRSystem interface: existence and properties of interface prototype object's @@unscopables property +PASS XRSystem interface: operation isSessionSupported(XRSessionMode) +PASS XRSystem interface: operation requestSession(XRSessionMode, optional XRSessionInit) +PASS XRSystem interface: attribute ondevicechange +PASS XRSession interface: existence and properties of interface object +PASS XRSession interface object length +PASS XRSession interface object name +PASS XRSession interface: existence and properties of interface prototype object +PASS XRSession interface: existence and properties of interface prototype object's "constructor" property +PASS XRSession interface: existence and properties of interface prototype object's @@unscopables property +PASS XRSession interface: attribute visibilityState +FAIL XRSession interface: attribute frameRate assert_true: The prototype object must have a property "frameRate" expected true got false +FAIL XRSession interface: attribute supportedFrameRates assert_true: The prototype object must have a property "supportedFrameRates" expected true got false +PASS XRSession interface: attribute renderState +PASS XRSession interface: attribute inputSources +PASS XRSession interface: attribute enabledFeatures +PASS XRSession interface: operation updateRenderState(optional XRRenderStateInit) +FAIL XRSession interface: operation updateTargetFrameRate(float) assert_own_property: interface prototype object missing non-static operation expected property "updateTargetFrameRate" missing +PASS XRSession interface: operation requestReferenceSpace(XRReferenceSpaceType) +PASS XRSession interface: operation requestAnimationFrame(XRFrameRequestCallback) +PASS XRSession interface: operation cancelAnimationFrame(unsigned long) +PASS XRSession interface: operation end() +PASS XRSession interface: attribute onend +PASS XRSession interface: attribute oninputsourceschange +PASS XRSession interface: attribute onselect +PASS XRSession interface: attribute onselectstart +PASS XRSession interface: attribute onselectend +PASS XRSession interface: attribute onsqueeze +PASS XRSession interface: attribute onsqueezestart +PASS XRSession interface: attribute onsqueezeend +PASS XRSession interface: attribute onvisibilitychange +FAIL XRSession interface: attribute onframeratechange assert_true: The prototype object must have a property "onframeratechange" expected true got false +PASS XRSession must be primary interface of xrSession +PASS Stringification of xrSession +PASS XRSession interface: xrSession must inherit property "visibilityState" with the proper type +FAIL XRSession interface: xrSession must inherit property "frameRate" with the proper type assert_inherits: property "frameRate" not found in prototype chain +FAIL XRSession interface: xrSession must inherit property "supportedFrameRates" with the proper type assert_inherits: property "supportedFrameRates" not found in prototype chain +PASS XRSession interface: xrSession must inherit property "renderState" with the proper type +PASS XRSession interface: xrSession must inherit property "inputSources" with the proper type +PASS XRSession interface: xrSession must inherit property "enabledFeatures" with the proper type +PASS XRSession interface: xrSession must inherit property "updateRenderState(optional XRRenderStateInit)" with the proper type +PASS XRSession interface: calling updateRenderState(optional XRRenderStateInit) on xrSession with too few arguments must throw TypeError +FAIL XRSession interface: xrSession must inherit property "updateTargetFrameRate(float)" with the proper type assert_inherits: property "updateTargetFrameRate" not found in prototype chain +FAIL XRSession interface: calling updateTargetFrameRate(float) on xrSession with too few arguments must throw TypeError assert_inherits: property "updateTargetFrameRate" not found in prototype chain +PASS XRSession interface: xrSession must inherit property "requestReferenceSpace(XRReferenceSpaceType)" with the proper type +PASS XRSession interface: calling requestReferenceSpace(XRReferenceSpaceType) on xrSession with too few arguments must throw TypeError +PASS XRSession interface: xrSession must inherit property "requestAnimationFrame(XRFrameRequestCallback)" with the proper type +PASS XRSession interface: calling requestAnimationFrame(XRFrameRequestCallback) on xrSession with too few arguments must throw TypeError +PASS XRSession interface: xrSession must inherit property "cancelAnimationFrame(unsigned long)" with the proper type +PASS XRSession interface: calling cancelAnimationFrame(unsigned long) on xrSession with too few arguments must throw TypeError +PASS XRSession interface: xrSession must inherit property "end()" with the proper type +PASS XRSession interface: xrSession must inherit property "onend" with the proper type +PASS XRSession interface: xrSession must inherit property "oninputsourceschange" with the proper type +PASS XRSession interface: xrSession must inherit property "onselect" with the proper type +PASS XRSession interface: xrSession must inherit property "onselectstart" with the proper type +PASS XRSession interface: xrSession must inherit property "onselectend" with the proper type +PASS XRSession interface: xrSession must inherit property "onsqueeze" with the proper type +PASS XRSession interface: xrSession must inherit property "onsqueezestart" with the proper type +PASS XRSession interface: xrSession must inherit property "onsqueezeend" with the proper type +PASS XRSession interface: xrSession must inherit property "onvisibilitychange" with the proper type +FAIL XRSession interface: xrSession must inherit property "onframeratechange" with the proper type assert_inherits: property "onframeratechange" not found in prototype chain +PASS XRRenderState interface: existence and properties of interface object +PASS XRRenderState interface object length +PASS XRRenderState interface object name +PASS XRRenderState interface: existence and properties of interface prototype object +PASS XRRenderState interface: existence and properties of interface prototype object's "constructor" property +PASS XRRenderState interface: existence and properties of interface prototype object's @@unscopables property +PASS XRRenderState interface: attribute depthNear +PASS XRRenderState interface: attribute depthFar +PASS XRRenderState interface: attribute inlineVerticalFieldOfView +PASS XRRenderState interface: attribute baseLayer +PASS XRRenderState must be primary interface of xrRenderState +PASS Stringification of xrRenderState +PASS XRRenderState interface: xrRenderState must inherit property "depthNear" with the proper type +PASS XRRenderState interface: xrRenderState must inherit property "depthFar" with the proper type +PASS XRRenderState interface: xrRenderState must inherit property "inlineVerticalFieldOfView" with the proper type +PASS XRRenderState interface: xrRenderState must inherit property "baseLayer" with the proper type +PASS XRFrame interface: existence and properties of interface object +PASS XRFrame interface object length +PASS XRFrame interface object name +PASS XRFrame interface: existence and properties of interface prototype object +PASS XRFrame interface: existence and properties of interface prototype object's "constructor" property +PASS XRFrame interface: existence and properties of interface prototype object's @@unscopables property +PASS XRFrame interface: attribute session +FAIL XRFrame interface: attribute predictedDisplayTime assert_true: The prototype object must have a property "predictedDisplayTime" expected true got false +PASS XRFrame interface: operation getViewerPose(XRReferenceSpace) +PASS XRFrame interface: operation getPose(XRSpace, XRSpace) +PASS XRSpace interface: existence and properties of interface object +PASS XRSpace interface object length +PASS XRSpace interface object name +PASS XRSpace interface: existence and properties of interface prototype object +PASS XRSpace interface: existence and properties of interface prototype object's "constructor" property +PASS XRSpace interface: existence and properties of interface prototype object's @@unscopables property +PASS XRReferenceSpace interface: existence and properties of interface object +PASS XRReferenceSpace interface object length +PASS XRReferenceSpace interface object name +PASS XRReferenceSpace interface: existence and properties of interface prototype object +PASS XRReferenceSpace interface: existence and properties of interface prototype object's "constructor" property +PASS XRReferenceSpace interface: existence and properties of interface prototype object's @@unscopables property +PASS XRReferenceSpace interface: operation getOffsetReferenceSpace(XRRigidTransform) +PASS XRReferenceSpace interface: attribute onreset +PASS XRReferenceSpace must be primary interface of xrReferenceSpace +PASS Stringification of xrReferenceSpace +PASS XRReferenceSpace interface: xrReferenceSpace must inherit property "getOffsetReferenceSpace(XRRigidTransform)" with the proper type +PASS XRReferenceSpace interface: calling getOffsetReferenceSpace(XRRigidTransform) on xrReferenceSpace with too few arguments must throw TypeError +PASS XRReferenceSpace interface: xrReferenceSpace must inherit property "onreset" with the proper type +PASS XRBoundedReferenceSpace interface: existence and properties of interface object +PASS XRBoundedReferenceSpace interface object length +PASS XRBoundedReferenceSpace interface object name +PASS XRBoundedReferenceSpace interface: existence and properties of interface prototype object +PASS XRBoundedReferenceSpace interface: existence and properties of interface prototype object's "constructor" property +PASS XRBoundedReferenceSpace interface: existence and properties of interface prototype object's @@unscopables property +PASS XRBoundedReferenceSpace interface: attribute boundsGeometry +PASS XRView interface: existence and properties of interface object +PASS XRView interface object length +PASS XRView interface object name +PASS XRView interface: existence and properties of interface prototype object +PASS XRView interface: existence and properties of interface prototype object's "constructor" property +PASS XRView interface: existence and properties of interface prototype object's @@unscopables property +PASS XRView interface: attribute eye +PASS XRView interface: attribute projectionMatrix +PASS XRView interface: attribute transform +PASS XRView interface: attribute recommendedViewportScale +PASS XRView interface: operation requestViewportScale(double?) +PASS XRViewport interface: existence and properties of interface object +PASS XRViewport interface object length +PASS XRViewport interface object name +PASS XRViewport interface: existence and properties of interface prototype object +PASS XRViewport interface: existence and properties of interface prototype object's "constructor" property +PASS XRViewport interface: existence and properties of interface prototype object's @@unscopables property +PASS XRViewport interface: attribute x +PASS XRViewport interface: attribute y +PASS XRViewport interface: attribute width +PASS XRViewport interface: attribute height +PASS XRRigidTransform interface: existence and properties of interface object +PASS XRRigidTransform interface object length +PASS XRRigidTransform interface object name +PASS XRRigidTransform interface: existence and properties of interface prototype object +PASS XRRigidTransform interface: existence and properties of interface prototype object's "constructor" property +PASS XRRigidTransform interface: existence and properties of interface prototype object's @@unscopables property +PASS XRRigidTransform interface: attribute position +PASS XRRigidTransform interface: attribute orientation +PASS XRRigidTransform interface: attribute matrix +PASS XRRigidTransform interface: attribute inverse +PASS XRRigidTransform must be primary interface of new XRRigidTransform() +PASS Stringification of new XRRigidTransform() +PASS XRRigidTransform interface: new XRRigidTransform() must inherit property "position" with the proper type +PASS XRRigidTransform interface: new XRRigidTransform() must inherit property "orientation" with the proper type +PASS XRRigidTransform interface: new XRRigidTransform() must inherit property "matrix" with the proper type +PASS XRRigidTransform interface: new XRRigidTransform() must inherit property "inverse" with the proper type +PASS XRPose interface: existence and properties of interface object +PASS XRPose interface object length +PASS XRPose interface object name +PASS XRPose interface: existence and properties of interface prototype object +PASS XRPose interface: existence and properties of interface prototype object's "constructor" property +PASS XRPose interface: existence and properties of interface prototype object's @@unscopables property +PASS XRPose interface: attribute transform +FAIL XRPose interface: attribute linearVelocity assert_true: The prototype object must have a property "linearVelocity" expected true got false +FAIL XRPose interface: attribute angularVelocity assert_true: The prototype object must have a property "angularVelocity" expected true got false +PASS XRPose interface: attribute emulatedPosition +PASS XRViewerPose interface: existence and properties of interface object +PASS XRViewerPose interface object length +PASS XRViewerPose interface object name +PASS XRViewerPose interface: existence and properties of interface prototype object +PASS XRViewerPose interface: existence and properties of interface prototype object's "constructor" property +PASS XRViewerPose interface: existence and properties of interface prototype object's @@unscopables property +PASS XRViewerPose interface: attribute views +PASS XRInputSource interface: existence and properties of interface object +PASS XRInputSource interface object length +PASS XRInputSource interface object name +PASS XRInputSource interface: existence and properties of interface prototype object +PASS XRInputSource interface: existence and properties of interface prototype object's "constructor" property +PASS XRInputSource interface: existence and properties of interface prototype object's @@unscopables property +PASS XRInputSource interface: attribute handedness +PASS XRInputSource interface: attribute targetRayMode +PASS XRInputSource interface: attribute targetRaySpace +PASS XRInputSource interface: attribute gripSpace +PASS XRInputSource interface: attribute profiles +PASS XRInputSourceArray interface: existence and properties of interface object +PASS XRInputSourceArray interface object length +PASS XRInputSourceArray interface object name +PASS XRInputSourceArray interface: existence and properties of interface prototype object +PASS XRInputSourceArray interface: existence and properties of interface prototype object's "constructor" property +PASS XRInputSourceArray interface: existence and properties of interface prototype object's @@unscopables property +PASS XRInputSourceArray interface: iterable<XRInputSource> +PASS XRInputSourceArray interface: attribute length +PASS XRInputSourceArray must be primary interface of xrInputSourceArray +PASS Stringification of xrInputSourceArray +PASS XRInputSourceArray interface: xrInputSourceArray must inherit property "length" with the proper type +PASS XRLayer interface: existence and properties of interface object +PASS XRLayer interface object length +PASS XRLayer interface object name +PASS XRLayer interface: existence and properties of interface prototype object +PASS XRLayer interface: existence and properties of interface prototype object's "constructor" property +PASS XRLayer interface: existence and properties of interface prototype object's @@unscopables property +PASS XRWebGLLayer interface: existence and properties of interface object +PASS XRWebGLLayer interface object length +PASS XRWebGLLayer interface object name +PASS XRWebGLLayer interface: existence and properties of interface prototype object +PASS XRWebGLLayer interface: existence and properties of interface prototype object's "constructor" property +PASS XRWebGLLayer interface: existence and properties of interface prototype object's @@unscopables property +PASS XRWebGLLayer interface: attribute antialias +PASS XRWebGLLayer interface: attribute ignoreDepthValues +FAIL XRWebGLLayer interface: attribute fixedFoveation assert_true: The prototype object must have a property "fixedFoveation" expected true got false +PASS XRWebGLLayer interface: attribute framebuffer +PASS XRWebGLLayer interface: attribute framebufferWidth +PASS XRWebGLLayer interface: attribute framebufferHeight +PASS XRWebGLLayer interface: operation getViewport(XRView) +PASS XRWebGLLayer interface: operation getNativeFramebufferScaleFactor(XRSession) +FAIL XRWebGLLayer must be primary interface of xrWebGLLayer assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL Stringification of xrWebGLLayer assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "antialias" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "ignoreDepthValues" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "fixedFoveation" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "framebuffer" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "framebufferWidth" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "framebufferHeight" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "getViewport(XRView)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: calling getViewport(XRView) on xrWebGLLayer with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "getNativeFramebufferScaleFactor(XRSession)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: calling getNativeFramebufferScaleFactor(XRSession) on xrWebGLLayer with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +PASS XRSessionEvent interface: existence and properties of interface object +PASS XRSessionEvent interface object length +PASS XRSessionEvent interface object name +PASS XRSessionEvent interface: existence and properties of interface prototype object +PASS XRSessionEvent interface: existence and properties of interface prototype object's "constructor" property +PASS XRSessionEvent interface: existence and properties of interface prototype object's @@unscopables property +PASS XRSessionEvent interface: attribute session +PASS XRSessionEvent must be primary interface of xrSessionEvent +PASS Stringification of xrSessionEvent +PASS XRSessionEvent interface: xrSessionEvent must inherit property "session" with the proper type +PASS XRInputSourceEvent interface: existence and properties of interface object +PASS XRInputSourceEvent interface object length +PASS XRInputSourceEvent interface object name +PASS XRInputSourceEvent interface: existence and properties of interface prototype object +PASS XRInputSourceEvent interface: existence and properties of interface prototype object's "constructor" property +PASS XRInputSourceEvent interface: existence and properties of interface prototype object's @@unscopables property +PASS XRInputSourceEvent interface: attribute frame +PASS XRInputSourceEvent interface: attribute inputSource +PASS XRInputSourcesChangeEvent interface: existence and properties of interface object +PASS XRInputSourcesChangeEvent interface object length +PASS XRInputSourcesChangeEvent interface object name +PASS XRInputSourcesChangeEvent interface: existence and properties of interface prototype object +PASS XRInputSourcesChangeEvent interface: existence and properties of interface prototype object's "constructor" property +PASS XRInputSourcesChangeEvent interface: existence and properties of interface prototype object's @@unscopables property +PASS XRInputSourcesChangeEvent interface: attribute session +PASS XRInputSourcesChangeEvent interface: attribute added +PASS XRInputSourcesChangeEvent interface: attribute removed +PASS XRInputSourcesChangeEvent must be primary interface of xrInputSourcesChangeEvent +PASS Stringification of xrInputSourcesChangeEvent +PASS XRInputSourcesChangeEvent interface: xrInputSourcesChangeEvent must inherit property "session" with the proper type +PASS XRInputSourcesChangeEvent interface: xrInputSourcesChangeEvent must inherit property "added" with the proper type +PASS XRInputSourcesChangeEvent interface: xrInputSourcesChangeEvent must inherit property "removed" with the proper type +PASS XRReferenceSpaceEvent interface: existence and properties of interface object +PASS XRReferenceSpaceEvent interface object length +PASS XRReferenceSpaceEvent interface object name +PASS XRReferenceSpaceEvent interface: existence and properties of interface prototype object +PASS XRReferenceSpaceEvent interface: existence and properties of interface prototype object's "constructor" property +PASS XRReferenceSpaceEvent interface: existence and properties of interface prototype object's @@unscopables property +PASS XRReferenceSpaceEvent interface: attribute referenceSpace +PASS XRReferenceSpaceEvent interface: attribute transform +FAIL XRPermissionStatus interface: existence and properties of interface object assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface object length assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface object name assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface: existence and properties of interface prototype object assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface: attribute granted assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL WebGLRenderingContextBase interface: webGLRenderingContextBase must inherit property "makeXRCompatible()" with the proper type assert_inherits: provided value is not an object +PASS WebGLRenderingContext interface: operation makeXRCompatible() +PASS Navigator interface: attribute xr +PASS Navigator interface: navigator must inherit property "xr" with the proper type +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/layers/xrWebGLBinding_constructor.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/layers/xrWebGLBinding_constructor.https-expected.txt new file mode 100644 index 0000000..081389a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/layers/xrWebGLBinding_constructor.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensure that XRWebGLBinding's constructor throws appropriate errors using webgl assert_equals: Should get InvalidStateError for creating with inline session. expected "InvalidStateError" but got "TypeError" +FAIL Ensure that XRWebGLBinding's constructor throws appropriate errors using webgl2 assert_equals: Should get InvalidStateError for creating with inline session. expected "InvalidStateError" but got "TypeError" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https-expected.txt new file mode 100644 index 0000000..f023e3c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL getLightEstimate rejects if probe is from wrong session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL getLightEstimate rejects if probe is from wrong session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https-expected.txt new file mode 100644 index 0000000..ee4a6b7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Cannot get XrLightEstimate from stale frame - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Cannot get XrLightEstimate from stale frame - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_valid.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_valid.https-expected.txt new file mode 100644 index 0000000..88f2ad1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_valid.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Can get XRLightEstimates during frame - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Can get XRLightEstimates during frame - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_ended.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_ended.https-expected.txt new file mode 100644 index 0000000..295c4b9e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_ended.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL getLightProbe rejects on an ended session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL getLightProbe rejects on an ended session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https-expected.txt new file mode 100644 index 0000000..ab2eeb4 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL getLightProbe rejects if not enabled on session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL getLightProbe rejects if not enabled on session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_valid.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_valid.https-expected.txt new file mode 100644 index 0000000..7d24f89 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_valid.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Can create valid XRLightProbe objects - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Can create valid XRLightProbe objects - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https-expected.txt new file mode 100644 index 0000000..c0d0002e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Test that getReflectionCubeMap returns or throws appropriately without a reflection map. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Test that getReflectionCubeMap returns or throws appropriately without a reflection map. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/navigator_xr_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/navigator_xr_sameObject.https-expected.txt new file mode 100644 index 0000000..38a9cb1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/navigator_xr_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Navigator.xr meets [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Navigator.xr meets [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/render_state_update.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/render_state_update.https-expected.txt new file mode 100644 index 0000000..2b80ba12 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/render_state_update.https-expected.txt
@@ -0,0 +1,13 @@ +This is a testharness.js-based test. +FAIL updateRenderState handles appropriately ended sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately ended sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately baseLayers created with different sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately baseLayers created with different sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately immersive sessions with specified inlineVerticalFieldOfView - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately immersive sessions with specified inlineVerticalFieldOfView - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately XRRenderStateInit with no params - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately XRRenderStateInit with no params - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately XRRenderStateInit params - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately XRRenderStateInit params - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/render_state_vertical_fov_immersive.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/render_state_vertical_fov_immersive.https-expected.txt new file mode 100644 index 0000000..b0bbf762 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/render_state_vertical_fov_immersive.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL inlineVerticalFieldOfView is set appropriately on immersively sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL inlineVerticalFieldOfView is set appropriately on immersively sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/render_state_vertical_fov_inline.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/render_state_vertical_fov_inline.https-expected.txt new file mode 100644 index 0000000..cf7afdd0 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/render_state_vertical_fov_inline.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL inlineVerticalFieldOfView is set appropriately on inline sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL inlineVerticalFieldOfView is set appropriately on inline sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webGLCanvasContext_create_xrcompatible.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webGLCanvasContext_create_xrcompatible.https-expected.txt new file mode 100644 index 0000000..380004c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webGLCanvasContext_create_xrcompatible.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Creating a webgl context with no device promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +FAIL Creating a webgl2 context with no device promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +FAIL An XR-compatible webgl context can be created promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL An XR-compatible webgl2 context can be created promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_contextlost.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_contextlost.https-expected.txt new file mode 100644 index 0000000..b4743d2 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_contextlost.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL A lost webgl context should not be able to set xr compatibility promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL A lost webgl2 context should not be able to set xr compatibility promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt new file mode 100644 index 0000000..308bd1b --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Verify promise from a non-reentrant call to makeXRCompatible() is resolved for webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +FAIL Verify promise from a non-reentrant call to makeXRCompatible() is resolved for webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +FAIL Verify promises from reentrant calls to makeXRCompatible() are resolved for webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +FAIL Verify promises from reentrant calls to makeXRCompatible() are resolved for webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webxr_feature_policy.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webxr_feature_policy.https-expected.txt new file mode 100644 index 0000000..7e1eb6f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/webxr_feature_policy.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +PASS Validate isSessionSupported behavior without xr-spatial-tracking policy +PASS Validate requestSession behavior without xr-spatial-tracking policy +PASS Validate devicechange event behavior without xr-spatial-tracking policy +FAIL Validate xr compatibility requests without xr-spatial-tracking policy Cannot read properties of null (reading 'getContextAttributes') +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrBoundedReferenceSpace_updates.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrBoundedReferenceSpace_updates.https-expected.txt new file mode 100644 index 0000000..6134e72 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrBoundedReferenceSpace_updates.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL 'XRBoundedReferenceSpace updates properly when the changes are applied - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL 'XRBoundedReferenceSpace updates properly when the changes are applied - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrDevice_disconnect_ends.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrDevice_disconnect_ends.https-expected.txt new file mode 100644 index 0000000..808e206 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrDevice_disconnect_ends.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Immersive session ends when device is disconnected - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session ends when device is disconnected - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrDevice_requestSession_immersive.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrDevice_requestSession_immersive.https-expected.txt new file mode 100644 index 0000000..59835358 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrDevice_requestSession_immersive.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Tests requestSession resolves when supported - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession resolves when supported - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts XRSessionInit dictionary - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts XRSessionInit dictionary - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown optionalFeatures - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown optionalFeatures - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrDevice_requestSession_optionalFeatures.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrDevice_requestSession_optionalFeatures.https-expected.txt new file mode 100644 index 0000000..ab975b7f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrDevice_requestSession_optionalFeatures.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Tests requestSession accepts XRSessionInit dictionary - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts XRSessionInit dictionary - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts XRSessionInit dictionary with empty feature lists - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts XRSessionInit dictionary with empty feature lists - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown strings in optionalFeatures - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown strings in optionalFeatures - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown objects in optionalFeatures - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown objects in optionalFeatures - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_getPose.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_getPose.https-expected.txt new file mode 100644 index 0000000..6effd0e4 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_getPose.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame.getPose works for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.getPose works for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.getPose works for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.getPose works for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose.https-expected.txt new file mode 100644 index 0000000..7fc1bf3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame getViewerPose(refSpace) matches getPose(viewer, refSpace). - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose(refSpace) matches getPose(viewer, refSpace). - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose_identities.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose_identities.https-expected.txt new file mode 100644 index 0000000..68c0dd5 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose_identities.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame getViewerPose(viewerSpace) & getPose(space, space) return identity even during tracking loss - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose(viewerSpace) & getPose(space, space) return identity even during tracking loss - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_lifetime.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_lifetime.https-expected.txt new file mode 100644 index 0000000..5dc75bf --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_lifetime.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame methods throw exceptions outside of the requestAnimationFrame callback for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame methods throw exceptions outside of the requestAnimationFrame callback for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame methods throw exceptions outside of the requestAnimationFrame callback for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame methods throw exceptions outside of the requestAnimationFrame callback for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_session_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_session_sameObject.https-expected.txt new file mode 100644 index 0000000..a0f5632 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrFrame_session_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame.session meets [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.session meets [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_add_remove.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_add_remove.https-expected.txt new file mode 100644 index 0000000..28d8094 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_add_remove.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSources can be properly added and removed from the session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSources can be properly added and removed from the session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_emulatedPosition.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_emulatedPosition.https-expected.txt new file mode 100644 index 0000000..bffc0df6 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_emulatedPosition.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Poses from XRInputSource.gripSpace have emulatedPosition set properly - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Poses from XRInputSource.gripSpace have emulatedPosition set properly - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_getPose_targetRay_grip.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_getPose_targetRay_grip.https-expected.txt new file mode 100644 index 0000000..4c284b64 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_getPose_targetRay_grip.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Poses between targetRaySpace and gripSpace can be obtained and behave correctly - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Poses between targetRaySpace and gripSpace can be obtained and behave correctly - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_profiles.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_profiles.https-expected.txt new file mode 100644 index 0000000..c255249 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_profiles.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL WebXR InputSource's profiles list can be set - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL WebXR InputSource's profiles list can be set - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_sameObject.https-expected.txt new file mode 100644 index 0000000..f186f5a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrInputSource_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSource attributes meet [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSource attributes meet [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrPose_transform_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrPose_transform_sameObject.https-expected.txt new file mode 100644 index 0000000..763191c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrPose_transform_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRPose.transform meets [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRPose.transform meets [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_originOffset.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_originOffset.https-expected.txt new file mode 100644 index 0000000..4d990b9 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_originOffset.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Updating XRReferenceSpace origin offset updates view and input matrices. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Updating XRReferenceSpace origin offset updates view and input matrices. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt new file mode 100644 index 0000000..b171f324 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Updating XRBoundedReferenceSpace origin offset updates view, input matrices, and bounds geometry. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Updating XRBoundedReferenceSpace origin offset updates view, input matrices, and bounds geometry. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt new file mode 100644 index 0000000..c342fdcdf --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Creating XRReferenceSpace origin offset off of `viewer` space works. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Creating XRReferenceSpace origin offset off of `viewer` space works. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_relationships.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_relationships.https-expected.txt new file mode 100644 index 0000000..13a5ab0 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrReferenceSpace_relationships.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Bounded space, viewer space, local and local-floor space have correct poses w.r.t. each other - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Bounded space, viewer space, local and local-floor space have correct poses w.r.t. each other - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrRigidTransform_constructor.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrRigidTransform_constructor.https-expected.txt new file mode 100644 index 0000000..9e387bcd --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrRigidTransform_constructor.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRRigidTransform constructor works - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRRigidTransform constructor works - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrRigidTransform_inverse.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrRigidTransform_inverse.https-expected.txt new file mode 100644 index 0000000..a3d1611 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrRigidTransform_inverse.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRRigidTransform inverse works - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRRigidTransform inverse works - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrRigidTransform_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrRigidTransform_sameObject.https-expected.txt new file mode 100644 index 0000000..fc78a2d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrRigidTransform_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRRigidTransform position and orientation meet [SameObject] requirements - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRRigidTransform position and orientation meet [SameObject] requirements - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame.https-expected.txt new file mode 100644 index 0000000..3113a90d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt new file mode 100644 index 0000000..bcf3d43 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on immersive testSession - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on immersive testSession - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on non-immersive testSession - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on non-immersive testSession - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_enabledFeatures.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_enabledFeatures.https-expected.txt new file mode 100644 index 0000000..e9c2b095 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_enabledFeatures.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Validate enabledFeatures on XRSession - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Validate enabledFeatures on XRSession - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_end.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_end.https-expected.txt new file mode 100644 index 0000000..e0159de --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_end.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL end event fires when immersive session ends - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL end event fires when immersive session ends - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL end event fires when non-immersive session ends - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL end event fires when non-immersive session ends - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_input_events_end.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_input_events_end.https-expected.txt new file mode 100644 index 0000000..b04825b --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_input_events_end.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Calling end during an input callback stops processing at the right time - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Calling end during an input callback stops processing at the right time - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt new file mode 100644 index 0000000..70f1143b --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRSession requestAnimationFrame calls the provided callback for an immersive session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame calls the provided callback for an immersive session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame calls the provided callback a non-immersive session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame calls the provided callback a non-immersive session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt new file mode 100644 index 0000000..ee3f0af --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL RequestAnimationFrame resolves with good data - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL RequestAnimationFrame resolves with good data - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt new file mode 100644 index 0000000..659cc9c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame getViewerPose updates on the next frame for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt new file mode 100644 index 0000000..69123e1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame getViewerPose updates on the next frame for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for non-immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for non-immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestReferenceSpace.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestReferenceSpace.https-expected.txt new file mode 100644 index 0000000..4577bfad --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestReferenceSpace.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Immersive XRSession requestReferenceSpace returns expected objects - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive XRSession requestReferenceSpace returns expected objects - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive XRSession requestReferenceSpace returns expected objects - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive XRSession requestReferenceSpace returns expected objects - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestReferenceSpace_features.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestReferenceSpace_features.https-expected.txt new file mode 100644 index 0000000..0cc1fed --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestReferenceSpace_features.https-expected.txt
@@ -0,0 +1,27 @@ +This is a testharness.js-based test. +FAIL Non-immersive session supports viewer space by default - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports viewer space by default - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports viewer space by default - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports viewer space by default - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local space by default - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local space by default - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local space when required - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local space when required - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local space when optional - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local space when optional - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local-floor space when required - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local-floor space when required - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local-floor space when required - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local-floor space when required - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local-floor space when optional - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local-floor space when optional - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects bounded-floor space even when requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects bounded-floor space even when requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects unbounded space even when requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects unbounded space even when requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects local space if not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects local space if not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session rejects local-floor space if not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session rejects local-floor space if not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestSessionDuringEnd.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestSessionDuringEnd.https-expected.txt new file mode 100644 index 0000000..37665786 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_requestSessionDuringEnd.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Create new session in OnSessionEnded event - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Create new session in OnSessionEnded event - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Create mew session in end promise - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Create mew session in end promise - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_sameObject.https-expected.txt new file mode 100644 index 0000000..7b12b840 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRSession attributes meet [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession attributes meet [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_viewer_referenceSpace.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_viewer_referenceSpace.https-expected.txt new file mode 100644 index 0000000..ffbd4057 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_viewer_referenceSpace.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Identity reference space provides correct poses for inline sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Identity reference space provides correct poses for inline sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Identity reference space provides correct poses for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Identity reference space provides correct poses for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_visibilityState.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_visibilityState.https-expected.txt new file mode 100644 index 0000000..9172bc83 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrSession_visibilityState.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures that the XRSession's visibilityState is correctly reported and that the associated visibilitychange event fires. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures that the XRSession's visibilityState is correctly reported and that the associated visibilitychange event fires. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrStationaryReferenceSpace_floorlevel_updates.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrStationaryReferenceSpace_floorlevel_updates.https-expected.txt new file mode 100644 index 0000000..9a4ca29 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrStationaryReferenceSpace_floorlevel_updates.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL 'floor-level' XRStationaryReferenceSpace updates properly when the transform changes for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL 'floor-level' XRStationaryReferenceSpace updates properly when the transform changes for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL 'floor-level' XRStationaryReferenceSpace updates properly when the transform changes for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL 'floor-level' XRStationaryReferenceSpace updates properly when the transform changes for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_eyes.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_eyes.https-expected.txt new file mode 100644 index 0000000..168fa8c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_eyes.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRView.eye is correct for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRView.eye is correct for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRView.eye is correct for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRView.eye is correct for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_match.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_match.https-expected.txt new file mode 100644 index 0000000..b8b109b --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_match.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame contains the expected views - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame contains the expected views - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_oneframeupdate.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_oneframeupdate.https-expected.txt new file mode 100644 index 0000000..30c220c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_oneframeupdate.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRView projection matrices update near and far depths on the next frame - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRView projection matrices update near and far depths on the next frame - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_sameObject.https-expected.txt new file mode 100644 index 0000000..b77a377 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrView_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRView attributes meet [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRView attributes meet [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrViewerPose_secondaryViews.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrViewerPose_secondaryViews.https-expected.txt new file mode 100644 index 0000000..527f0b6 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrViewerPose_secondaryViews.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Only primary views are returned if secondary views are not requested for non-immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Only primary views are returned if secondary views are not requested for non-immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Only primary views are returned if secondary views are not requested for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Only primary views are returned if secondary views are not requested for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Requesting secondary views only returns primary views for non-immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Requesting secondary views only returns primary views for non-immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Requesting secondary views returns both primary and secondary views for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Requesting secondary views returns both primary and secondary views for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrViewerPose_views_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrViewerPose_views_sameObject.https-expected.txt new file mode 100644 index 0000000..b6127ca --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrViewerPose_views_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRViewerPose.views meets [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRViewerPose.views meets [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrViewport_valid.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrViewport_valid.https-expected.txt new file mode 100644 index 0000000..46c3616 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrViewport_valid.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRViewport attributes are valid - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRViewport attributes are valid - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRViewport attributes are valid with secondary views requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRViewport attributes are valid with secondary views requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_constructor.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_constructor.https-expected.txt new file mode 100644 index 0000000..5504e8b --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_constructor.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensure that XRWebGLLayer's constructor throws appropriate errors using webgl assert_unreached: Inline XRWebGLLayers should not fail when created with a context that is not XRCompatible Reached unreachable code +FAIL Ensure that XRWebGLLayer's constructor throws appropriate errors using webgl2 assert_unreached: Inline XRWebGLLayers should not fail when created with a context that is not XRCompatible Reached unreachable code +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_draw.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_draw.https-expected.txt new file mode 100644 index 0000000..771907e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_draw.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensure a WebGL layer's framebuffer can only be drawn to inside a XR frame - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure a WebGL layer's framebuffer can only be drawn to inside a XR frame - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_sameObject.https-expected.txt new file mode 100644 index 0000000..d07d76d9 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRWebGLLayer.framebuffer meets [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer.framebuffer meets [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_scale.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_scale.https-expected.txt new file mode 100644 index 0000000..2a51fe6 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_scale.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensure framebuffer scaling works as expected. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure framebuffer scaling works as expected. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer.https-expected.txt new file mode 100644 index 0000000..3f6935b28 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Ensure that the framebuffer given by the WebGL layer is opaque for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure that the framebuffer given by the WebGL layer is opaque for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure that the framebuffer given by the WebGL layer is opaque for non-immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure that the framebuffer given by the WebGL layer is opaque for non-immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https-expected.txt new file mode 100644 index 0000000..02f34b5 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensure that the framebuffer given by the WebGL layer works with stencil for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure that the framebuffer given by the WebGL layer works with stencil for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_viewports.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_viewports.https-expected.txt new file mode 100644 index 0000000..7067999 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xrWebGLLayer_viewports.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL XRWebGLLayer reports a valid viewports for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for immersive sessions with secondary views requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for immersive sessions with secondary views requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for inline sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for inline sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for inline sessions with secondary views requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for inline sessions with secondary views requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xr_viewport_scale.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xr_viewport_scale.https-expected.txt new file mode 100644 index 0000000..e6ee8bb --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/webxr/xr_viewport_scale.https-expected.txt
@@ -0,0 +1,31 @@ +This is a testharness.js-based test. +FAIL requestViewportScale valid viewport for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ null scale for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ null scale for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ undefined scale for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ undefined scale for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ very small scale for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ very small scale for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale applied next frame for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale applied next frame for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale same frame for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale same frame for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL recommendedViewportScale for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL recommendedViewportScale for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ null scale for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ null scale for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ undefined scale for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ undefined scale for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ very small scale for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ very small scale for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale applied next frame for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale applied next frame for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale same frame for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale same frame for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL recommendedViewportScale for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL recommendedViewportScale for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/ar/ar_anchor_getAnchors_null.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/ar/ar_anchor_getAnchors_null.https-expected.txt new file mode 100644 index 0000000..59e1191 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/ar/ar_anchor_getAnchors_null.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame's trackedAnchors is empty when the feature was requested & device returned null anchorsData - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame's trackedAnchors is empty when the feature was requested & device returned null anchorsData - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/ar/ar_hittestsource_lifetimes.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/ar/ar_hittestsource_lifetimes.https-expected.txt new file mode 100644 index 0000000..bfabc2e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/ar/ar_hittestsource_lifetimes.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Ensures hit test source cancellation propagates to the device when manually cancelled. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation propagates to the device when manually cancelled. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation propagates to the device when manually cancelled. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation propagates to the device when manually cancelled. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation propagates to the device when relying on GC - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation propagates to the device when relying on GC - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation propagates to the device when relying on GC - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation propagates to the device when relying on GC - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/ar/ar_light_estimation.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/ar/ar_light_estimation.https-expected.txt new file mode 100644 index 0000000..88095a7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/ar/ar_light_estimation.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Ensures lighting estimation feature works when enabled - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures lighting estimation feature works when enabled - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure lighting estimation feature does not work when not explicitly enabled - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure lighting estimation feature does not work when not explicitly enabled - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/render_state_vertical_fov_inline.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/render_state_vertical_fov_inline.https-expected.txt new file mode 100644 index 0000000..cf7afdd0 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/render_state_vertical_fov_inline.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL inlineVerticalFieldOfView is set appropriately on inline sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL inlineVerticalFieldOfView is set appropriately on inline sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrFrame_getPose.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrFrame_getPose.https-expected.txt new file mode 100644 index 0000000..3437a67 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrFrame_getPose.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame.getPose works between eye-level and floor-level spaces - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.getPose works between eye-level and floor-level spaces - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_immersive.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_immersive.https-expected.txt new file mode 100644 index 0000000..3c88adb --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_immersive.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Immersive session ends if data provider disconnects. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session ends if data provider disconnects. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_inline.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_inline.https-expected.txt new file mode 100644 index 0000000..6611cd3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_inline.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Inline session ends if magic window data provider disconnects. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Inline session ends if magic window data provider disconnects. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_environmentBlendMode.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_environmentBlendMode.https-expected.txt new file mode 100644 index 0000000..1a790c0d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_environmentBlendMode.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL environmentBlendMode is correct for a VR device in immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL environmentBlendMode is correct for a VR device in immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL environmentBlendMode is correct for a VR device in non-immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL environmentBlendMode is correct for a VR device in non-immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_environmentProviderDisconnect.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_environmentProviderDisconnect.https-expected.txt new file mode 100644 index 0000000..889c3da --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_environmentProviderDisconnect.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Outstanding promises get rejected if environmentProvider disconnects - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Outstanding promises get rejected if environmentProvider disconnects - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_framesThrottled.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_framesThrottled.https-expected.txt new file mode 100644 index 0000000..493b0ca --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrSession_framesThrottled.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Blink appropriately reports when frames are throttled - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Blink appropriately reports when frames are throttled - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrWebGLLayer_dirty_framebuffer.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrWebGLLayer_dirty_framebuffer.https-expected.txt new file mode 100644 index 0000000..27d49e0c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xrWebGLLayer_dirty_framebuffer.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL A frame should be submitted if the base layer was written to during requestAnimationFrame - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL A frame should be submitted if the base layer was written to during requestAnimationFrame - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xr_view_projection_detached.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xr_view_projection_detached.https-expected.txt new file mode 100644 index 0000000..812af3a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/wpt_internal/webxr/xr_view_projection_detached.https-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL Test that xrview.projection being detached doesn't cause a crash. promise_test: Unhandled rejection with value: object "TypeError: Failed to construct 'XRWebGLLayer': The provided value is not of type '(WebGL2RenderingContext or WebGLRenderingContext)'." +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt new file mode 100644 index 0000000..e085798 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +PASS Test that getContext with un-supported string throws a TypeError. +FAIL Test that getContext with supported string returns correct results assert_true: expected true got false +FAIL Test that getContext twice with different context type returns null the second time assert_equals: expected null but got object "[object OffscreenCanvasRenderingContext2D]" +PASS Test that 2dcontext.canvas should return the original OffscreenCanvas +FAIL Test that webglcontext.canvas should return the original OffscreenCanvas Cannot read properties of null (reading 'canvas') +PASS Test that OffscreenCanvasRenderingContext2D with alpha disabled makes the OffscreenCanvas opaque +PASS Test that OffscreenCanvasRenderingContext2D with alpha enabled preserves the alpha +PASS Test that 'alpha' context creation attribute is true by default +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt new file mode 100644 index 0000000..e085798 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +PASS Test that getContext with un-supported string throws a TypeError. +FAIL Test that getContext with supported string returns correct results assert_true: expected true got false +FAIL Test that getContext twice with different context type returns null the second time assert_equals: expected null but got object "[object OffscreenCanvasRenderingContext2D]" +PASS Test that 2dcontext.canvas should return the original OffscreenCanvas +FAIL Test that webglcontext.canvas should return the original OffscreenCanvas Cannot read properties of null (reading 'canvas') +PASS Test that OffscreenCanvasRenderingContext2D with alpha disabled makes the OffscreenCanvas opaque +PASS Test that OffscreenCanvasRenderingContext2D with alpha enabled preserves the alpha +PASS Test that 'alpha' context creation attribute is true by default +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap-expected.txt new file mode 100644 index 0000000..8681bd95 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Test that transferToImageBitmap returns an ImageBitmap with correct width and height Failed to execute 'transferToImageBitmap' on 'OffscreenCanvas': Cannot transfer an ImageBitmap from an OffscreenCanvas with no context +PASS Test that transferToImageBitmap returns an ImageBitmap with correct color +PASS Test that transferToImageBitmap won't change context's property +PASS Test that transferToImageBitmap preserves transform +PASS Test that call transferToImageBitmap on a detached OffscreenCanvas throws an exception +PASS Test that transferToImageBitmap without a context throws an exception +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt new file mode 100644 index 0000000..0062a95 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Test that transferToImageBitmap returns an ImageBitmap with correct width and height in a worker assert_unreached: error Reached unreachable code +PASS Test that transferToImageBitmap returns an ImageBitmap with correct color in a worker +PASS Test that call transferToImageBitmap twice returns an ImageBitmap with correct color in a worker +PASS Test that call transferToImageBitmap twice on a alpha-disabled context returns an ImageBitmap with correct color in a worker +PASS Test that transferToImageBitmap won't change context's property in a worker +PASS Test that call transferToImageBitmap preserves transform in a worker +PASS Test that call transferToImageBitmap on a detached OffscreenCanvas throws an exception in a worker +PASS Test that call transferToImageBitmap without a context throws an exception in a worker +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.w-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.w-expected.txt new file mode 100644 index 0000000..9ada9e2 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.w-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +PASS Test that OffscreenCanvas's size is correct after being transferred from a worker. +FAIL Test that transfer an OffscreenCanvas that has a 2d context throws exception in a worker. assert_true: expected true got false +FAIL Test that transfer an OffscreenCanvas that has a webgl context throws exception in a worker. assert_true: expected true got object "[object OffscreenCanvas]" +PASS Test that transfer an OffscreenCanvas twice throws exception in a worker. +PASS Test that calling getContext('2d') on a detached OffscreenCanvas throws exception in a worker. +PASS Test that calling getContext('webgl') on a detached OffscreenCanvas throws exception in a worker. +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/paint-timing/with-first-paint/first-contentful-canvas-webgl2-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/paint-timing/with-first-paint/first-contentful-canvas-webgl2-expected.txt new file mode 100644 index 0000000..50d8f8f7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/paint-timing/with-first-paint/first-contentful-canvas-webgl2-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +NOTRUN First contentful paint fires due to webgl2 canvas render. WebGL 2 Canvas isn't supported. +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/video-rvfc/request-video-frame-callback-before-xr-session.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/video-rvfc/request-video-frame-callback-before-xr-session.https-expected.txt new file mode 100644 index 0000000..15d046c3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/video-rvfc/request-video-frame-callback-before-xr-session.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Make sure video.rVFC works during a non-immersive session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Make sure video.rVFC works during a non-immersive session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Make sure video.rVFC works during an immersive session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Make sure video.rVFC works during an immersive session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/video-rvfc/request-video-frame-callback-during-xr-session.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/video-rvfc/request-video-frame-callback-during-xr-session.https-expected.txt new file mode 100644 index 0000000..fc6ad49 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/video-rvfc/request-video-frame-callback-during-xr-session.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Make sure video.rVFC callbacks started during an immersive session continue after it ends - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Make sure video.rVFC callbacks started during an immersive session continue after it ends - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webcodecs/videoFrame-texImage.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webcodecs/videoFrame-texImage.any-expected.txt new file mode 100644 index 0000000..e809318 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webcodecs/videoFrame-texImage.any-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL texImage2D with 48x36 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texSubImage2D with 48x36 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texImage2D with 480x360 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texSubImage2D with 480x360 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texImage2D with a closed VideoFrame. Cannot read properties of null (reading 'texImage2D') +FAIL texSubImage2D with a closed VideoFrame. Cannot read properties of null (reading 'texSubImage2D') +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webcodecs/videoFrame-texImage.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webcodecs/videoFrame-texImage.any.worker-expected.txt new file mode 100644 index 0000000..e809318 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webcodecs/videoFrame-texImage.any.worker-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL texImage2D with 48x36 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texSubImage2D with 48x36 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texImage2D with 480x360 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texSubImage2D with 480x360 srgb VideoFrame. Cannot read properties of null (reading 'VERTEX_SHADER') +FAIL texImage2D with a closed VideoFrame. Cannot read properties of null (reading 'texImage2D') +FAIL texSubImage2D with a closed VideoFrame. Cannot read properties of null (reading 'texSubImage2D') +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_create_move.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_create_move.https-expected.txt new file mode 100644 index 0000000..8a4b74d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_create_move.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures free-floating anchor move gets propagated to anchor poses - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor move gets propagated to anchor poses - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_delay_creation.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_delay_creation.https-expected.txt new file mode 100644 index 0000000..3f29f35 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_delay_creation.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Ensures free-floating anchor creation with delayed success is handled correctly - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor creation with delayed success is handled correctly - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor creation with delayed failure is handled correctly - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor creation with delayed failure is handled correctly - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_failure.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_failure.https-expected.txt new file mode 100644 index 0000000..8256af3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_failure.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures free-floating anchor creation failure is handled correctly - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor creation failure is handled correctly - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https-expected.txt new file mode 100644 index 0000000..9a688c2 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures free-floating anchor state changes get propagated - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures free-floating anchor state changes get propagated - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_getAnchors.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_getAnchors.https-expected.txt new file mode 100644 index 0000000..4d04e9c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_getAnchors.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame's trackedAnchors is empty when the feature was not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame's trackedAnchors is empty when the feature was not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame's trackedAnchors is empty when the feature was requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame's trackedAnchors is empty when the feature was requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_states.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_states.https-expected.txt new file mode 100644 index 0000000..cad2ec62 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/anchors/ar_anchor_states.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Anchor creation succeeds if the feature was requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Anchor creation succeeds if the feature was requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Anchor creation fails if the feature was not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Anchor creation fails if the feature was not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Anchor creation fails if the feature was requested but the session already ended - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Anchor creation fails if the feature was requested but the session already ended - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/ar-module/xrDevice_requestSession_immersive-ar.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/ar-module/xrDevice_requestSession_immersive-ar.https-expected.txt new file mode 100644 index 0000000..b689d65f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/ar-module/xrDevice_requestSession_immersive-ar.https-expected.txt
@@ -0,0 +1,6 @@ +This is a testharness.js-based test. +FAIL Tests requestSession accepts immersive-ar mode - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts immersive-ar mode - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +PASS Tests requestSession rejects immersive-ar mode when unsupported +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/ar-module/xrSession_environmentBlendMode.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/ar-module/xrSession_environmentBlendMode.https-expected.txt new file mode 100644 index 0000000..7cf63b3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/ar-module/xrSession_environmentBlendMode.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Tests environmentBlendMode for an AR device - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests environmentBlendMode for an AR device - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests environmentBlendMode for a VR device - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests environmentBlendMode for a VR device - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/ar-module/xrSession_interactionMode.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/ar-module/xrSession_interactionMode.https-expected.txt new file mode 100644 index 0000000..2d1305a3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/ar-module/xrSession_interactionMode.https-expected.txt
@@ -0,0 +1,13 @@ +This is a testharness.js-based test. +FAIL Tests interactionMode for an VR_HMD_DEVICE - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an VR_HMD_DEVICE - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an VR_SCREEN_DEVICE - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an VR_SCREEN_DEVICE - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an AR_HMD_DEVICE - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an AR_HMD_DEVICE - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an AR_SCREEN_DEVICE - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for an AR_SCREEN_DEVICE - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for a INLINE_SCREEN_DEVICE - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests interactionMode for a INLINE_SCREEN_DEVICE - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/camera-access/xrCamera_resolution.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/camera-access/xrCamera_resolution.https-expected.txt new file mode 100644 index 0000000..108a308 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/camera-access/xrCamera_resolution.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRCamera object is present and carries expected dimensions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRCamera object is present and carries expected dimensions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https-expected.txt new file mode 100644 index 0000000..20eba12 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures depth data is not available when cleared in the controller, `cpu-optimized` - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures depth data is not available when cleared in the controller, `cpu-optimized` - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https-expected.txt new file mode 100644 index 0000000..728da41 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures getDepthInformation() throws when not run in an active frame, `cpu-optimized` - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures getDepthInformation() throws when not run in an active frame, `cpu-optimized` - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https-expected.txt new file mode 100644 index 0000000..a19f085 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures XRWebGLDepthInformation is not obtainable in `cpu-optimized` usage mode - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures XRWebGLDepthInformation is not obtainable in `cpu-optimized` usage mode - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https-expected.txt new file mode 100644 index 0000000..12ccf7d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures depth data is returned and values match expectation, cpu-optimized, luminance-alpha. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures depth data is returned and values match expectation, cpu-optimized, luminance-alpha. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https-expected.txt new file mode 100644 index 0000000..61a5fff --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures getDepthInformation() throws when run with stale XRView, `cpu-optimized` - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures getDepthInformation() throws when run with stale XRView, `cpu-optimized` - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/depth_sensing_notEnabled.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/depth_sensing_notEnabled.https-expected.txt new file mode 100644 index 0000000..de953cb --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/depth-sensing/depth_sensing_notEnabled.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLBinding.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLBinding.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay.https-expected.txt new file mode 100644 index 0000000..53fe1720 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay.https-expected.txt
@@ -0,0 +1,14 @@ +This is a testharness.js-based test. +PASS Ensures DOM Overlay rejected without root element +FAIL Ensures DOM Overlay feature works for immersive-ar, body element - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay feature works for immersive-ar, body element - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay feature works for immersive-ar, div element - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay feature works for immersive-ar, div element - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay input deduplication works - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay input deduplication works - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay Fullscreen API doesn't change DOM overlay - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay Fullscreen API doesn't change DOM overlay - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay interactions on cross origin iframe are ignored - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay interactions on cross origin iframe are ignored - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay_hit_test.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay_hit_test.https-expected.txt new file mode 100644 index 0000000..b904e6d7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/dom-overlay/ar_dom_overlay_hit_test.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures DOM Overlay interactions on cross origin iframe do not cause hit test results to come up - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures DOM Overlay interactions on cross origin iframe do not cause hit test results to come up - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/dom-overlay/nested_fullscreen.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/dom-overlay/nested_fullscreen.https-expected.txt new file mode 100644 index 0000000..17c5fc0 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/dom-overlay/nested_fullscreen.https-expected.txt
@@ -0,0 +1,6 @@ +This is a testharness.js-based test. +PASS fullscreen setup +FAIL Check XR session from fullscreen - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Check XR session from fullscreen - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_input_source_recreation.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_input_source_recreation.https-expected.txt new file mode 100644 index 0000000..0b76a453 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_input_source_recreation.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Input sources are re-created when handedness or target ray mode changes - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Input sources are re-created when handedness or target ray mode changes - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_input_sources_change.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_input_sources_change.https-expected.txt new file mode 100644 index 0000000..412e308 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_input_sources_change.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Transient input sources fire events in the right order - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient input sources fire events in the right order - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_referenceSpace_reset_immersive.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_referenceSpace_reset_immersive.https-expected.txt new file mode 100644 index 0000000..f84c1f1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_referenceSpace_reset_immersive.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRSession resetpose from a device properly fires off the right events for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession resetpose from a device properly fires off the right events for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_session_select.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_session_select.https-expected.txt new file mode 100644 index 0000000..0c27143e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_session_select.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSources primary input presses properly fires off the right events - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSources primary input presses properly fires off the right events - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_session_select_subframe.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_session_select_subframe.https-expected.txt new file mode 100644 index 0000000..1e621b7d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_session_select_subframe.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures that an XRInputSources primary input being pressed and released in the space of a single frame properly fires off the right events - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures that an XRInputSources primary input being pressed and released in the space of a single frame properly fires off the right events - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_session_squeeze.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_session_squeeze.https-expected.txt new file mode 100644 index 0000000..0c27143e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/events_session_squeeze.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSources primary input presses properly fires off the right events - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSources primary input presses properly fires off the right events - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/exclusive_requestFrame_nolayer.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/exclusive_requestFrame_nolayer.https-expected.txt new file mode 100644 index 0000000..228c15f2 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/exclusive_requestFrame_nolayer.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRSession requestAnimationFrame must fail if the session has no baseLayer for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame must fail if the session has no baseLayer for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame must fail if the session has no baseLayer for non immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame must fail if the session has no baseLayer for non immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https-expected.txt new file mode 100644 index 0000000..e210316 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL WebXR InputSource's gamepad gets disconnected when the input source is removed - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL WebXR InputSource's gamepad gets disconnected when the input source is removed - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https-expected.txt new file mode 100644 index 0000000..1ba2ad4 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL WebXR InputSource's gamepad properly registers input - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL WebXR InputSource's gamepad properly registers input - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/getInputPose_handedness.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/getInputPose_handedness.https-expected.txt new file mode 100644 index 0000000..19f280ac7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/getInputPose_handedness.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSources properly communicate their handedness - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSources properly communicate their handedness - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/getInputPose_pointer.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/getInputPose_pointer.https-expected.txt new file mode 100644 index 0000000..5f492b1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/getInputPose_pointer.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSources with a target ray mode of 'tracked-pointer' properly communicate their poses - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSources with a target ray mode of 'tracked-pointer' properly communicate their poses - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/getViewerPose_emulatedPosition.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/getViewerPose_emulatedPosition.https-expected.txt new file mode 100644 index 0000000..42437dad --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/getViewerPose_emulatedPosition.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame getViewerPose has emulatedPosition set properly. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose has emulatedPosition set properly. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_source_cancel.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_source_cancel.https-expected.txt new file mode 100644 index 0000000..16e1776 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_source_cancel.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Ensures hit test source cancellation works when the session has not ended. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation works when the session has not ended. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation works when the session has not ended. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation works when the session has not ended. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation works when the session has ended - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation works when the session has ended - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation works when the session has ended - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation works when the session has ended - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_inputSources.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_inputSources.https-expected.txt new file mode 100644 index 0000000..bf8d56ee --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_inputSources.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Ensures subscription to hit test works with an XRSpace from input source - no move - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with an XRSpace from input source - no move - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with an XRSpace from input source - after move - no results - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with an XRSpace from input source - after move - no results - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with an XRSpace from input source - after move - 1 result - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with an XRSpace from input source - after move - 1 result - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_refSpaces.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_refSpaces.https-expected.txt new file mode 100644 index 0000000..e41a8b0 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_refSpaces.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Ensures subscription to hit test works with viewer space - straight ahead - plane - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with viewer space - straight ahead - plane - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with viewer space - straight up - no results - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with viewer space - straight up - no results - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with local space - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with local space - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with local-floor space - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to hit test works with local-floor space - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_regular.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_regular.https-expected.txt new file mode 100644 index 0000000..23a01cef --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_regular.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Hit test subscription succeeds if the feature was requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Hit test subscription succeeds if the feature was requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Hit test subscription fails if the feature was not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Hit test subscription fails if the feature was not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Hit test subscription fails if the feature was requested but the session already ended - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Hit test subscription fails if the feature was requested but the session already ended - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_transient.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_transient.https-expected.txt new file mode 100644 index 0000000..93b3efc8 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_states_transient.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Transient hit test subscription succeeds if the feature was requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient hit test subscription succeeds if the feature was requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient hit test subscription fails if the feature was not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient hit test subscription fails if the feature was not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient test subscription fails if the feature was requested but the session already ended - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Transient test subscription fails if the feature was requested but the session already ended - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_transientInputSources.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_transientInputSources.https-expected.txt new file mode 100644 index 0000000..e8c17df --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_transientInputSources.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - no move - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - no move - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - after move - no results - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - after move - no results - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - after move - 1 result - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures subscription to transient hit test works with an XRSpace from input source - after move - 1 result - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_unlocalizable.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_unlocalizable.https-expected.txt new file mode 100644 index 0000000..9600a0f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/hit-test/ar_hittest_subscription_unlocalizable.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures hit test result returns null pose w/unlocalizable space - viewer space - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test result returns null pose w/unlocalizable space - viewer space - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/idlharness.https.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/idlharness.https.window-expected.txt new file mode 100644 index 0000000..bfdde4a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/idlharness.https.window-expected.txt
@@ -0,0 +1,301 @@ +This is a testharness.js-based test. +Found 297 tests; 262 PASS, 35 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL idl_test setup promise_test: Unhandled rejection with value: object "TypeError: Failed to construct 'XRWebGLLayer': The provided value is not of type '(WebGL2RenderingContext or WebGLRenderingContext)'." +PASS idl_test validation +PASS Partial interface Navigator: original interface defined +PASS Partial interface Navigator: member names are unique +PASS Partial dictionary WebGLContextAttributes: original dictionary defined +PASS Partial dictionary WebGLContextAttributes: member names are unique +PASS Partial interface mixin WebGLRenderingContextBase: original interface mixin defined +PASS Partial interface mixin WebGLRenderingContextBase: member names are unique +PASS Partial interface Navigator[2]: member names are unique +PASS Partial interface Navigator[3]: member names are unique +PASS Partial interface mixin NavigatorID: member names are unique +PASS WebGLRenderingContext includes WebGLRenderingContextBase: member names are unique +FAIL WebGLRenderingContext includes WebGLRenderingContextOverloads: member names are unique assert_true: member bufferData is unique expected true got false +PASS Navigator includes NavigatorID: member names are unique +PASS Navigator includes NavigatorLanguage: member names are unique +PASS Navigator includes NavigatorOnLine: member names are unique +PASS Navigator includes NavigatorContentUtils: member names are unique +PASS Navigator includes NavigatorCookies: member names are unique +PASS Navigator includes NavigatorPlugins: member names are unique +PASS Navigator includes NavigatorConcurrentHardware: member names are unique +PASS XRSystem interface: existence and properties of interface object +PASS XRSystem interface object length +PASS XRSystem interface object name +PASS XRSystem interface: existence and properties of interface prototype object +PASS XRSystem interface: existence and properties of interface prototype object's "constructor" property +PASS XRSystem interface: existence and properties of interface prototype object's @@unscopables property +PASS XRSystem interface: operation isSessionSupported(XRSessionMode) +PASS XRSystem interface: operation requestSession(XRSessionMode, optional XRSessionInit) +PASS XRSystem interface: attribute ondevicechange +PASS XRSession interface: existence and properties of interface object +PASS XRSession interface object length +PASS XRSession interface object name +PASS XRSession interface: existence and properties of interface prototype object +PASS XRSession interface: existence and properties of interface prototype object's "constructor" property +PASS XRSession interface: existence and properties of interface prototype object's @@unscopables property +PASS XRSession interface: attribute visibilityState +FAIL XRSession interface: attribute frameRate assert_true: The prototype object must have a property "frameRate" expected true got false +FAIL XRSession interface: attribute supportedFrameRates assert_true: The prototype object must have a property "supportedFrameRates" expected true got false +PASS XRSession interface: attribute renderState +PASS XRSession interface: attribute inputSources +PASS XRSession interface: attribute enabledFeatures +PASS XRSession interface: operation updateRenderState(optional XRRenderStateInit) +FAIL XRSession interface: operation updateTargetFrameRate(float) assert_own_property: interface prototype object missing non-static operation expected property "updateTargetFrameRate" missing +PASS XRSession interface: operation requestReferenceSpace(XRReferenceSpaceType) +PASS XRSession interface: operation requestAnimationFrame(XRFrameRequestCallback) +PASS XRSession interface: operation cancelAnimationFrame(unsigned long) +PASS XRSession interface: operation end() +PASS XRSession interface: attribute onend +PASS XRSession interface: attribute oninputsourceschange +PASS XRSession interface: attribute onselect +PASS XRSession interface: attribute onselectstart +PASS XRSession interface: attribute onselectend +PASS XRSession interface: attribute onsqueeze +PASS XRSession interface: attribute onsqueezestart +PASS XRSession interface: attribute onsqueezeend +PASS XRSession interface: attribute onvisibilitychange +FAIL XRSession interface: attribute onframeratechange assert_true: The prototype object must have a property "onframeratechange" expected true got false +PASS XRSession must be primary interface of xrSession +PASS Stringification of xrSession +PASS XRSession interface: xrSession must inherit property "visibilityState" with the proper type +FAIL XRSession interface: xrSession must inherit property "frameRate" with the proper type assert_inherits: property "frameRate" not found in prototype chain +FAIL XRSession interface: xrSession must inherit property "supportedFrameRates" with the proper type assert_inherits: property "supportedFrameRates" not found in prototype chain +PASS XRSession interface: xrSession must inherit property "renderState" with the proper type +PASS XRSession interface: xrSession must inherit property "inputSources" with the proper type +PASS XRSession interface: xrSession must inherit property "enabledFeatures" with the proper type +PASS XRSession interface: xrSession must inherit property "updateRenderState(optional XRRenderStateInit)" with the proper type +PASS XRSession interface: calling updateRenderState(optional XRRenderStateInit) on xrSession with too few arguments must throw TypeError +FAIL XRSession interface: xrSession must inherit property "updateTargetFrameRate(float)" with the proper type assert_inherits: property "updateTargetFrameRate" not found in prototype chain +FAIL XRSession interface: calling updateTargetFrameRate(float) on xrSession with too few arguments must throw TypeError assert_inherits: property "updateTargetFrameRate" not found in prototype chain +PASS XRSession interface: xrSession must inherit property "requestReferenceSpace(XRReferenceSpaceType)" with the proper type +PASS XRSession interface: calling requestReferenceSpace(XRReferenceSpaceType) on xrSession with too few arguments must throw TypeError +PASS XRSession interface: xrSession must inherit property "requestAnimationFrame(XRFrameRequestCallback)" with the proper type +PASS XRSession interface: calling requestAnimationFrame(XRFrameRequestCallback) on xrSession with too few arguments must throw TypeError +PASS XRSession interface: xrSession must inherit property "cancelAnimationFrame(unsigned long)" with the proper type +PASS XRSession interface: calling cancelAnimationFrame(unsigned long) on xrSession with too few arguments must throw TypeError +PASS XRSession interface: xrSession must inherit property "end()" with the proper type +PASS XRSession interface: xrSession must inherit property "onend" with the proper type +PASS XRSession interface: xrSession must inherit property "oninputsourceschange" with the proper type +PASS XRSession interface: xrSession must inherit property "onselect" with the proper type +PASS XRSession interface: xrSession must inherit property "onselectstart" with the proper type +PASS XRSession interface: xrSession must inherit property "onselectend" with the proper type +PASS XRSession interface: xrSession must inherit property "onsqueeze" with the proper type +PASS XRSession interface: xrSession must inherit property "onsqueezestart" with the proper type +PASS XRSession interface: xrSession must inherit property "onsqueezeend" with the proper type +PASS XRSession interface: xrSession must inherit property "onvisibilitychange" with the proper type +FAIL XRSession interface: xrSession must inherit property "onframeratechange" with the proper type assert_inherits: property "onframeratechange" not found in prototype chain +PASS XRRenderState interface: existence and properties of interface object +PASS XRRenderState interface object length +PASS XRRenderState interface object name +PASS XRRenderState interface: existence and properties of interface prototype object +PASS XRRenderState interface: existence and properties of interface prototype object's "constructor" property +PASS XRRenderState interface: existence and properties of interface prototype object's @@unscopables property +PASS XRRenderState interface: attribute depthNear +PASS XRRenderState interface: attribute depthFar +PASS XRRenderState interface: attribute inlineVerticalFieldOfView +PASS XRRenderState interface: attribute baseLayer +PASS XRRenderState must be primary interface of xrRenderState +PASS Stringification of xrRenderState +PASS XRRenderState interface: xrRenderState must inherit property "depthNear" with the proper type +PASS XRRenderState interface: xrRenderState must inherit property "depthFar" with the proper type +PASS XRRenderState interface: xrRenderState must inherit property "inlineVerticalFieldOfView" with the proper type +PASS XRRenderState interface: xrRenderState must inherit property "baseLayer" with the proper type +PASS XRFrame interface: existence and properties of interface object +PASS XRFrame interface object length +PASS XRFrame interface object name +PASS XRFrame interface: existence and properties of interface prototype object +PASS XRFrame interface: existence and properties of interface prototype object's "constructor" property +PASS XRFrame interface: existence and properties of interface prototype object's @@unscopables property +PASS XRFrame interface: attribute session +FAIL XRFrame interface: attribute predictedDisplayTime assert_true: The prototype object must have a property "predictedDisplayTime" expected true got false +PASS XRFrame interface: operation getViewerPose(XRReferenceSpace) +PASS XRFrame interface: operation getPose(XRSpace, XRSpace) +PASS XRSpace interface: existence and properties of interface object +PASS XRSpace interface object length +PASS XRSpace interface object name +PASS XRSpace interface: existence and properties of interface prototype object +PASS XRSpace interface: existence and properties of interface prototype object's "constructor" property +PASS XRSpace interface: existence and properties of interface prototype object's @@unscopables property +PASS XRReferenceSpace interface: existence and properties of interface object +PASS XRReferenceSpace interface object length +PASS XRReferenceSpace interface object name +PASS XRReferenceSpace interface: existence and properties of interface prototype object +PASS XRReferenceSpace interface: existence and properties of interface prototype object's "constructor" property +PASS XRReferenceSpace interface: existence and properties of interface prototype object's @@unscopables property +PASS XRReferenceSpace interface: operation getOffsetReferenceSpace(XRRigidTransform) +PASS XRReferenceSpace interface: attribute onreset +PASS XRReferenceSpace must be primary interface of xrReferenceSpace +PASS Stringification of xrReferenceSpace +PASS XRReferenceSpace interface: xrReferenceSpace must inherit property "getOffsetReferenceSpace(XRRigidTransform)" with the proper type +PASS XRReferenceSpace interface: calling getOffsetReferenceSpace(XRRigidTransform) on xrReferenceSpace with too few arguments must throw TypeError +PASS XRReferenceSpace interface: xrReferenceSpace must inherit property "onreset" with the proper type +PASS XRBoundedReferenceSpace interface: existence and properties of interface object +PASS XRBoundedReferenceSpace interface object length +PASS XRBoundedReferenceSpace interface object name +PASS XRBoundedReferenceSpace interface: existence and properties of interface prototype object +PASS XRBoundedReferenceSpace interface: existence and properties of interface prototype object's "constructor" property +PASS XRBoundedReferenceSpace interface: existence and properties of interface prototype object's @@unscopables property +PASS XRBoundedReferenceSpace interface: attribute boundsGeometry +PASS XRView interface: existence and properties of interface object +PASS XRView interface object length +PASS XRView interface object name +PASS XRView interface: existence and properties of interface prototype object +PASS XRView interface: existence and properties of interface prototype object's "constructor" property +PASS XRView interface: existence and properties of interface prototype object's @@unscopables property +PASS XRView interface: attribute eye +PASS XRView interface: attribute projectionMatrix +PASS XRView interface: attribute transform +PASS XRView interface: attribute recommendedViewportScale +PASS XRView interface: operation requestViewportScale(double?) +PASS XRViewport interface: existence and properties of interface object +PASS XRViewport interface object length +PASS XRViewport interface object name +PASS XRViewport interface: existence and properties of interface prototype object +PASS XRViewport interface: existence and properties of interface prototype object's "constructor" property +PASS XRViewport interface: existence and properties of interface prototype object's @@unscopables property +PASS XRViewport interface: attribute x +PASS XRViewport interface: attribute y +PASS XRViewport interface: attribute width +PASS XRViewport interface: attribute height +PASS XRRigidTransform interface: existence and properties of interface object +PASS XRRigidTransform interface object length +PASS XRRigidTransform interface object name +PASS XRRigidTransform interface: existence and properties of interface prototype object +PASS XRRigidTransform interface: existence and properties of interface prototype object's "constructor" property +PASS XRRigidTransform interface: existence and properties of interface prototype object's @@unscopables property +PASS XRRigidTransform interface: attribute position +PASS XRRigidTransform interface: attribute orientation +PASS XRRigidTransform interface: attribute matrix +PASS XRRigidTransform interface: attribute inverse +PASS XRRigidTransform must be primary interface of new XRRigidTransform() +PASS Stringification of new XRRigidTransform() +PASS XRRigidTransform interface: new XRRigidTransform() must inherit property "position" with the proper type +PASS XRRigidTransform interface: new XRRigidTransform() must inherit property "orientation" with the proper type +PASS XRRigidTransform interface: new XRRigidTransform() must inherit property "matrix" with the proper type +PASS XRRigidTransform interface: new XRRigidTransform() must inherit property "inverse" with the proper type +PASS XRPose interface: existence and properties of interface object +PASS XRPose interface object length +PASS XRPose interface object name +PASS XRPose interface: existence and properties of interface prototype object +PASS XRPose interface: existence and properties of interface prototype object's "constructor" property +PASS XRPose interface: existence and properties of interface prototype object's @@unscopables property +PASS XRPose interface: attribute transform +FAIL XRPose interface: attribute linearVelocity assert_true: The prototype object must have a property "linearVelocity" expected true got false +FAIL XRPose interface: attribute angularVelocity assert_true: The prototype object must have a property "angularVelocity" expected true got false +PASS XRPose interface: attribute emulatedPosition +PASS XRViewerPose interface: existence and properties of interface object +PASS XRViewerPose interface object length +PASS XRViewerPose interface object name +PASS XRViewerPose interface: existence and properties of interface prototype object +PASS XRViewerPose interface: existence and properties of interface prototype object's "constructor" property +PASS XRViewerPose interface: existence and properties of interface prototype object's @@unscopables property +PASS XRViewerPose interface: attribute views +PASS XRInputSource interface: existence and properties of interface object +PASS XRInputSource interface object length +PASS XRInputSource interface object name +PASS XRInputSource interface: existence and properties of interface prototype object +PASS XRInputSource interface: existence and properties of interface prototype object's "constructor" property +PASS XRInputSource interface: existence and properties of interface prototype object's @@unscopables property +PASS XRInputSource interface: attribute handedness +PASS XRInputSource interface: attribute targetRayMode +PASS XRInputSource interface: attribute targetRaySpace +PASS XRInputSource interface: attribute gripSpace +PASS XRInputSource interface: attribute profiles +PASS XRInputSourceArray interface: existence and properties of interface object +PASS XRInputSourceArray interface object length +PASS XRInputSourceArray interface object name +PASS XRInputSourceArray interface: existence and properties of interface prototype object +PASS XRInputSourceArray interface: existence and properties of interface prototype object's "constructor" property +PASS XRInputSourceArray interface: existence and properties of interface prototype object's @@unscopables property +PASS XRInputSourceArray interface: iterable<XRInputSource> +PASS XRInputSourceArray interface: attribute length +PASS XRInputSourceArray must be primary interface of xrInputSourceArray +PASS Stringification of xrInputSourceArray +PASS XRInputSourceArray interface: xrInputSourceArray must inherit property "length" with the proper type +PASS XRLayer interface: existence and properties of interface object +PASS XRLayer interface object length +PASS XRLayer interface object name +PASS XRLayer interface: existence and properties of interface prototype object +PASS XRLayer interface: existence and properties of interface prototype object's "constructor" property +PASS XRLayer interface: existence and properties of interface prototype object's @@unscopables property +PASS XRWebGLLayer interface: existence and properties of interface object +PASS XRWebGLLayer interface object length +PASS XRWebGLLayer interface object name +PASS XRWebGLLayer interface: existence and properties of interface prototype object +PASS XRWebGLLayer interface: existence and properties of interface prototype object's "constructor" property +PASS XRWebGLLayer interface: existence and properties of interface prototype object's @@unscopables property +PASS XRWebGLLayer interface: attribute antialias +PASS XRWebGLLayer interface: attribute ignoreDepthValues +FAIL XRWebGLLayer interface: attribute fixedFoveation assert_true: The prototype object must have a property "fixedFoveation" expected true got false +PASS XRWebGLLayer interface: attribute framebuffer +PASS XRWebGLLayer interface: attribute framebufferWidth +PASS XRWebGLLayer interface: attribute framebufferHeight +PASS XRWebGLLayer interface: operation getViewport(XRView) +PASS XRWebGLLayer interface: operation getNativeFramebufferScaleFactor(XRSession) +FAIL XRWebGLLayer must be primary interface of xrWebGLLayer assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL Stringification of xrWebGLLayer assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "antialias" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "ignoreDepthValues" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "fixedFoveation" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "framebuffer" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "framebufferWidth" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "framebufferHeight" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "getViewport(XRView)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: calling getViewport(XRView) on xrWebGLLayer with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: xrWebGLLayer must inherit property "getNativeFramebufferScaleFactor(XRSession)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +FAIL XRWebGLLayer interface: calling getNativeFramebufferScaleFactor(XRSession) on xrWebGLLayer with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: xrWebGLLayer is not defined" +PASS XRSessionEvent interface: existence and properties of interface object +PASS XRSessionEvent interface object length +PASS XRSessionEvent interface object name +PASS XRSessionEvent interface: existence and properties of interface prototype object +PASS XRSessionEvent interface: existence and properties of interface prototype object's "constructor" property +PASS XRSessionEvent interface: existence and properties of interface prototype object's @@unscopables property +PASS XRSessionEvent interface: attribute session +PASS XRSessionEvent must be primary interface of xrSessionEvent +PASS Stringification of xrSessionEvent +PASS XRSessionEvent interface: xrSessionEvent must inherit property "session" with the proper type +PASS XRInputSourceEvent interface: existence and properties of interface object +PASS XRInputSourceEvent interface object length +PASS XRInputSourceEvent interface object name +PASS XRInputSourceEvent interface: existence and properties of interface prototype object +PASS XRInputSourceEvent interface: existence and properties of interface prototype object's "constructor" property +PASS XRInputSourceEvent interface: existence and properties of interface prototype object's @@unscopables property +PASS XRInputSourceEvent interface: attribute frame +PASS XRInputSourceEvent interface: attribute inputSource +PASS XRInputSourcesChangeEvent interface: existence and properties of interface object +PASS XRInputSourcesChangeEvent interface object length +PASS XRInputSourcesChangeEvent interface object name +PASS XRInputSourcesChangeEvent interface: existence and properties of interface prototype object +PASS XRInputSourcesChangeEvent interface: existence and properties of interface prototype object's "constructor" property +PASS XRInputSourcesChangeEvent interface: existence and properties of interface prototype object's @@unscopables property +PASS XRInputSourcesChangeEvent interface: attribute session +PASS XRInputSourcesChangeEvent interface: attribute added +PASS XRInputSourcesChangeEvent interface: attribute removed +PASS XRInputSourcesChangeEvent must be primary interface of xrInputSourcesChangeEvent +PASS Stringification of xrInputSourcesChangeEvent +PASS XRInputSourcesChangeEvent interface: xrInputSourcesChangeEvent must inherit property "session" with the proper type +PASS XRInputSourcesChangeEvent interface: xrInputSourcesChangeEvent must inherit property "added" with the proper type +PASS XRInputSourcesChangeEvent interface: xrInputSourcesChangeEvent must inherit property "removed" with the proper type +PASS XRReferenceSpaceEvent interface: existence and properties of interface object +PASS XRReferenceSpaceEvent interface object length +PASS XRReferenceSpaceEvent interface object name +PASS XRReferenceSpaceEvent interface: existence and properties of interface prototype object +PASS XRReferenceSpaceEvent interface: existence and properties of interface prototype object's "constructor" property +PASS XRReferenceSpaceEvent interface: existence and properties of interface prototype object's @@unscopables property +PASS XRReferenceSpaceEvent interface: attribute referenceSpace +PASS XRReferenceSpaceEvent interface: attribute transform +FAIL XRPermissionStatus interface: existence and properties of interface object assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface object length assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface object name assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface: existence and properties of interface prototype object assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL XRPermissionStatus interface: attribute granted assert_own_property: self does not have own property "XRPermissionStatus" expected property "XRPermissionStatus" missing +FAIL WebGLRenderingContextBase interface: webGLRenderingContextBase must inherit property "makeXRCompatible()" with the proper type assert_inherits: provided value is not an object +PASS WebGLRenderingContext interface: operation makeXRCompatible() +PASS Navigator interface: attribute xr +PASS Navigator interface: navigator must inherit property "xr" with the proper type +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/layers/xrWebGLBinding_constructor.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/layers/xrWebGLBinding_constructor.https-expected.txt new file mode 100644 index 0000000..081389a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/layers/xrWebGLBinding_constructor.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensure that XRWebGLBinding's constructor throws appropriate errors using webgl assert_equals: Should get InvalidStateError for creating with inline session. expected "InvalidStateError" but got "TypeError" +FAIL Ensure that XRWebGLBinding's constructor throws appropriate errors using webgl2 assert_equals: Should get InvalidStateError for creating with inline session. expected "InvalidStateError" but got "TypeError" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https-expected.txt new file mode 100644 index 0000000..f023e3c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL getLightEstimate rejects if probe is from wrong session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL getLightEstimate rejects if probe is from wrong session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https-expected.txt new file mode 100644 index 0000000..ee4a6b7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Cannot get XrLightEstimate from stale frame - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Cannot get XrLightEstimate from stale frame - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_valid.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_valid.https-expected.txt new file mode 100644 index 0000000..88f2ad1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrFrame_getLightEstimate_valid.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Can get XRLightEstimates during frame - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Can get XRLightEstimates during frame - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_ended.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_ended.https-expected.txt new file mode 100644 index 0000000..295c4b9e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_ended.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL getLightProbe rejects on an ended session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL getLightProbe rejects on an ended session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https-expected.txt new file mode 100644 index 0000000..ab2eeb4 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL getLightProbe rejects if not enabled on session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL getLightProbe rejects if not enabled on session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_valid.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_valid.https-expected.txt new file mode 100644 index 0000000..7d24f89 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrSession_getLightProbe_valid.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Can create valid XRLightProbe objects - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Can create valid XRLightProbe objects - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https-expected.txt new file mode 100644 index 0000000..c0d0002e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Test that getReflectionCubeMap returns or throws appropriately without a reflection map. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Test that getReflectionCubeMap returns or throws appropriately without a reflection map. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/navigator_xr_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/navigator_xr_sameObject.https-expected.txt new file mode 100644 index 0000000..38a9cb1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/navigator_xr_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Navigator.xr meets [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Navigator.xr meets [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/render_state_update.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/render_state_update.https-expected.txt new file mode 100644 index 0000000..2b80ba12 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/render_state_update.https-expected.txt
@@ -0,0 +1,13 @@ +This is a testharness.js-based test. +FAIL updateRenderState handles appropriately ended sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately ended sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately baseLayers created with different sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately baseLayers created with different sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately immersive sessions with specified inlineVerticalFieldOfView - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately immersive sessions with specified inlineVerticalFieldOfView - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately XRRenderStateInit with no params - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately XRRenderStateInit with no params - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately XRRenderStateInit params - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL updateRenderState handles appropriately XRRenderStateInit params - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/render_state_vertical_fov_immersive.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/render_state_vertical_fov_immersive.https-expected.txt new file mode 100644 index 0000000..b0bbf762 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/render_state_vertical_fov_immersive.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL inlineVerticalFieldOfView is set appropriately on immersively sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL inlineVerticalFieldOfView is set appropriately on immersively sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/render_state_vertical_fov_inline.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/render_state_vertical_fov_inline.https-expected.txt new file mode 100644 index 0000000..cf7afdd0 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/render_state_vertical_fov_inline.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL inlineVerticalFieldOfView is set appropriately on inline sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL inlineVerticalFieldOfView is set appropriately on inline sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webGLCanvasContext_create_xrcompatible.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webGLCanvasContext_create_xrcompatible.https-expected.txt new file mode 100644 index 0000000..380004c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webGLCanvasContext_create_xrcompatible.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Creating a webgl context with no device promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +FAIL Creating a webgl2 context with no device promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +FAIL An XR-compatible webgl context can be created promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL An XR-compatible webgl2 context can be created promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_contextlost.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_contextlost.https-expected.txt new file mode 100644 index 0000000..b4743d2 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_contextlost.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL A lost webgl context should not be able to set xr compatibility promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL A lost webgl2 context should not be able to set xr compatibility promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt new file mode 100644 index 0000000..308bd1b --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Verify promise from a non-reentrant call to makeXRCompatible() is resolved for webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +FAIL Verify promise from a non-reentrant call to makeXRCompatible() is resolved for webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +FAIL Verify promises from reentrant calls to makeXRCompatible() are resolved for webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +FAIL Verify promises from reentrant calls to makeXRCompatible() are resolved for webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'getContextAttributes')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webxr_feature_policy.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webxr_feature_policy.https-expected.txt new file mode 100644 index 0000000..7e1eb6f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/webxr_feature_policy.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +PASS Validate isSessionSupported behavior without xr-spatial-tracking policy +PASS Validate requestSession behavior without xr-spatial-tracking policy +PASS Validate devicechange event behavior without xr-spatial-tracking policy +FAIL Validate xr compatibility requests without xr-spatial-tracking policy Cannot read properties of null (reading 'getContextAttributes') +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrBoundedReferenceSpace_updates.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrBoundedReferenceSpace_updates.https-expected.txt new file mode 100644 index 0000000..6134e72 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrBoundedReferenceSpace_updates.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL 'XRBoundedReferenceSpace updates properly when the changes are applied - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL 'XRBoundedReferenceSpace updates properly when the changes are applied - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrDevice_disconnect_ends.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrDevice_disconnect_ends.https-expected.txt new file mode 100644 index 0000000..808e206 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrDevice_disconnect_ends.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Immersive session ends when device is disconnected - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session ends when device is disconnected - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrDevice_requestSession_immersive.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrDevice_requestSession_immersive.https-expected.txt new file mode 100644 index 0000000..59835358 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrDevice_requestSession_immersive.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL Tests requestSession resolves when supported - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession resolves when supported - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts XRSessionInit dictionary - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts XRSessionInit dictionary - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown optionalFeatures - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown optionalFeatures - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrDevice_requestSession_optionalFeatures.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrDevice_requestSession_optionalFeatures.https-expected.txt new file mode 100644 index 0000000..ab975b7f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrDevice_requestSession_optionalFeatures.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Tests requestSession accepts XRSessionInit dictionary - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts XRSessionInit dictionary - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts XRSessionInit dictionary with empty feature lists - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession accepts XRSessionInit dictionary with empty feature lists - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown strings in optionalFeatures - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown strings in optionalFeatures - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown objects in optionalFeatures - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Tests requestSession ignores unknown objects in optionalFeatures - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_getPose.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_getPose.https-expected.txt new file mode 100644 index 0000000..6effd0e4 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_getPose.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame.getPose works for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.getPose works for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.getPose works for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.getPose works for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose.https-expected.txt new file mode 100644 index 0000000..7fc1bf3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame getViewerPose(refSpace) matches getPose(viewer, refSpace). - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose(refSpace) matches getPose(viewer, refSpace). - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose_identities.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose_identities.https-expected.txt new file mode 100644 index 0000000..68c0dd5 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_getViewerPose_getPose_identities.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame getViewerPose(viewerSpace) & getPose(space, space) return identity even during tracking loss - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose(viewerSpace) & getPose(space, space) return identity even during tracking loss - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_lifetime.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_lifetime.https-expected.txt new file mode 100644 index 0000000..5dc75bf --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_lifetime.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame methods throw exceptions outside of the requestAnimationFrame callback for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame methods throw exceptions outside of the requestAnimationFrame callback for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame methods throw exceptions outside of the requestAnimationFrame callback for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame methods throw exceptions outside of the requestAnimationFrame callback for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_session_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_session_sameObject.https-expected.txt new file mode 100644 index 0000000..a0f5632 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrFrame_session_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame.session meets [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.session meets [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_add_remove.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_add_remove.https-expected.txt new file mode 100644 index 0000000..28d8094 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_add_remove.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSources can be properly added and removed from the session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSources can be properly added and removed from the session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_emulatedPosition.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_emulatedPosition.https-expected.txt new file mode 100644 index 0000000..bffc0df6 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_emulatedPosition.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Poses from XRInputSource.gripSpace have emulatedPosition set properly - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Poses from XRInputSource.gripSpace have emulatedPosition set properly - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_getPose_targetRay_grip.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_getPose_targetRay_grip.https-expected.txt new file mode 100644 index 0000000..4c284b64 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_getPose_targetRay_grip.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Poses between targetRaySpace and gripSpace can be obtained and behave correctly - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Poses between targetRaySpace and gripSpace can be obtained and behave correctly - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_profiles.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_profiles.https-expected.txt new file mode 100644 index 0000000..c255249 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_profiles.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL WebXR InputSource's profiles list can be set - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL WebXR InputSource's profiles list can be set - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_sameObject.https-expected.txt new file mode 100644 index 0000000..f186f5a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrInputSource_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRInputSource attributes meet [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRInputSource attributes meet [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrPose_transform_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrPose_transform_sameObject.https-expected.txt new file mode 100644 index 0000000..763191c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrPose_transform_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRPose.transform meets [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRPose.transform meets [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_originOffset.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_originOffset.https-expected.txt new file mode 100644 index 0000000..4d990b9 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_originOffset.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Updating XRReferenceSpace origin offset updates view and input matrices. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Updating XRReferenceSpace origin offset updates view and input matrices. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt new file mode 100644 index 0000000..b171f324 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Updating XRBoundedReferenceSpace origin offset updates view, input matrices, and bounds geometry. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Updating XRBoundedReferenceSpace origin offset updates view, input matrices, and bounds geometry. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt new file mode 100644 index 0000000..c342fdcdf --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Creating XRReferenceSpace origin offset off of `viewer` space works. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Creating XRReferenceSpace origin offset off of `viewer` space works. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_relationships.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_relationships.https-expected.txt new file mode 100644 index 0000000..13a5ab0 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrReferenceSpace_relationships.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Bounded space, viewer space, local and local-floor space have correct poses w.r.t. each other - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Bounded space, viewer space, local and local-floor space have correct poses w.r.t. each other - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrRigidTransform_constructor.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrRigidTransform_constructor.https-expected.txt new file mode 100644 index 0000000..9e387bcd --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrRigidTransform_constructor.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRRigidTransform constructor works - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRRigidTransform constructor works - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrRigidTransform_inverse.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrRigidTransform_inverse.https-expected.txt new file mode 100644 index 0000000..a3d1611 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrRigidTransform_inverse.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRRigidTransform inverse works - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRRigidTransform inverse works - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrRigidTransform_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrRigidTransform_sameObject.https-expected.txt new file mode 100644 index 0000000..fc78a2d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrRigidTransform_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRRigidTransform position and orientation meet [SameObject] requirements - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRRigidTransform position and orientation meet [SameObject] requirements - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame.https-expected.txt new file mode 100644 index 0000000..3113a90d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt new file mode 100644 index 0000000..bcf3d43 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on immersive testSession - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on immersive testSession - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on non-immersive testSession - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on non-immersive testSession - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_enabledFeatures.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_enabledFeatures.https-expected.txt new file mode 100644 index 0000000..e9c2b095 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_enabledFeatures.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Validate enabledFeatures on XRSession - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Validate enabledFeatures on XRSession - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_end.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_end.https-expected.txt new file mode 100644 index 0000000..e0159de --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_end.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL end event fires when immersive session ends - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL end event fires when immersive session ends - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL end event fires when non-immersive session ends - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL end event fires when non-immersive session ends - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_input_events_end.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_input_events_end.https-expected.txt new file mode 100644 index 0000000..b04825b --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_input_events_end.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Calling end during an input callback stops processing at the right time - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Calling end during an input callback stops processing at the right time - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt new file mode 100644 index 0000000..70f1143b --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRSession requestAnimationFrame calls the provided callback for an immersive session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame calls the provided callback for an immersive session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame calls the provided callback a non-immersive session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession requestAnimationFrame calls the provided callback a non-immersive session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt new file mode 100644 index 0000000..ee3f0af --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL RequestAnimationFrame resolves with good data - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL RequestAnimationFrame resolves with good data - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt new file mode 100644 index 0000000..659cc9c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame getViewerPose updates on the next frame for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt new file mode 100644 index 0000000..69123e1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRFrame getViewerPose updates on the next frame for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for non-immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame getViewerPose updates on the next frame for non-immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestReferenceSpace.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestReferenceSpace.https-expected.txt new file mode 100644 index 0000000..4577bfad --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestReferenceSpace.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Immersive XRSession requestReferenceSpace returns expected objects - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive XRSession requestReferenceSpace returns expected objects - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive XRSession requestReferenceSpace returns expected objects - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive XRSession requestReferenceSpace returns expected objects - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestReferenceSpace_features.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestReferenceSpace_features.https-expected.txt new file mode 100644 index 0000000..0cc1fed --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestReferenceSpace_features.https-expected.txt
@@ -0,0 +1,27 @@ +This is a testharness.js-based test. +FAIL Non-immersive session supports viewer space by default - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports viewer space by default - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports viewer space by default - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports viewer space by default - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local space by default - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local space by default - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local space when required - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local space when required - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local space when optional - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local space when optional - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local-floor space when required - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session supports local-floor space when required - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local-floor space when required - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local-floor space when required - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local-floor space when optional - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session supports local-floor space when optional - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects bounded-floor space even when requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects bounded-floor space even when requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects unbounded space even when requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects unbounded space even when requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects local space if not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Non-immersive session rejects local space if not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session rejects local-floor space if not requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session rejects local-floor space if not requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestSessionDuringEnd.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestSessionDuringEnd.https-expected.txt new file mode 100644 index 0000000..37665786 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_requestSessionDuringEnd.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Create new session in OnSessionEnded event - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Create new session in OnSessionEnded event - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Create mew session in end promise - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Create mew session in end promise - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_sameObject.https-expected.txt new file mode 100644 index 0000000..7b12b840 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRSession attributes meet [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRSession attributes meet [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_viewer_referenceSpace.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_viewer_referenceSpace.https-expected.txt new file mode 100644 index 0000000..ffbd4057 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_viewer_referenceSpace.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Identity reference space provides correct poses for inline sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Identity reference space provides correct poses for inline sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Identity reference space provides correct poses for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Identity reference space provides correct poses for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_visibilityState.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_visibilityState.https-expected.txt new file mode 100644 index 0000000..9172bc83 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrSession_visibilityState.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensures that the XRSession's visibilityState is correctly reported and that the associated visibilitychange event fires. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures that the XRSession's visibilityState is correctly reported and that the associated visibilitychange event fires. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrStationaryReferenceSpace_floorlevel_updates.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrStationaryReferenceSpace_floorlevel_updates.https-expected.txt new file mode 100644 index 0000000..9a4ca29 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrStationaryReferenceSpace_floorlevel_updates.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL 'floor-level' XRStationaryReferenceSpace updates properly when the transform changes for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL 'floor-level' XRStationaryReferenceSpace updates properly when the transform changes for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL 'floor-level' XRStationaryReferenceSpace updates properly when the transform changes for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL 'floor-level' XRStationaryReferenceSpace updates properly when the transform changes for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_eyes.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_eyes.https-expected.txt new file mode 100644 index 0000000..168fa8c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_eyes.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRView.eye is correct for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRView.eye is correct for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRView.eye is correct for non-immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRView.eye is correct for non-immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_match.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_match.https-expected.txt new file mode 100644 index 0000000..b8b109b --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_match.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame contains the expected views - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame contains the expected views - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_oneframeupdate.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_oneframeupdate.https-expected.txt new file mode 100644 index 0000000..30c220c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_oneframeupdate.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRView projection matrices update near and far depths on the next frame - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRView projection matrices update near and far depths on the next frame - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_sameObject.https-expected.txt new file mode 100644 index 0000000..b77a377 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrView_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRView attributes meet [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRView attributes meet [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrViewerPose_secondaryViews.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrViewerPose_secondaryViews.https-expected.txt new file mode 100644 index 0000000..527f0b6 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrViewerPose_secondaryViews.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Only primary views are returned if secondary views are not requested for non-immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Only primary views are returned if secondary views are not requested for non-immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Only primary views are returned if secondary views are not requested for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Only primary views are returned if secondary views are not requested for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Requesting secondary views only returns primary views for non-immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Requesting secondary views only returns primary views for non-immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Requesting secondary views returns both primary and secondary views for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Requesting secondary views returns both primary and secondary views for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrViewerPose_views_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrViewerPose_views_sameObject.https-expected.txt new file mode 100644 index 0000000..b6127ca --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrViewerPose_views_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRViewerPose.views meets [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRViewerPose.views meets [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrViewport_valid.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrViewport_valid.https-expected.txt new file mode 100644 index 0000000..46c3616 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrViewport_valid.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL XRViewport attributes are valid - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRViewport attributes are valid - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRViewport attributes are valid with secondary views requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRViewport attributes are valid with secondary views requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_constructor.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_constructor.https-expected.txt new file mode 100644 index 0000000..5504e8b --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_constructor.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensure that XRWebGLLayer's constructor throws appropriate errors using webgl assert_unreached: Inline XRWebGLLayers should not fail when created with a context that is not XRCompatible Reached unreachable code +FAIL Ensure that XRWebGLLayer's constructor throws appropriate errors using webgl2 assert_unreached: Inline XRWebGLLayers should not fail when created with a context that is not XRCompatible Reached unreachable code +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_draw.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_draw.https-expected.txt new file mode 100644 index 0000000..771907e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_draw.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensure a WebGL layer's framebuffer can only be drawn to inside a XR frame - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure a WebGL layer's framebuffer can only be drawn to inside a XR frame - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_sameObject.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_sameObject.https-expected.txt new file mode 100644 index 0000000..d07d76d9 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_sameObject.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRWebGLLayer.framebuffer meets [SameObject] requirement - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer.framebuffer meets [SameObject] requirement - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_scale.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_scale.https-expected.txt new file mode 100644 index 0000000..2a51fe6 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_framebuffer_scale.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensure framebuffer scaling works as expected. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure framebuffer scaling works as expected. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer.https-expected.txt new file mode 100644 index 0000000..3f6935b28 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Ensure that the framebuffer given by the WebGL layer is opaque for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure that the framebuffer given by the WebGL layer is opaque for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure that the framebuffer given by the WebGL layer is opaque for non-immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure that the framebuffer given by the WebGL layer is opaque for non-immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https-expected.txt new file mode 100644 index 0000000..02f34b5 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Ensure that the framebuffer given by the WebGL layer works with stencil for immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure that the framebuffer given by the WebGL layer works with stencil for immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_viewports.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_viewports.https-expected.txt new file mode 100644 index 0000000..7067999 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xrWebGLLayer_viewports.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL XRWebGLLayer reports a valid viewports for immersive sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for immersive sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for immersive sessions with secondary views requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for immersive sessions with secondary views requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for inline sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for inline sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for inline sessions with secondary views requested - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRWebGLLayer reports a valid viewports for inline sessions with secondary views requested - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xr_viewport_scale.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xr_viewport_scale.https-expected.txt new file mode 100644 index 0000000..e6ee8bb --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/webxr/xr_viewport_scale.https-expected.txt
@@ -0,0 +1,31 @@ +This is a testharness.js-based test. +FAIL requestViewportScale valid viewport for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ null scale for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ null scale for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ undefined scale for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ undefined scale for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ very small scale for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ very small scale for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale applied next frame for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale applied next frame for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale same frame for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale same frame for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL recommendedViewportScale for inline session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL recommendedViewportScale for inline session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ null scale for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ null scale for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ undefined scale for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ undefined scale for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ very small scale for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale valid viewport w/ very small scale for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale applied next frame for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale applied next frame for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale same frame for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL requestViewportScale same frame for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL recommendedViewportScale for immersive-vr session - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL recommendedViewportScale for immersive-vr session - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/virtual/compute-pressure/external/wpt/compute-pressure/idlharness.https.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/virtual/compute-pressure/external/wpt/compute-pressure/idlharness.https.window-expected.txt new file mode 100644 index 0000000..4a45559 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/virtual/compute-pressure/external/wpt/compute-pressure/idlharness.https.window-expected.txt
@@ -0,0 +1,37 @@ +This is a testharness.js-based test. +PASS idl_test setup +PASS idl_test validation +PASS PressureObserver interface: existence and properties of interface object +PASS PressureObserver interface object length +PASS PressureObserver interface object name +PASS PressureObserver interface: existence and properties of interface prototype object +PASS PressureObserver interface: existence and properties of interface prototype object's "constructor" property +PASS PressureObserver interface: existence and properties of interface prototype object's @@unscopables property +PASS PressureObserver interface: operation observe(PressureSource) +PASS PressureObserver interface: operation unobserve(PressureSource) +PASS PressureObserver interface: operation disconnect() +PASS PressureObserver interface: operation takeRecords() +PASS PressureObserver interface: attribute supportedSources +FAIL PressureObserver interface: operation requestPermission() assert_own_property: interface object missing static operation expected property "requestPermission" missing +PASS PressureObserver must be primary interface of observer +PASS Stringification of observer +PASS PressureObserver interface: observer must inherit property "observe(PressureSource)" with the proper type +PASS PressureObserver interface: calling observe(PressureSource) on observer with too few arguments must throw TypeError +PASS PressureObserver interface: observer must inherit property "unobserve(PressureSource)" with the proper type +PASS PressureObserver interface: calling unobserve(PressureSource) on observer with too few arguments must throw TypeError +PASS PressureObserver interface: observer must inherit property "disconnect()" with the proper type +PASS PressureObserver interface: observer must inherit property "takeRecords()" with the proper type +PASS PressureObserver interface: observer must inherit property "supportedSources" with the proper type +PASS PressureObserver interface: observer must inherit property "requestPermission()" with the proper type +PASS PressureRecord interface: existence and properties of interface object +PASS PressureRecord interface object length +PASS PressureRecord interface object name +PASS PressureRecord interface: existence and properties of interface prototype object +PASS PressureRecord interface: existence and properties of interface prototype object's "constructor" property +PASS PressureRecord interface: existence and properties of interface prototype object's @@unscopables property +PASS PressureRecord interface: attribute source +PASS PressureRecord interface: attribute state +PASS PressureRecord interface: attribute factors +PASS PressureRecord interface: attribute time +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/ar/ar_anchor_getAnchors_null.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/ar/ar_anchor_getAnchors_null.https-expected.txt new file mode 100644 index 0000000..59e1191 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/ar/ar_anchor_getAnchors_null.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame's trackedAnchors is empty when the feature was requested & device returned null anchorsData - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame's trackedAnchors is empty when the feature was requested & device returned null anchorsData - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/ar/ar_hittestsource_lifetimes.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/ar/ar_hittestsource_lifetimes.https-expected.txt new file mode 100644 index 0000000..bfabc2e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/ar/ar_hittestsource_lifetimes.https-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +FAIL Ensures hit test source cancellation propagates to the device when manually cancelled. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation propagates to the device when manually cancelled. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation propagates to the device when manually cancelled. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation propagates to the device when manually cancelled. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation propagates to the device when relying on GC - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures hit test source cancellation propagates to the device when relying on GC - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation propagates to the device when relying on GC - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures transient input hit test source cancellation propagates to the device when relying on GC - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/ar/ar_light_estimation.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/ar/ar_light_estimation.https-expected.txt new file mode 100644 index 0000000..88095a7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/ar/ar_light_estimation.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL Ensures lighting estimation feature works when enabled - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensures lighting estimation feature works when enabled - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure lighting estimation feature does not work when not explicitly enabled - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Ensure lighting estimation feature does not work when not explicitly enabled - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/render_state_vertical_fov_inline.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/render_state_vertical_fov_inline.https-expected.txt new file mode 100644 index 0000000..cf7afdd0 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/render_state_vertical_fov_inline.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL inlineVerticalFieldOfView is set appropriately on inline sessions - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL inlineVerticalFieldOfView is set appropriately on inline sessions - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrFrame_getPose.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrFrame_getPose.https-expected.txt new file mode 100644 index 0000000..3437a67 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrFrame_getPose.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL XRFrame.getPose works between eye-level and floor-level spaces - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL XRFrame.getPose works between eye-level and floor-level spaces - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_immersive.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_immersive.https-expected.txt new file mode 100644 index 0000000..3c88adb --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_immersive.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Immersive session ends if data provider disconnects. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Immersive session ends if data provider disconnects. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_inline.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_inline.https-expected.txt new file mode 100644 index 0000000..6611cd3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_dataProviderDisconnect_inline.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Inline session ends if magic window data provider disconnects. - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Inline session ends if magic window data provider disconnects. - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_environmentBlendMode.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_environmentBlendMode.https-expected.txt new file mode 100644 index 0000000..1a790c0d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_environmentBlendMode.https-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +FAIL environmentBlendMode is correct for a VR device in immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL environmentBlendMode is correct for a VR device in immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL environmentBlendMode is correct for a VR device in non-immersive - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL environmentBlendMode is correct for a VR device in non-immersive - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_environmentProviderDisconnect.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_environmentProviderDisconnect.https-expected.txt new file mode 100644 index 0000000..889c3da --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_environmentProviderDisconnect.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Outstanding promises get rejected if environmentProvider disconnects - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Outstanding promises get rejected if environmentProvider disconnects - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_framesThrottled.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_framesThrottled.https-expected.txt new file mode 100644 index 0000000..493b0ca --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrSession_framesThrottled.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Blink appropriately reports when frames are throttled - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL Blink appropriately reports when frames are throttled - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrWebGLLayer_dirty_framebuffer.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrWebGLLayer_dirty_framebuffer.https-expected.txt new file mode 100644 index 0000000..27d49e0c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xrWebGLLayer_dirty_framebuffer.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL A frame should be submitted if the base layer was written to during requestAnimationFrame - webgl promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +FAIL A frame should be submitted if the base layer was written to during requestAnimationFrame - webgl2 promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of null (reading 'makeXRCompatible')" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xr_view_projection_detached.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xr_view_projection_detached.https-expected.txt new file mode 100644 index 0000000..812af3a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac12-arm64/wpt_internal/webxr/xr_view_projection_detached.https-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL Test that xrview.projection being detached doesn't cause a crash. promise_test: Unhandled rejection with value: object "TypeError: Failed to construct 'XRWebGLLayer': The provided value is not of type '(WebGL2RenderingContext or WebGLRenderingContext)'." +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/win10/external/wpt/web-animations/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/win10/external/wpt/web-animations/idlharness.window-expected.txt new file mode 100644 index 0000000..80e721f --- /dev/null +++ b/third_party/blink/web_tests/platform/win10/external/wpt/web-animations/idlharness.window-expected.txt
@@ -0,0 +1,208 @@ +This is a testharness.js-based test. +Found 204 tests; 155 PASS, 49 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS idl_test setup +PASS idl_test validation +PASS Partial interface Document: original interface defined +PASS Partial interface Document: member names are unique +PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined +PASS Partial interface mixin DocumentOrShadowRoot: member names are unique +PASS Partial interface AnimationTimeline: original interface defined +PASS Partial interface AnimationTimeline: valid exposure set +PASS Partial interface AnimationTimeline: member names are unique +PASS Partial interface Animation: original interface defined +PASS Partial interface Animation: valid exposure set +PASS Partial interface Animation: member names are unique +PASS Partial interface AnimationEffect: original interface defined +PASS Partial interface AnimationEffect: valid exposure set +PASS Partial interface AnimationEffect: member names are unique +PASS Partial dictionary EffectTiming: original dictionary defined +PASS Partial dictionary EffectTiming: member names are unique +PASS Partial dictionary OptionalEffectTiming: original dictionary defined +PASS Partial dictionary OptionalEffectTiming: member names are unique +PASS Partial dictionary ComputedEffectTiming: original dictionary defined +PASS Partial dictionary ComputedEffectTiming: member names are unique +PASS Partial interface KeyframeEffect: original interface defined +PASS Partial interface KeyframeEffect: member names are unique +PASS Partial dictionary KeyframeEffectOptions: original dictionary defined +PASS Partial dictionary KeyframeEffectOptions: member names are unique +PASS Partial interface Document[2]: member names are unique +PASS Partial interface Document[3]: member names are unique +PASS Element includes Animatable: member names are unique +PASS Document includes NonElementParentNode: member names are unique +PASS DocumentFragment includes NonElementParentNode: member names are unique +PASS Document includes DocumentOrShadowRoot: member names are unique +PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique +PASS Document includes ParentNode: member names are unique +PASS DocumentFragment includes ParentNode: member names are unique +PASS Element includes ParentNode: member names are unique +PASS Element includes NonDocumentTypeChildNode: member names are unique +PASS Element includes ChildNode: member names are unique +PASS Element includes Slottable: member names are unique +PASS Document includes XPathEvaluatorBase: member names are unique +PASS Document includes GlobalEventHandlers: member names are unique +PASS DocumentTimeline interface: existence and properties of interface object +PASS DocumentTimeline interface object length +PASS DocumentTimeline interface object name +PASS DocumentTimeline interface: existence and properties of interface prototype object +PASS DocumentTimeline interface: existence and properties of interface prototype object's "constructor" property +PASS DocumentTimeline interface: existence and properties of interface prototype object's @@unscopables property +PASS DocumentTimeline must be primary interface of document.timeline +PASS Stringification of document.timeline +PASS AnimationTimeline interface: document.timeline must inherit property "duration" with the proper type +FAIL AnimationTimeline interface: document.timeline must inherit property "play(optional AnimationEffect?)" with the proper type assert_inherits: property "play" not found in prototype chain +FAIL AnimationTimeline interface: calling play(optional AnimationEffect?) on document.timeline with too few arguments must throw TypeError assert_inherits: property "play" not found in prototype chain +PASS Animation interface: existence and properties of interface object +PASS Animation interface object length +PASS Animation interface object name +PASS Animation interface: existence and properties of interface prototype object +PASS Animation interface: existence and properties of interface prototype object's "constructor" property +PASS Animation interface: existence and properties of interface prototype object's @@unscopables property +PASS Animation interface: attribute id +PASS Animation interface: attribute effect +PASS Animation interface: attribute timeline +PASS Animation interface: attribute playbackRate +PASS Animation interface: attribute playState +PASS Animation interface: attribute replaceState +PASS Animation interface: attribute pending +PASS Animation interface: attribute ready +PASS Animation interface: attribute finished +PASS Animation interface: attribute onfinish +PASS Animation interface: attribute oncancel +PASS Animation interface: attribute onremove +PASS Animation interface: operation cancel() +PASS Animation interface: operation finish() +PASS Animation interface: operation play() +PASS Animation interface: operation pause() +PASS Animation interface: operation updatePlaybackRate(double) +PASS Animation interface: operation reverse() +PASS Animation interface: operation persist() +PASS Animation interface: operation commitStyles() +PASS Animation interface: attribute startTime +PASS Animation interface: attribute currentTime +PASS Animation must be primary interface of new Animation() +PASS Stringification of new Animation() +PASS Animation interface: new Animation() must inherit property "id" with the proper type +PASS Animation interface: new Animation() must inherit property "effect" with the proper type +PASS Animation interface: new Animation() must inherit property "timeline" with the proper type +PASS Animation interface: new Animation() must inherit property "playbackRate" with the proper type +PASS Animation interface: new Animation() must inherit property "playState" with the proper type +PASS Animation interface: new Animation() must inherit property "replaceState" with the proper type +PASS Animation interface: new Animation() must inherit property "pending" with the proper type +PASS Animation interface: new Animation() must inherit property "ready" with the proper type +PASS Animation interface: new Animation() must inherit property "finished" with the proper type +PASS Animation interface: new Animation() must inherit property "onfinish" with the proper type +PASS Animation interface: new Animation() must inherit property "oncancel" with the proper type +PASS Animation interface: new Animation() must inherit property "onremove" with the proper type +PASS Animation interface: new Animation() must inherit property "cancel()" with the proper type +PASS Animation interface: new Animation() must inherit property "finish()" with the proper type +PASS Animation interface: new Animation() must inherit property "play()" with the proper type +PASS Animation interface: new Animation() must inherit property "pause()" with the proper type +PASS Animation interface: new Animation() must inherit property "updatePlaybackRate(double)" with the proper type +PASS Animation interface: calling updatePlaybackRate(double) on new Animation() with too few arguments must throw TypeError +PASS Animation interface: new Animation() must inherit property "reverse()" with the proper type +PASS Animation interface: new Animation() must inherit property "persist()" with the proper type +PASS Animation interface: new Animation() must inherit property "commitStyles()" with the proper type +PASS Animation interface: new Animation() must inherit property "startTime" with the proper type +PASS Animation interface: new Animation() must inherit property "currentTime" with the proper type +PASS AnimationEffect interface: existence and properties of interface object +PASS AnimationEffect interface object length +PASS AnimationEffect interface object name +PASS AnimationEffect interface: existence and properties of interface prototype object +PASS AnimationEffect interface: existence and properties of interface prototype object's "constructor" property +PASS AnimationEffect interface: existence and properties of interface prototype object's @@unscopables property +PASS AnimationEffect interface: operation getTiming() +PASS AnimationEffect interface: operation getComputedTiming() +PASS AnimationEffect interface: operation updateTiming(optional OptionalEffectTiming) +FAIL AnimationEffect interface: attribute parent assert_true: The prototype object must have a property "parent" expected true got false +FAIL AnimationEffect interface: attribute previousSibling assert_true: The prototype object must have a property "previousSibling" expected true got false +FAIL AnimationEffect interface: attribute nextSibling assert_true: The prototype object must have a property "nextSibling" expected true got false +FAIL AnimationEffect interface: operation before(AnimationEffect...) assert_own_property: interface prototype object missing non-static operation expected property "before" missing +FAIL AnimationEffect interface: operation after(AnimationEffect...) assert_own_property: interface prototype object missing non-static operation expected property "after" missing +FAIL AnimationEffect interface: operation replace(AnimationEffect...) assert_own_property: interface prototype object missing non-static operation expected property "replace" missing +FAIL AnimationEffect interface: operation remove() assert_own_property: interface prototype object missing non-static operation expected property "remove" missing +PASS KeyframeEffect interface: existence and properties of interface object +PASS KeyframeEffect interface object length +PASS KeyframeEffect interface object name +PASS KeyframeEffect interface: existence and properties of interface prototype object +PASS KeyframeEffect interface: existence and properties of interface prototype object's "constructor" property +PASS KeyframeEffect interface: existence and properties of interface prototype object's @@unscopables property +PASS KeyframeEffect interface: attribute target +PASS KeyframeEffect interface: attribute pseudoElement +PASS KeyframeEffect interface: attribute composite +PASS KeyframeEffect interface: operation getKeyframes() +PASS KeyframeEffect interface: operation setKeyframes(object?) +FAIL KeyframeEffect interface: attribute iterationComposite assert_true: The prototype object must have a property "iterationComposite" expected true got false +PASS KeyframeEffect must be primary interface of new KeyframeEffect(null, null) +PASS Stringification of new KeyframeEffect(null, null) +PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "target" with the proper type +PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "pseudoElement" with the proper type +PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "composite" with the proper type +PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "getKeyframes()" with the proper type +PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "setKeyframes(object?)" with the proper type +PASS KeyframeEffect interface: calling setKeyframes(object?) on new KeyframeEffect(null, null) with too few arguments must throw TypeError +FAIL KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "iterationComposite" with the proper type assert_inherits: property "iterationComposite" not found in prototype chain +PASS AnimationEffect interface: new KeyframeEffect(null, null) must inherit property "getTiming()" with the proper type +PASS AnimationEffect interface: new KeyframeEffect(null, null) must inherit property "getComputedTiming()" with the proper type +PASS AnimationEffect interface: new KeyframeEffect(null, null) must inherit property "updateTiming(optional OptionalEffectTiming)" with the proper type +PASS AnimationEffect interface: calling updateTiming(optional OptionalEffectTiming) on new KeyframeEffect(null, null) with too few arguments must throw TypeError +FAIL AnimationEffect interface: new KeyframeEffect(null, null) must inherit property "parent" with the proper type assert_inherits: property "parent" not found in prototype chain +FAIL AnimationEffect interface: new KeyframeEffect(null, null) must inherit property "previousSibling" with the proper type assert_inherits: property "previousSibling" not found in prototype chain +FAIL AnimationEffect interface: new KeyframeEffect(null, null) must inherit property "nextSibling" with the proper type assert_inherits: property "nextSibling" not found in prototype chain +FAIL AnimationEffect interface: new KeyframeEffect(null, null) must inherit property "before(AnimationEffect...)" with the proper type assert_inherits: property "before" not found in prototype chain +FAIL AnimationEffect interface: calling before(AnimationEffect...) on new KeyframeEffect(null, null) with too few arguments must throw TypeError assert_inherits: property "before" not found in prototype chain +FAIL AnimationEffect interface: new KeyframeEffect(null, null) must inherit property "after(AnimationEffect...)" with the proper type assert_inherits: property "after" not found in prototype chain +FAIL AnimationEffect interface: calling after(AnimationEffect...) on new KeyframeEffect(null, null) with too few arguments must throw TypeError assert_inherits: property "after" not found in prototype chain +FAIL AnimationEffect interface: new KeyframeEffect(null, null) must inherit property "replace(AnimationEffect...)" with the proper type assert_inherits: property "replace" not found in prototype chain +FAIL AnimationEffect interface: calling replace(AnimationEffect...) on new KeyframeEffect(null, null) with too few arguments must throw TypeError assert_inherits: property "replace" not found in prototype chain +FAIL AnimationEffect interface: new KeyframeEffect(null, null) must inherit property "remove()" with the proper type assert_inherits: property "remove" not found in prototype chain +FAIL GroupEffect interface: existence and properties of interface object assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface object length assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface object name assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface: existence and properties of interface prototype object assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface: attribute children assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface: attribute firstChild assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface: attribute lastChild assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface: operation clone() assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface: operation prepend(AnimationEffect...) assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL GroupEffect interface: operation append(AnimationEffect...) assert_own_property: self does not have own property "GroupEffect" expected property "GroupEffect" missing +FAIL AnimationNodeList interface: existence and properties of interface object assert_own_property: self does not have own property "AnimationNodeList" expected property "AnimationNodeList" missing +FAIL AnimationNodeList interface object length assert_own_property: self does not have own property "AnimationNodeList" expected property "AnimationNodeList" missing +FAIL AnimationNodeList interface object name assert_own_property: self does not have own property "AnimationNodeList" expected property "AnimationNodeList" missing +FAIL AnimationNodeList interface: existence and properties of interface prototype object assert_own_property: self does not have own property "AnimationNodeList" expected property "AnimationNodeList" missing +FAIL AnimationNodeList interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "AnimationNodeList" expected property "AnimationNodeList" missing +FAIL AnimationNodeList interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "AnimationNodeList" expected property "AnimationNodeList" missing +FAIL AnimationNodeList interface: attribute length assert_own_property: self does not have own property "AnimationNodeList" expected property "AnimationNodeList" missing +FAIL AnimationNodeList interface: operation item(unsigned long) assert_own_property: self does not have own property "AnimationNodeList" expected property "AnimationNodeList" missing +FAIL SequenceEffect interface: existence and properties of interface object assert_own_property: self does not have own property "SequenceEffect" expected property "SequenceEffect" missing +FAIL SequenceEffect interface object length assert_own_property: self does not have own property "SequenceEffect" expected property "SequenceEffect" missing +FAIL SequenceEffect interface object name assert_own_property: self does not have own property "SequenceEffect" expected property "SequenceEffect" missing +FAIL SequenceEffect interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SequenceEffect" expected property "SequenceEffect" missing +FAIL SequenceEffect interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SequenceEffect" expected property "SequenceEffect" missing +FAIL SequenceEffect interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SequenceEffect" expected property "SequenceEffect" missing +FAIL SequenceEffect interface: operation clone() assert_own_property: self does not have own property "SequenceEffect" expected property "SequenceEffect" missing +PASS AnimationPlaybackEvent interface: existence and properties of interface object +PASS AnimationPlaybackEvent interface object length +PASS AnimationPlaybackEvent interface object name +PASS AnimationPlaybackEvent interface: existence and properties of interface prototype object +PASS AnimationPlaybackEvent interface: existence and properties of interface prototype object's "constructor" property +PASS AnimationPlaybackEvent interface: existence and properties of interface prototype object's @@unscopables property +PASS AnimationPlaybackEvent interface: attribute currentTime +PASS AnimationPlaybackEvent interface: attribute timelineTime +PASS AnimationPlaybackEvent must be primary interface of new AnimationPlaybackEvent("cancel") +PASS Stringification of new AnimationPlaybackEvent("cancel") +PASS AnimationPlaybackEvent interface: new AnimationPlaybackEvent("cancel") must inherit property "currentTime" with the proper type +PASS AnimationPlaybackEvent interface: new AnimationPlaybackEvent("cancel") must inherit property "timelineTime" with the proper type +PASS Document interface: attribute timeline +PASS Document interface: operation getAnimations() +PASS Document interface: document must inherit property "timeline" with the proper type +PASS Document interface: document must inherit property "getAnimations()" with the proper type +PASS ShadowRoot interface: operation getAnimations() +PASS ShadowRoot interface: shadowRoot must inherit property "getAnimations()" with the proper type +PASS Element interface: operation animate(object?, optional (unrestricted double or KeyframeAnimationOptions)) +PASS Element interface: operation getAnimations(optional GetAnimationsOptions) +PASS AnimationTimeline interface: attribute duration +FAIL AnimationTimeline interface: operation play(optional AnimationEffect?) assert_own_property: interface prototype object missing non-static operation expected property "play" missing +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/wpt_internal/cache_storage/padding.https.html.ini b/third_party/blink/web_tests/wpt_internal/cache_storage/padding.https.html.ini index a067ca4..eeba882 100644 --- a/third_party/blink/web_tests/wpt_internal/cache_storage/padding.https.html.ini +++ b/third_party/blink/web_tests/wpt_internal/cache_storage/padding.https.html.ini
@@ -1,4 +1,4 @@ [padding.https.html] [Code cache padding should be stable.] expected: - if product == "chrome": [FAIL, PASS] + if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/wpt_internal/fenced_frame/visual-viewport.https.html.ini b/third_party/blink/web_tests/wpt_internal/fenced_frame/visual-viewport.https.html.ini index bf52466..abd881b 100644 --- a/third_party/blink/web_tests/wpt_internal/fenced_frame/visual-viewport.https.html.ini +++ b/third_party/blink/web_tests/wpt_internal/fenced_frame/visual-viewport.https.html.ini
@@ -1,2 +1,4 @@ [visual-viewport.https.html] - expected: [ERROR, CRASH] + expected: TIMEOUT + [visualViewport values inside fenced frame] + expected: TIMEOUT
diff --git a/third_party/blink/web_tests/wpt_internal/fragment-directive/create-selector-directive.html.ini b/third_party/blink/web_tests/wpt_internal/fragment-directive/create-selector-directive.html.ini index 64c5e0b65..4567d00 100644 --- a/third_party/blink/web_tests/wpt_internal/fragment-directive/create-selector-directive.html.ini +++ b/third_party/blink/web_tests/wpt_internal/fragment-directive/create-selector-directive.html.ini
@@ -1,12 +1,8 @@ [create-selector-directive.html] - [window.getSelection()] - expected: - if (flag_specific == "") and (os == "win"): [PASS, FAIL] - [Collapsed range.] expected: - if (flag_specific == "") and (os == "win"): [PASS, FAIL] + if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] [Generate selector within iframe] expected: - if (flag_specific == "") and (os == "win"): [PASS, FAIL] + if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/wpt_internal/html/interaction/focus/the-autofocus-attribute/object-fallback.html.ini b/third_party/blink/web_tests/wpt_internal/html/interaction/focus/the-autofocus-attribute/object-fallback.html.ini index 816edad..c9cf564 100644 --- a/third_party/blink/web_tests/wpt_internal/html/interaction/focus/the-autofocus-attribute/object-fallback.html.ini +++ b/third_party/blink/web_tests/wpt_internal/html/interaction/focus/the-autofocus-attribute/object-fallback.html.ini
@@ -1,6 +1,4 @@ [object-fallback.html] - expected: - if os == "win": TIMEOUT [An autofocus element in an OBJECT with a loaded frame should not be processed] expected: if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/force-in-order/async-script.html.ini b/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/force-in-order/async-script.html.ini new file mode 100644 index 0000000..2f03553 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/force-in-order/async-script.html.ini
@@ -0,0 +1,5 @@ +[async-script.html?reload] + expected: + if product == "chrome": [OK, ERROR] + +[async-script.html]
diff --git a/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/selective-in-order/async-script.sub.html.ini b/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/selective-in-order/async-script.sub.html.ini index dd9e83ee..c439e28b 100644 --- a/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/selective-in-order/async-script.sub.html.ini +++ b/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/selective-in-order/async-script.sub.html.ini
@@ -2,4 +2,4 @@ [async-script.sub.html?reload] expected: - if product == "chrome": [OK, ERROR] + if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/wpt_internal/prerender/restriction-speech-recognition.html.ini b/third_party/blink/web_tests/wpt_internal/prerender/restriction-speech-recognition.html.ini index c781b97..ab9149b 100644 --- a/third_party/blink/web_tests/wpt_internal/prerender/restriction-speech-recognition.html.ini +++ b/third_party/blink/web_tests/wpt_internal/prerender/restriction-speech-recognition.html.ini
@@ -3,6 +3,7 @@ disabled: if flag_specific == "force-renderer-accessibility": @False expected: + if (product == "content_shell") and (os == "win"): [OK, ERROR] if product == "chrome": TIMEOUT [SpeechRecognition.start should be deferred until the prerendered page is activated] expected:
diff --git a/third_party/blink/web_tests/wpt_internal/storage/buckets/bucket_names.tentative.https.any.js.ini b/third_party/blink/web_tests/wpt_internal/storage/buckets/bucket_names.tentative.https.any.js.ini index 7ea8128..89b62595 100644 --- a/third_party/blink/web_tests/wpt_internal/storage/buckets/bucket_names.tentative.https.any.js.ini +++ b/third_party/blink/web_tests/wpt_internal/storage/buckets/bucket_names.tentative.https.any.js.ini
@@ -1,22 +1,4 @@ [bucket_names.tentative.https.any.serviceworker.html] - -[bucket_names.tentative.https.any.sharedworker.html] - -[bucket_names.tentative.https.any.worker.html] - -[bucket_names.tentative.https.any.html] - [open() allows bucket names with allowed characters] - expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL] - - [open() allows bucket names with `-` in the middle] - expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL] - - [open() allows bucket names with `_` in the middle] - expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL] - [open() allows bucket names ending with `_`] expected: if flag_specific == "disable-layout-ng": [PASS, FAIL] @@ -25,7 +7,23 @@ expected: if flag_specific == "disable-layout-ng": [PASS, FAIL] - [delete() allows bucket names with allowed characters] + [delete() allows bucket names ending with `_`] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL] + + [open() allows bucket names with `-` in the middle] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL] + + [delete() allows bucket names ending with `-`] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL] + + [open() does not store duplicate bucket names] + expected: + if flag_specific == "disable-layout-ng": [PASS, FAIL] + + [open() allows bucket names with `_` in the middle] expected: if flag_specific == "disable-layout-ng": [PASS, FAIL] @@ -37,14 +35,17 @@ expected: if flag_specific == "disable-layout-ng": [PASS, FAIL] - [delete() allows bucket names ending with `_`] + [delete() allows bucket names with allowed characters] expected: if flag_specific == "disable-layout-ng": [PASS, FAIL] - [delete() allows bucket names ending with `-`] + [open() allows bucket names with allowed characters] expected: if flag_specific == "disable-layout-ng": [PASS, FAIL] - [open() does not store duplicate bucket names] - expected: - if flag_specific == "disable-layout-ng": [PASS, FAIL] + +[bucket_names.tentative.https.any.sharedworker.html] + +[bucket_names.tentative.https.any.worker.html] + +[bucket_names.tentative.https.any.html]
diff --git a/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/reload-crash.html.ini b/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/reload-crash.html.ini deleted file mode 100644 index 19cf3a6..0000000 --- a/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/reload-crash.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[reload-crash.html] - expected: - if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-and-nested-element-transition.html.ini b/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-and-nested-element-transition.html.ini index e1161b9b..eab0b68 100644 --- a/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-and-nested-element-transition.html.ini +++ b/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-and-nested-element-transition.html.ini
@@ -1,4 +1,4 @@ [root-and-nested-element-transition.html] expected: - if product == "chrome": [FAIL, ERROR] + if product == "chrome": ERROR FAIL
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml index 89dddd9..95a2422 100644 --- a/tools/metrics/histograms/metadata/android/histograms.xml +++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -416,10 +416,10 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.ExactTaskCreated" - enum="BackgroundTaskId" expires_after="2022-05-01"> - <owner>fgorski@chromium.org</owner> + enum="BackgroundTaskId" expires_after="2023-06-04"> <owner>nator@chromium.org</owner> <owner>knollr@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary> Records that an exact task has been created. Recorded when the task is scheduled. @@ -428,16 +428,16 @@ <histogram name="Android.BackgroundTaskScheduler.TaskCanceled" enum="BackgroundTaskId" expires_after="2023-06-04"> - <owner>fgorski@chromium.org</owner> <owner>nyquist@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary>Records that a specific background task has been canceled.</summary> </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskCreated.WithExpiration" - enum="BackgroundTaskId" expires_after="2022-05-01"> - <owner>fgorski@chromium.org</owner> + enum="BackgroundTaskId" expires_after="2023-06-04"> <owner>nator@chromium.org</owner> <owner>knollr@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary> Records that a specific task has been created with an expiration deadline. Recorded when the task is scheduled. @@ -445,10 +445,10 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskCreated.WithoutExpiration" - enum="BackgroundTaskId" expires_after="2022-05-01"> - <owner>fgorski@chromium.org</owner> + enum="BackgroundTaskId" expires_after="2023-06-04"> <owner>nator@chromium.org</owner> <owner>knollr@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary> Records that a specific task has been created without the expiration feature activated. Recorded when the task is scheduled. @@ -457,9 +457,9 @@ <histogram name="Android.BackgroundTaskScheduler.TaskExpired" enum="BackgroundTaskId" expires_after="2023-06-04"> - <owner>fgorski@chromium.org</owner> <owner>nator@chromium.org</owner> <owner>knollr@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary> Records that a specific background task has expired. Recorded before the task is to be started. @@ -467,9 +467,9 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskFinished.{TaskType}" - units="ms" expires_after="2022-11-01"> - <owner>shaktisahu@chromium.org</owner> + units="ms" expires_after="2023-06-04"> <owner>nyquist@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary> Records the time (uptimeMillis) taken by a background task of type {TaskType}. Recorded when the task finished callback is invoked. @@ -479,8 +479,8 @@ <histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative" enum="BackgroundTaskId" expires_after="2023-06-04"> - <owner>fgorski@chromium.org</owner> <owner>nyquist@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary> Records that a task extending a NativeBackgroundTask started loading the native portion of Chrome (either in Reduced Mode or Full Browser Mode). @@ -488,7 +488,7 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative.FullBrowser" - enum="BackgroundTaskId" expires_after="2023-02-12"> + enum="BackgroundTaskId" expires_after="2023-06-04"> <owner>mheikal@chromium.org</owner> <owner>hanxi@chromium.org</owner> <owner>hnakashima@chromium.org</owner> @@ -499,7 +499,7 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative.ReducedMode" - enum="BackgroundTaskId" expires_after="2023-02-12"> + enum="BackgroundTaskId" expires_after="2023-06-04"> <owner>mheikal@chromium.org</owner> <owner>hanxi@chromium.org</owner> <owner>hnakashima@chromium.org</owner> @@ -509,18 +509,18 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskScheduled.Failure" - enum="BackgroundTaskId" expires_after="2023-03-19"> - <owner>fgorski@chromium.org</owner> + enum="BackgroundTaskId" expires_after="2023-06-04"> <owner>nyquist@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary> Records that a specific background task has failed to be scheduled. </summary> </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskScheduled.Success" - enum="BackgroundTaskId" expires_after="2023-05-07"> - <owner>fgorski@chromium.org</owner> + enum="BackgroundTaskId" expires_after="2023-06-04"> <owner>nyquist@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary> Records that a specific background task has been successfully scheduled. </summary> @@ -528,15 +528,15 @@ <histogram name="Android.BackgroundTaskScheduler.TaskStarted" enum="BackgroundTaskId" expires_after="2023-06-04"> - <owner>fgorski@chromium.org</owner> <owner>nyquist@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary>Records that a specific background task has been started.</summary> </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskStopped" - enum="BackgroundTaskId" expires_after="2023-03-19"> - <owner>fgorski@chromium.org</owner> + enum="BackgroundTaskId" expires_after="2023-06-04"> <owner>nyquist@chromium.org</owner> + <owner>shaktisahu@chromium.org</owner> <summary> Records that a specific background task has been stopped by Background Task Scheduler before it was able to complete itself.
diff --git a/tools/metrics/histograms/metadata/network/histograms.xml b/tools/metrics/histograms/metadata/network/histograms.xml index a54ac0d..8d8dbd5 100644 --- a/tools/metrics/histograms/metadata/network/histograms.xml +++ b/tools/metrics/histograms/metadata/network/histograms.xml
@@ -1545,7 +1545,7 @@ </histogram> <histogram name="Network.Radio.PossibleWakeupTrigger.ResolveHostPurpose2" - enum="ResolveHostPurpose" expires_after="2023-02-14"> + enum="ResolveHostPurpose" expires_after="2023-04-05"> <owner>bashi@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -1556,7 +1556,7 @@ </histogram> <histogram name="Network.Radio.PossibleWakeupTrigger.URLLoaderAnnotationId2" - enum="TrafficAnnotationUniqueIdHash" expires_after="2023-02-12"> + enum="TrafficAnnotationUniqueIdHash" expires_after="2023-04-05"> <owner>bashi@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -1567,7 +1567,7 @@ <histogram name="Network.Radio.PossibleWakeupTrigger.URLLoaderRequestDestination" - enum="RequestDestination" expires_after="2023-02-14"> + enum="RequestDestination" expires_after="2023-04-05"> <owner>bashi@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -1578,7 +1578,7 @@ <histogram name="Network.Radio.PossibleWakeupTrigger.URLLoaderRequestIsPrefetch" - enum="Boolean" expires_after="2023-02-14"> + enum="Boolean" expires_after="2023-04-05"> <owner>bashi@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -1588,7 +1588,7 @@ </histogram> <histogram name="Network.Radio.PossibleWakeupTrigger.URLLoaderRequestPriority" - enum="NetRequestPriority" expires_after="2023-02-14"> + enum="NetRequestPriority" expires_after="2023-04-05"> <owner>bashi@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/safe_browsing/histograms.xml b/tools/metrics/histograms/metadata/safe_browsing/histograms.xml index b0e3a1a3..403ecf3 100644 --- a/tools/metrics/histograms/metadata/safe_browsing/histograms.xml +++ b/tools/metrics/histograms/metadata/safe_browsing/histograms.xml
@@ -482,18 +482,6 @@ </token> </histogram> -<histogram name="SafeBrowsing.DeepScan.Download.BypassedByUser.Duration" - units="ms" expires_after="2023-02-01"> - <owner>domfc@chromium.org</owner> - <owner>webprotect-team@google.com</owner> - <summary> - This records the duration from the time the binary is uploaded for deep - scanning of a download request until the time the user decides to bypass the - verdict. It is logged once for each binary upload when the user bypasses the - verdict. - </summary> -</histogram> - <histogram name="SafeBrowsing.DelayedWarnings.Event" enum="SafeBrowsingDelayedWarningEvent" expires_after="2021-08-22"> <obsolete> @@ -2302,6 +2290,7 @@ <token key="Connector" variants="EnterpriseConnector"/> <token key="Result"> <variant name="" summary="any"/> + <variant name=".BypassedByUser" summary="a BypassedByUser"/> <variant name=".CancelledByUser" summary="a CancelledByUser"/> <variant name=".FailedToGetToken" summary="a FailedToGetToken"/> <variant name=".FailedToGetVerdict" summary="a FailedToGetVerdict"/> @@ -2386,18 +2375,6 @@ </summary> </histogram> -<histogram name="SafeBrowsingBinaryUploadService.ActiveRequestsAtShutdown" - units="requests" expires_after="2023-02-01"> - <owner>domfc@chromium.org</owner> - <owner>jgingras@chromium.org</owner> - <owner>webprotect-eng@google.com</owner> - <summary> - This records the number of active requests when a BinaryUploadService - instance is shutdown. This metric is only logged if the number of active - requests is not 0. - </summary> -</histogram> - </histograms> </histogram-configuration>
diff --git a/tools/metrics/histograms/metadata/update_engine/histograms.xml b/tools/metrics/histograms/metadata/update_engine/histograms.xml index 75d20c9..9898e77 100644 --- a/tools/metrics/histograms/metadata/update_engine/histograms.xml +++ b/tools/metrics/histograms/metadata/update_engine/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="UpdateEngine.Attempt.ConnectionType" - enum="UpdateEngineConnectionType" expires_after="2023-01-01"> + enum="UpdateEngineConnectionType" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -39,7 +39,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.DownloadErrorCode" - enum="UpdateEngineDownloadErrorCode" expires_after="2023-05-07"> + enum="UpdateEngineDownloadErrorCode" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -54,7 +54,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.DownloadSource" - enum="UpdateEngineDownloadSource" expires_after="2023-05-07"> + enum="UpdateEngineDownloadSource" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -68,7 +68,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.DurationMinutes" units="minutes" - expires_after="2023-05-07"> + expires_after="2023-06-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -82,7 +82,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.DurationUptimeMinutes" units="minutes" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -96,7 +96,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.InternalErrorCode" - enum="UpdateEngineErrorCode" expires_after="2023-05-07"> + enum="UpdateEngineErrorCode" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -110,7 +110,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.Number" units="count" - expires_after="2023-05-14"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -124,7 +124,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.PayloadBytesDownloadedMiB" units="MiB" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -137,7 +137,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.PayloadDownloadSpeedKBps" units="KBps" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -152,7 +152,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.PayloadSizeMiB" units="MiB" - expires_after="2023-05-07"> + expires_after="2023-06-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -165,7 +165,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.PayloadType" - enum="UpdateEnginePayloadFormat" expires_after="2023-05-07"> + enum="UpdateEnginePayloadFormat" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -181,7 +181,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.Result" enum="UpdateEngineAttemptResult" - expires_after="2023-05-07"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -194,7 +194,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.TimeSinceLastAttemptMinutes" - units="minutes" expires_after="2023-06-04"> + units="minutes" expires_after="2023-06-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -209,7 +209,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.TimeSinceLastAttemptUptimeMinutes" - units="minutes" expires_after="2023-05-07"> + units="minutes" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -224,7 +224,7 @@ </histogram> <histogram name="UpdateEngine.CertificateCheck.Download" - enum="UpdateEngineCertificateCheckStatus" expires_after="2023-01-01"> + enum="UpdateEngineCertificateCheckStatus" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -239,7 +239,7 @@ </histogram> <histogram name="UpdateEngine.CertificateCheck.UpdateCheck" - enum="UpdateEngineCertificateCheckStatus" expires_after="2023-01-01"> + enum="UpdateEngineCertificateCheckStatus" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -253,7 +253,7 @@ </histogram> <histogram name="UpdateEngine.Check.DownloadErrorCode" - enum="UpdateEngineDownloadErrorCode" expires_after="2023-01-01"> + enum="UpdateEngineDownloadErrorCode" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -268,7 +268,7 @@ </histogram> <histogram name="UpdateEngine.Check.Reaction" enum="UpdateEngineCheckReaction" - expires_after="2023-05-14"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -284,7 +284,7 @@ </histogram> <histogram name="UpdateEngine.Check.Result" enum="UpdateEngineCheckResult" - expires_after="2023-05-07"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -337,7 +337,7 @@ </histogram> <histogram name="UpdateEngine.Check.TimeSinceLastCheckMinutes" units="minutes" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -351,7 +351,7 @@ </histogram> <histogram name="UpdateEngine.Check.TimeSinceLastCheckUptimeMinutes" - units="minutes" expires_after="2023-01-01"> + units="minutes" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -365,7 +365,7 @@ </histogram> <histogram name="UpdateEngine.ConsecutiveUpdate.Count" units="updates" - expires_after="2023-06-11"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -378,7 +378,7 @@ </histogram> <histogram name="UpdateEngine.ConsecutiveUpdate.Failed" enum="BooleanHit" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -391,7 +391,7 @@ </histogram> <histogram name="UpdateEngine.ConsumerAutoUpdate" enum="BooleanOptedOut" - expires_after="2023-06-01"> + expires_after="2024-01-01"> <owner>yuanpengni@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -403,7 +403,7 @@ </histogram> <histogram name="UpdateEngine.Daily.OSAgeDays" units="days" - expires_after="2023-06-04"> + expires_after="2023-06-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -454,7 +454,7 @@ </histogram> <histogram name="UpdateEngine.FailedUpdateCount" units="count" - expires_after="2023-05-14"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -469,7 +469,7 @@ </histogram> <histogram name="UpdateEngine.InstallDateProvisioningSource" - enum="UpdateEngineInstallDateProvisioningSource" expires_after="2023-05-07"> + enum="UpdateEngineInstallDateProvisioningSource" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -534,7 +534,7 @@ </histogram> <histogram name="UpdateEngine.Rollback.Result" enum="BooleanSuccess" - expires_after="2023-05-14"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -547,7 +547,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.AttemptCount" units="count" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -560,7 +560,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiB" units="MiB" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -574,7 +574,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiBHttpPeer" - units="MiB" expires_after="2023-01-01"> + units="MiB" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -588,7 +588,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiBHttpServer" - units="MiB" expires_after="2023-01-01"> + units="MiB" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -602,7 +602,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiBHttpsServer" - units="MiB" expires_after="2023-01-01"> + units="MiB" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -616,7 +616,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.DownloadOverheadPercentage" - units="%" expires_after="2023-01-01"> + units="%" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -629,7 +629,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.DownloadSourcesUsed" - enum="UpdateEngineDownloadSources" expires_after="2023-06-04"> + enum="UpdateEngineDownloadSources" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -672,7 +672,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.PayloadSizeMiB" units="MiB" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -685,7 +685,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.PayloadType" - enum="UpdateEnginePayloadFormat" expires_after="2023-06-04"> + enum="UpdateEnginePayloadFormat" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -699,7 +699,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.RebootCount" units="count" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -712,7 +712,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.TotalDurationMinutes" - units="minutes" expires_after="2023-05-07"> + units="minutes" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -727,7 +727,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.TotalDurationUptimeMinutes" - units="minutes" expires_after="2023-05-07"> + units="minutes" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -742,7 +742,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.UpdatesAbandonedCount" - units="count" expires_after="2023-01-01"> + units="count" expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -756,7 +756,7 @@ </histogram> <histogram name="UpdateEngine.SuccessfulUpdate.UrlSwitchCount" units="count" - expires_after="2023-06-11"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -770,7 +770,7 @@ </histogram> <histogram name="UpdateEngine.TimeToRebootMinutes" units="minutes" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -786,7 +786,7 @@ </histogram> <histogram name="UpdateEngine.UpdateInvalidated" enum="BooleanSuccess" - expires_after="2023-01-01"> + expires_after="2024-01-01"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml index b275854..52b5284 100644 --- a/tools/metrics/ukm/ukm.xml +++ b/tools/metrics/ukm/ukm.xml
@@ -17998,6 +17998,18 @@ metric, we measure the latency of user interactions by Responsiveness.UserInteraction.MaxEventDuration. </summary> + <aggregation> + <history> + <index fields="profile.country"/> + <index fields="profile.country,profile.system_ram"/> + <index fields="profile.is_dominant_version"/> + <index fields="profile.is_latest_version"/> + <index fields="profile.system_ram"/> + <statistics> + <quantiles type="std-percentiles"/> + </statistics> + </history> + </aggregation> </metric> <metric name="InteractiveTiming.WorstUserInteractionLatency.MaxEventDuration"> <summary>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 6223e69..fd6afedc 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -22,7 +22,7 @@ }, "linux": { "hash": "d7d54c61af21c66d6ac53c1055b957e89d7a8ebb", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/367c798358282cf6fbc9fc47a71a10b26cb6040f/trace_processor_shell" + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/1f3b5b40211b34322fe31a43556c8e4a028d0275/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/ui/base/x/x11_util.cc b/ui/base/x/x11_util.cc index 06f8847..c669fc6 100644 --- a/ui/base/x/x11_util.cc +++ b/ui/base/x/x11_util.cc
@@ -30,7 +30,6 @@ #include "base/strings/stringprintf.h" #include "base/task/single_thread_task_runner.h" #include "base/trace_event/trace_event.h" -#include "base/values.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -694,21 +693,6 @@ return true; } -void StoreGpuExtraInfoIntoListValue(x11::VisualId system_visual, - x11::VisualId rgba_visual, - base::Value& list_value) { - list_value.Append(display::BuildGpuInfoEntry("Window manager", - ui::GuessWindowManagerName())); - list_value.Append(display::BuildGpuInfoEntry( - "Compositing manager", ui::IsCompositingManagerPresent() ? "Yes" : "No")); - list_value.Append(display::BuildGpuInfoEntry( - "System visual ID", - base::NumberToString(static_cast<uint32_t>(system_visual)))); - list_value.Append(display::BuildGpuInfoEntry( - "RGBA visual ID", - base::NumberToString(static_cast<uint32_t>(rgba_visual)))); -} - bool WmSupportsHint(x11::Atom atom) { if (!SupportsEWMH()) return false;
diff --git a/ui/file_manager/file_manager/background/js/file_manager_base.js b/ui/file_manager/file_manager/background/js/file_manager_base.js index 3ec9f42..6f12584 100644 --- a/ui/file_manager/file_manager/background/js/file_manager_base.js +++ b/ui/file_manager/file_manager/background/js/file_manager_base.js
@@ -1,6 +1,8 @@ // Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import './metrics_start.js'; + import {assert} from 'chrome://resources/ash/common/assert.js'; import {loadTimeData} from 'chrome://resources/ash/common/load_time_data.m.js';
diff --git a/ui/file_manager/file_manager/background/js/test_util.js b/ui/file_manager/file_manager/background/js/test_util.js index c51572f..be142ad 100644 --- a/ui/file_manager/file_manager/background/js/test_util.js +++ b/ui/file_manager/file_manager/background/js/test_util.js
@@ -6,8 +6,6 @@ import {ProgressCenterItem} from '../../common/js/progress_center_common.js'; import {util} from '../../common/js/util.js'; -import {background} from './file_manager_base.js'; -import {launcher} from './launcher.js'; import {test} from './test_util_base.js'; export {test}; @@ -28,7 +26,7 @@ * App ID. */ test.util.async.openMainWindow = (appState, callback) => { - launcher.launchFileManager(appState).then(callback); + window.background.launchFileManager(appState).then(callback); }; /** @@ -948,6 +946,6 @@ item.progressValue = progressValue; item.itemCount = count; - background.progressCenter.updateItem(item); + window.background.progressCenter.updateItem(item); return true; };
diff --git a/ui/file_manager/file_manager/background/js/test_util_base.js b/ui/file_manager/file_manager/background/js/test_util_base.js index 222389e..aaa3bafbb 100644 --- a/ui/file_manager/file_manager/background/js/test_util_base.js +++ b/ui/file_manager/file_manager/background/js/test_util_base.js
@@ -4,10 +4,6 @@ import {assert} from 'chrome://resources/ash/common/assert.js'; -import {metrics} from '../../common/js/metrics.js'; -import {util} from '../../common/js/util.js'; -import {VolumeManagerCommon} from '../../common/js/volume_manager_types.js'; - /** * Namespace for test related things. */
diff --git a/ui/file_manager/file_manager/foreground/js/main.js b/ui/file_manager/file_manager/foreground/js/main.js index 990c82f2..d9afee6 100644 --- a/ui/file_manager/file_manager/foreground/js/main.js +++ b/ui/file_manager/file_manager/foreground/js/main.js
@@ -7,7 +7,10 @@ */ import '../../common/js/error_counter.js'; +import '../../background/js/metrics_start.js'; import './metrics_start.js'; +import '../../background/js/file_manager_base.js'; +import '../../background/js/volume_manager_impl.js'; import {startColorChangeUpdater} from 'chrome://resources/cr_components/color_change_listener/colors_css_updater.js';
diff --git a/ui/file_manager/integration_tests/file_manager/quick_view.js b/ui/file_manager/integration_tests/file_manager/quick_view.js index c3a15b1..5f2faf78 100644 --- a/ui/file_manager/integration_tests/file_manager/quick_view.js +++ b/ui/file_manager/integration_tests/file_manager/quick_view.js
@@ -1557,8 +1557,13 @@ const backgroundColor = await remoteCall.executeJsInPreviewTag( appId, preview, getBackgroundStyle); - // Check: the preview body backgroundColor should be transparent black. - chrome.test.assertEq('rgba(0, 0, 0, 0)', backgroundColor[0]); + if (await isDarkModeEnabled()) { + // Check: the preview body backgroundColor should be black. + chrome.test.assertEq('rgb(0, 0, 0)', backgroundColor[0]); + } else { + // Check: the preview body backgroundColor should be transparent black. + chrome.test.assertEq('rgba(0, 0, 0, 0)', backgroundColor[0]); + } // Check: the correct mimeType should be displayed. const mimeType = await getQuickViewMetadataBoxField(appId, 'Type'); @@ -1606,8 +1611,13 @@ const backgroundColor = await remoteCall.executeJsInPreviewTag( appId, preview, getBackgroundStyle); - // Check: the preview body backgroundColor should be transparent black. - chrome.test.assertEq('rgba(0, 0, 0, 0)', backgroundColor[0]); + if (await isDarkModeEnabled()) { + // Check: the preview body backgroundColor should be black. + chrome.test.assertEq('rgb(0, 0, 0)', backgroundColor[0]); + } else { + // Check: the preview body backgroundColor should be transparent black. + chrome.test.assertEq('rgba(0, 0, 0, 0)', backgroundColor[0]); + } // Check: the correct mimeType should be displayed. const mimeType = await getQuickViewMetadataBoxField(appId, 'Type'); @@ -1972,8 +1982,13 @@ const backgroundColor = await remoteCall.executeJsInPreviewTag( appId, preview, getBackgroundStyle); - // Check: the preview body backgroundColor should be transparent black. - chrome.test.assertEq('rgba(0, 0, 0, 0)', backgroundColor[0]); + if (await isDarkModeEnabled()) { + // Check: the preview body backgroundColor should be black. + chrome.test.assertEq('rgb(0, 0, 0)', backgroundColor[0]); + } else { + // Check: the preview body backgroundColor should be transparent black. + chrome.test.assertEq('rgba(0, 0, 0, 0)', backgroundColor[0]); + } // Check: the correct mimeType should be displayed. const mimeType = await getQuickViewMetadataBoxField(appId, 'Type'); @@ -2028,8 +2043,13 @@ const backgroundColor = await remoteCall.executeJsInPreviewTag( appId, preview, getBackgroundStyle); - // Check: the preview body backgroundColor should be transparent black. - chrome.test.assertEq('rgba(0, 0, 0, 0)', backgroundColor[0]); + if (await isDarkModeEnabled()) { + // Check: the preview body backgroundColor should be black. + chrome.test.assertEq('rgb(0, 0, 0)', backgroundColor[0]); + } else { + // Check: the preview body backgroundColor should be transparent black. + chrome.test.assertEq('rgba(0, 0, 0, 0)', backgroundColor[0]); + } // Check: the correct mimeType should be displayed. const mimeType = await getQuickViewMetadataBoxField(appId, 'Type');
diff --git a/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc b/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc index fb04309..203151b6 100644 --- a/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc +++ b/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc
@@ -111,10 +111,9 @@ DCHECK(!origin_window_); DCHECK(!icon_surface_); - WaylandWindow* origin_window = - source == DragEventSource::kTouch - ? window_manager_->GetCurrentTouchFocusedWindow() - : window_manager_->GetCurrentPointerFocusedWindow(); + auto* origin_window = source == DragEventSource::kTouch + ? window_manager_->GetCurrentTouchFocusedWindow() + : window_manager_->GetCurrentPointerFocusedWindow(); if (!origin_window) { LOG(ERROR) << "Failed to get focused window. source=" << source; return false; @@ -163,9 +162,7 @@ // Starts the wayland drag session setting |this| object as delegate. state_ = State::kStarted; - drag_source_ = serial->type == wl::SerialType::kTouchPress - ? DragSource::kTouch - : DragSource::kMouse; + drag_source_ = source; data_device_->StartDrag(*data_source_, *origin_window, serial->value, icon_surface_ ? icon_surface_->surface() : nullptr, this); @@ -309,7 +306,7 @@ // drag motion events. if (pointer_grabber_for_window_drag_) { DCHECK(drag_source_.has_value()); - if (*drag_source_ == DragSource::kMouse) { + if (*drag_source_ == DragEventSource::kMouse) { pointer_delegate_->OnPointerFocusChanged( window, location, wl::EventDispatchPolicy::kImmediate); } else {
diff --git a/ui/ozone/platform/wayland/host/wayland_data_drag_controller.h b/ui/ozone/platform/wayland/host/wayland_data_drag_controller.h index 6cfbd54..69802b84 100644 --- a/ui/ozone/platform/wayland/host/wayland_data_drag_controller.h +++ b/ui/ozone/platform/wayland/host/wayland_data_drag_controller.h
@@ -80,10 +80,6 @@ kStarted, // The outgoing drag is in progress. kTransferring, // The incoming data is transferred from the source. }; - enum class DragSource { - kMouse, - kTouch, - }; WaylandDataDragController(WaylandConnection* connection, WaylandDataDeviceManager* data_device_manager, @@ -196,7 +192,7 @@ const raw_ptr<WaylandTouch::Delegate> touch_delegate_; State state_ = State::kIdle; - absl::optional<DragSource> drag_source_; + absl::optional<mojom::DragEventSource> drag_source_; // Data offered by us to the other side. std::unique_ptr<WaylandDataSource> data_source_;
diff --git a/ui/ozone/platform/wayland/host/wayland_event_source.cc b/ui/ozone/platform/wayland/host/wayland_event_source.cc index 9d016bc8..d802e7f 100644 --- a/ui/ozone/platform/wayland/host/wayland_event_source.cc +++ b/ui/ozone/platform/wayland/host/wayland_event_source.cc
@@ -15,6 +15,7 @@ #include "base/time/time.h" #include "build/chromeos_buildflags.h" #include "third_party/abseil-cpp/absl/types/optional.h" +#include "ui/base/dragdrop/mojom/drag_drop_types.mojom.h" #include "ui/events/base_event_utils.h" #include "ui/events/event_utils.h" #include "ui/events/keycodes/dom/dom_code.h" @@ -756,8 +757,7 @@ // is a valid target window to transfer the touch points to. if (auto* target_window = window_manager_->GetCurrentTouchFocusedWindow()) { auto drag_source = connection_->window_drag_controller()->drag_source(); - if (drag_source && - *drag_source == WaylandWindowDragController::DragSource::kTouch) { + if (drag_source && *drag_source == mojom::DragEventSource::kTouch) { for (auto& touch_point : touch_points_) touch_point.second->window = target_window; return;
diff --git a/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc b/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc index 8df5737..7bdb187 100644 --- a/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc +++ b/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc
@@ -760,10 +760,7 @@ allow_system_drag) { return; } - connection()->window_drag_controller()->StartDragSession( - this, event_source == ui::mojom::DragEventSource::kTouch - ? WaylandWindowDragController::DragSource::kTouch - : WaylandWindowDragController::DragSource::kMouse); + connection()->window_drag_controller()->StartDragSession(this, event_source); } #if BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc index b1b2b2c0..4a620f30 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc +++ b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc
@@ -21,7 +21,7 @@ #include "base/notreached.h" #include "base/run_loop.h" #include "base/task/current_thread.h" -#include "ui/base/dragdrop/drag_drop_types.h" +#include "ui/base/dragdrop/mojom/drag_drop_types.mojom.h" #include "ui/display/display.h" #include "ui/display/screen.h" #include "ui/events/event.h" @@ -54,6 +54,8 @@ namespace { +using mojom::DragEventSource; + // Custom mime type used for window dragging DND sessions. constexpr char kMimeTypeChromiumWindow[] = "chromium/x-window"; @@ -113,14 +115,14 @@ bool WaylandWindowDragController::StartDragSession( WaylandToplevelWindow* origin, - DragSource drag_source) { + DragEventSource drag_source) { if (state_ != State::kIdle) return true; auto serial = GetSerial(drag_source, origin); if (!serial) { LOG(ERROR) << "Failed to retrieve dnd serial. origin=" << origin - << " drag_source=" << static_cast<int>(drag_source); + << " drag_source=" << drag_source; return false; } @@ -226,7 +228,7 @@ DCHECK(drag_source_.has_value()); // Check if this is necessary. - if (*drag_source_ == DragSource::kMouse) { + if (*drag_source_ == DragEventSource::kMouse) { pointer_delegate_->OnPointerFocusChanged( window, location, wl::EventDispatchPolicy::kImmediate); } else { @@ -263,7 +265,7 @@ should_process_drag_event_ = true; pointer_location_ = location; - if (*drag_source_ == DragSource::kMouse) { + if (*drag_source_ == DragEventSource::kMouse) { pointer_delegate_->OnPointerMotionEvent( location, wl::EventDispatchPolicy::kImmediate); } else { @@ -318,7 +320,7 @@ if (state_ != State::kAttached) return; - if (*drag_source_ == DragSource::kMouse) { + if (*drag_source_ == DragEventSource::kMouse) { pointer_delegate_->OnPointerMotionEvent( {pointer_location_.x(), -1}, wl::EventDispatchPolicy::kImmediate); } else { @@ -376,7 +378,7 @@ // (see OnDragEnter function). // In case of touch, though, we simply reset the focus altogether. if (IsExtendedDragAvailableInternal() && dragged_window_) { - if (*drag_source_ == DragSource::kMouse) { + if (*drag_source_ == DragEventSource::kMouse) { // TODO: check if this usage is correct. pointer_delegate_->OnPointerFocusChanged( @@ -492,7 +494,7 @@ if (!drag_source_.has_value()) return; - if (*drag_source_ == DragSource::kMouse) { + if (*drag_source_ == DragEventSource::kMouse) { if (pointer_grab_owner_) { pointer_delegate_->OnPointerButtonEvent( ET_MOUSE_RELEASED, EF_LEFT_MOUSE_BUTTON, pointer_grab_owner_, @@ -573,17 +575,17 @@ } absl::optional<wl::Serial> WaylandWindowDragController::GetSerial( - DragSource drag_source, + DragEventSource drag_source, WaylandToplevelWindow* origin) { - auto* focused = drag_source == DragSource::kMouse + auto* focused = drag_source == DragEventSource::kMouse ? window_manager_->GetCurrentPointerFocusedWindow() : window_manager_->GetCurrentTouchFocusedWindow(); if (!origin || focused != origin) { return absl::nullopt; } return connection_->serial_tracker().GetSerial( - drag_source == DragSource::kMouse ? wl::SerialType::kMousePress - : wl::SerialType::kTouchPress); + drag_source == DragEventSource::kMouse ? wl::SerialType::kMousePress + : wl::SerialType::kTouchPress); } } // namespace ui
diff --git a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h index 0f86cfb..17ecd72 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h +++ b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h
@@ -13,6 +13,7 @@ #include "base/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" +#include "ui/base/dragdrop/mojom/drag_drop_types.mojom-forward.h" #include "ui/events/event.h" #include "ui/events/platform/platform_event_dispatcher.h" #include "ui/events/platform/scoped_event_dispatcher.h" @@ -56,10 +57,6 @@ kCancelled, // Drag cancel event was just received. kAttaching, // About to transition back to |kAttached|. }; - enum class DragSource { - kMouse, - kTouch, - }; WaylandWindowDragController(WaylandConnection* connection, WaylandDataDeviceManager* device_manager, @@ -75,7 +72,8 @@ // the event type that is triggering the drag session, ie: mouse or touch. See // https://wayland.app/protocols/wayland#wl_data_device:request:start_drag for // more protocol-related information. - bool StartDragSession(WaylandToplevelWindow* origin, DragSource event_source); + bool StartDragSession(WaylandToplevelWindow* origin, + mojom::DragEventSource event_source); bool Drag(WaylandToplevelWindow* window, const gfx::Vector2d& offset); void StopDragging(); @@ -94,7 +92,7 @@ WaylandWindow* origin_window_for_testing() { return origin_window_; } - absl::optional<DragSource> drag_source() { return drag_source_; } + absl::optional<mojom::DragEventSource> drag_source() { return drag_source_; } private: class ExtendedDragSource; @@ -149,7 +147,7 @@ // Returns the serial for the given |drag_source| if |origin| has the // corresponding focus, otherwise return null. - absl::optional<wl::Serial> GetSerial(DragSource drag_source, + absl::optional<wl::Serial> GetSerial(mojom::DragEventSource drag_source, WaylandToplevelWindow* origin); const raw_ptr<WaylandConnection> connection_; @@ -160,7 +158,7 @@ const raw_ptr<WaylandTouch::Delegate> touch_delegate_; State state_ = State::kIdle; - absl::optional<DragSource> drag_source_; + absl::optional<mojom::DragEventSource> drag_source_; gfx::Vector2d drag_offset_;
diff --git a/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc b/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc index 7e56b04..0b98de2 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc +++ b/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc
@@ -1448,7 +1448,6 @@ } TEST_P(WaylandWindowDragControllerTest, GetSerial) { - using DragSource = WaylandWindowDragController::DragSource; auto* origin = static_cast<WaylandToplevelWindow*>(window_.get()); auto& window_manager = *connection_->window_manager(); @@ -1456,20 +1455,20 @@ window_manager.SetTouchFocusedWindow(nullptr); serial_tracker().ClearForTesting(); { // No serial, no window focused. - auto serial = drag_controller()->GetSerial(DragSource::kMouse, origin); + auto serial = drag_controller()->GetSerial(DragEventSource::kMouse, origin); EXPECT_FALSE(serial.has_value()); } // Check cases where only pointer focus info is set. { // Serial available, but no window focused. serial_tracker().UpdateSerial(wl::SerialType::kMousePress, 1u); - auto serial = drag_controller()->GetSerial(DragSource::kMouse, origin); + auto serial = drag_controller()->GetSerial(DragEventSource::kMouse, origin); EXPECT_FALSE(serial.has_value()); } { // Both serial and focused window available. window_manager.SetPointerFocusedWindow(window_.get()); - auto serial = drag_controller()->GetSerial(DragSource::kMouse, origin); + auto serial = drag_controller()->GetSerial(DragEventSource::kMouse, origin); ASSERT_TRUE(serial.has_value()); EXPECT_EQ(wl::SerialType::kMousePress, serial->type); EXPECT_EQ(1u, serial->value); @@ -1481,12 +1480,12 @@ serial_tracker().ClearForTesting(); { // Serial available, but no window focused. serial_tracker().UpdateSerial(wl::SerialType::kTouchPress, 2u); - auto serial = drag_controller()->GetSerial(DragSource::kTouch, origin); + auto serial = drag_controller()->GetSerial(DragEventSource::kTouch, origin); EXPECT_FALSE(serial.has_value()); } { // Both serial and focused window available. window_manager.SetTouchFocusedWindow(window_.get()); - auto serial = drag_controller()->GetSerial(DragSource::kTouch, origin); + auto serial = drag_controller()->GetSerial(DragEventSource::kTouch, origin); ASSERT_TRUE(serial.has_value()); EXPECT_EQ(wl::SerialType::kTouchPress, serial->type); EXPECT_EQ(2u, serial->value);
diff --git a/ui/ozone/platform/wayland/host/wayland_window_manager.cc b/ui/ozone/platform/wayland/host/wayland_window_manager.cc index 0443d34..10ff600 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_manager.cc +++ b/ui/ozone/platform/wayland/host/wayland_window_manager.cc
@@ -5,6 +5,7 @@ #include "ui/ozone/platform/wayland/host/wayland_window_manager.h" #include "base/observer_list.h" +#include "ui/base/dragdrop/mojom/drag_drop_types.mojom.h" #include "ui/ozone/platform/wayland/host/wayland_connection.h" #include "ui/ozone/platform/wayland/host/wayland_window.h" #include "ui/ozone/platform/wayland/host/wayland_window_drag_controller.h" @@ -101,7 +102,7 @@ // TODO(https://crbug.com/1317063): Apply the same logic to data drag sessions // too? if (auto drag_source = connection_->window_drag_controller()->drag_source()) { - return *drag_source == WaylandWindowDragController::DragSource::kMouse + return *drag_source == mojom::DragEventSource::kMouse ? GetCurrentPointerFocusedWindow() : GetCurrentTouchFocusedWindow(); }