diff --git a/DEPS b/DEPS index 205a48c..a5ea80c 100644 --- a/DEPS +++ b/DEPS
@@ -299,15 +299,15 @@ # 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': '11f351576a5e4471a227be2e772bab2ce5e989b6', + 'skia_revision': '9b91a4116d136dc888f003e14d89b6d513e99202', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '9fda725f2bd38fa21bf2a6d14b145f2d0712da94', + 'v8_revision': '037d626d067ec2de19df63cd9f11786dcd69d38f', # 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': '47c0659eed56386d0f186b43935febeb188e347b', + 'angle_revision': '5bc6bf325690953357be131fddf24b8e720cfe1a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -315,7 +315,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': 'bf5900a3c4b9236ea62816a0364081723e36c4c4', + 'pdfium_revision': 'f3b6857934d2ff371834032a4c21defb56014d82', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling BoringSSL # and whatever else without interference from each other. @@ -326,7 +326,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Fuchsia sdk # and whatever else without interference from each other. - 'fuchsia_version': 'version:11.20230224.1.1', + 'fuchsia_version': 'version:11.20230225.1.1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling google-toolbox-for-mac # and whatever else without interference from each other. @@ -386,7 +386,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': 'a5aba44fc2de013e13e3b4f9fd546b6b41fc353a', + 'devtools_frontend_revision': '120a1e8e38dfc634bb6a9ad9379029f1c4c20fc5', # 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. @@ -426,7 +426,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': '66d487395d293c983bde13e14709df6eb2bb01e4', + 'dawn_revision': '0be37e0c508d41e2186616d642dc61a544389c3a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -462,7 +462,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'cros_components_revision': '61efc14fdb40366c2936a7417d0e51b622c04140', + 'cros_components_revision': '5a34ef44c32e6d004b57fc5166c4a7154f867b3c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -764,12 +764,12 @@ 'src/clank': { 'url': 'https://chrome-internal.googlesource.com/clank/internal/apps.git' + '@' + - 'b329470859c82202292ab46084208133d3e93175', + '722f66cdac2700c33e47b4cc3513d2d1f1a81865', 'condition': 'checkout_android and checkout_src_internal', }, 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + 'eb09307a93d163f2c783e744c447fa4ede2c9952', + 'url': Var('chromium_git') + '/website.git' + '@' + '8fa7016c34d4a36ede3f0e2d7cf291c70b612b5a', }, 'src/ios/third_party/earl_grey2/src': { @@ -793,7 +793,7 @@ }, 'src/ios/third_party/material_components_ios/src': { - 'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + '1bc41723e9be3e37abe3466cd6efbfc1f1b8291c', + 'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + 'e8159d079e5dfc88a53ed2ce59a5b68bef7d8503', 'condition': 'checkout_ios', }, @@ -863,7 +863,7 @@ 'packages': [ { 'package': 'chromium/rts/model/linux-amd64', - 'version': 'FLhfHAx17YzXSdbmF7eISL0nf4fsCtY_ju01TFkvcbUC', + 'version': 'JeXnUskpoCWRBr4lJzmSEJoWJSNr1Q9AH78D-8cDBy0C', }, ], 'dep_type': 'cipd', @@ -874,7 +874,7 @@ 'packages': [ { 'package': 'chromium/rts/model/mac-amd64', - 'version': 's9H4ZeSt-lpSVr5cjqMxg02vMnuK54jY_rjOsz7mI2kC', + 'version': '88n2b8yoQtPCxlMXsoTBnBJZNnJjSEjesuCiNAnERPIC', }, ], 'dep_type': 'cipd', @@ -885,7 +885,7 @@ 'packages': [ { 'package': 'chromium/rts/model/windows-amd64', - 'version': 'DyCkRooEvy1UkWtjB7mo3WWDihjkX8rPS8EdXlMvOUEC', + 'version': 'mXbvUKqMz5wrshxbG10HSWm9Xw-ZVoOFxcBm8BZnAkwC', }, ], 'dep_type': 'cipd', @@ -953,7 +953,7 @@ 'packages': [ { 'package': 'chromium/third_party/androidx', - 'version': 'HVT6AZFEOp03wRofqH4UWXIykRh5FB1G57nSWQe4NnIC', + 'version': 'F5NYfthfngE6fmCZchMd0133XW15UCBALwEBue8MuIsC', }, ], 'condition': 'checkout_android', @@ -1206,13 +1206,13 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'eee53367c1fab7b7ca150ee45aacafb4103c4ed2', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '9144b67c7f037577516ebdfe220997560bd01e14', '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' + '@' + '662b0054b1948acace069f2ea35876de6aebe5f4', + 'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '38c0619f644ebf98b511feb2b9983e3874f8188d', 'condition': 'checkout_src_internal', }, @@ -1869,7 +1869,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '6c8361e98f1daba65902f5e2fc1297893ac14b67', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '7d81b9b14431d15486e7c14ad3750eb6e831c4ad', + Var('webrtc_git') + '/src.git' + '@' + '0b57f209d5f4c83c48aa64fa98aa81ec91a27808', # 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. @@ -1939,7 +1939,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@ccb3f8c25d8f5d607c34165291a22bcf3b87460d', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@da8bb1b7dc2ee7ec7ac5b16818ed6b629f84d404', 'condition': 'checkout_src_internal', }, @@ -1969,7 +1969,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/help_app/app', - 'version': 'PJeh6GqC4O15yWMQ21BT6YV5tppB0aaR3p1mzQyP7YgC', + 'version': 'vD37vodWcG1_A4Cx9dUI9vkiMjkR8_UoCenGT38QqUcC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -1991,7 +1991,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/projector_app/app', - 'version': 'CdNm_70vmzrQauI4JLMzdXxI9xWYW1B1xaf93ZP1qe8C', + 'version': 'jJgajghcNfduuOM5VkfaD3rjsNPgnwxhEwWbo8Nxlq0C', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/apps/saved_files_service.cc b/apps/saved_files_service.cc index 3211f591..b881140 100644 --- a/apps/saved_files_service.cc +++ b/apps/saved_files_service.cc
@@ -24,6 +24,7 @@ #include "extensions/common/permissions/api_permission.h" #include "extensions/common/permissions/permission_set.h" #include "extensions/common/permissions/permissions_data.h" +#include "third_party/abseil-cpp/absl/types/optional.h" namespace apps { @@ -103,7 +104,7 @@ // Clears all SavedFileEntry for the app from ExtensionPrefs. void ClearSavedFileEntries(ExtensionPrefs* prefs, const std::string& extension_id) { - prefs->UpdateExtensionPref(extension_id, kFileEntries, nullptr); + prefs->UpdateExtensionPref(extension_id, kFileEntries, absl::nullopt); } // Returns all SavedFileEntries for the app.
diff --git a/ash/app_list/app_list_controller_impl.cc b/ash/app_list/app_list_controller_impl.cc index 148205d..802db3f 100644 --- a/ash/app_list/app_list_controller_impl.cc +++ b/ash/app_list/app_list_controller_impl.cc
@@ -1428,6 +1428,10 @@ return ShelfConfig::Get()->GetSystemShelfSizeInTabletMode(); } +int AppListControllerImpl::GetSystemShelfInsetsInTabletMode() { + return ShelfConfig::Get()->GetSystemShelfInsetsInTabletMode(); +} + bool AppListControllerImpl::IsInTabletMode() { return Shell::Get()->tablet_mode_controller()->InTabletMode(); }
diff --git a/ash/app_list/app_list_controller_impl.h b/ash/app_list/app_list_controller_impl.h index d8568819..c98b620b 100644 --- a/ash/app_list/app_list_controller_impl.h +++ b/ash/app_list/app_list_controller_impl.h
@@ -193,6 +193,7 @@ AppListViewState GetAppListViewState() const override; void OnViewStateChanged(AppListViewState state) override; int GetShelfSize() override; + int GetSystemShelfInsetsInTabletMode() override; bool IsInTabletMode() override; // Notifies observers of AppList visibility changes.
diff --git a/ash/app_list/app_list_test_view_delegate.cc b/ash/app_list/app_list_test_view_delegate.cc index 1a46bd0..38488d18 100644 --- a/ash/app_list/app_list_test_view_delegate.cc +++ b/ash/app_list/app_list_test_view_delegate.cc
@@ -180,6 +180,10 @@ return 56; } +int AppListTestViewDelegate::GetSystemShelfInsetsInTabletMode() { + return GetShelfSize(); +} + bool AppListTestViewDelegate::AppListTargetVisibility() const { return true; }
diff --git a/ash/app_list/app_list_test_view_delegate.h b/ash/app_list/app_list_test_view_delegate.h index 3cdc499..9da3d23 100644 --- a/ash/app_list/app_list_test_view_delegate.h +++ b/ash/app_list/app_list_test_view_delegate.h
@@ -98,6 +98,7 @@ AppLaunchedMetricParams* metric_params) override; gfx::Rect SnapBoundsToDisplayEdge(const gfx::Rect& bounds) override; int GetShelfSize() override; + int GetSystemShelfInsetsInTabletMode() override; bool AppListTargetVisibility() const override; bool IsInTabletMode() override; AppListNotifier* GetNotifier() override;
diff --git a/ash/app_list/app_list_view_delegate.h b/ash/app_list/app_list_view_delegate.h index d6de38b9..d42a2790 100644 --- a/ash/app_list/app_list_view_delegate.h +++ b/ash/app_list/app_list_view_delegate.h
@@ -162,6 +162,9 @@ // ShelfConfig. virtual int GetShelfSize() = 0; + // Gets the tablet mode shelf insets from the ShelfConfig. + virtual int GetSystemShelfInsetsInTabletMode() = 0; + // Returns whether tablet mode is currently enabled. virtual bool IsInTabletMode() = 0;
diff --git a/ash/app_list/views/app_list_view.cc b/ash/app_list/views/app_list_view.cc index 51c72c15..c490b6d 100644 --- a/ash/app_list/views/app_list_view.cc +++ b/ash/app_list/views/app_list_view.cc
@@ -405,7 +405,8 @@ } gfx::Insets AppListView::GetMainViewInsetsForShelf() const { - return gfx::Insets::TLBR(0, 0, delegate_->GetShelfSize(), 0); + return gfx::Insets::TLBR(0, 0, delegate_->GetSystemShelfInsetsInTabletMode(), + 0); } void AppListView::UpdateWidget() {
diff --git a/ash/capture_mode/capture_mode_controller.cc b/ash/capture_mode/capture_mode_controller.cc index c192eb0..5437a6af 100644 --- a/ash/capture_mode/capture_mode_controller.cc +++ b/ash/capture_mode/capture_mode_controller.cc
@@ -198,10 +198,8 @@ base::FilePath DoSaveFile(scoped_refptr<base::RefCountedMemory> data, const base::FilePath& path) { DCHECK(data); - const int size = static_cast<int>(data->size()); - DCHECK(size); - if (size != base::WriteFile( - path, reinterpret_cast<const char*>(data->front()), size)) { + DCHECK(data->size()); + if (!base::WriteFile(path, *data)) { LOG(ERROR) << "Failed to save file: " << path; return base::FilePath(); }
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index 316e8b8..8b83981 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -1533,7 +1533,7 @@ // gesture or keyboard shortcut. BASE_FEATURE(kOverviewDeskNavigation, "OverviewDeskNavigation", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); // Enables a notification warning users that their Thunderbolt device is not // supported on their CrOS device.
diff --git a/ash/public/cpp/shelf_config.h b/ash/public/cpp/shelf_config.h index 4c8df71..dceea4f 100644 --- a/ash/public/cpp/shelf_config.h +++ b/ash/public/cpp/shelf_config.h
@@ -105,6 +105,9 @@ // HotseatWidget::GetHotseatSize() to get the actual widget size. int GetHotseatSize(HotseatDensity density) const; + // Returns the padding between the shelf and elevated homecher. + int GetHomecherElevatedAppBarOffset() const; + // Size of the shelf when visible (height when the shelf is horizontal and // width when the shelf is vertical). int shelf_size() const; @@ -201,6 +204,10 @@ bool in_overview_mode() const { return overview_mode_; } + bool elevate_tablet_mode_app_bar() const { + return elevate_tablet_mode_app_bar_; + } + // Gets the current color for the shelf control buttons. SkColor GetShelfControlButtonColor(const views::Widget* widget) const; @@ -235,6 +242,15 @@ // Size of the shelf in tablet mode. int GetSystemShelfSizeInTabletMode() const; + // Size of the insets used in tablet mode to allocate space to the shelf. + int GetSystemShelfInsetsInTabletMode() const; + + // Minimum size for the inline app bar. + int GetMinimumInlineAppBarSize() const; + + // Updates 'elevate_tablet_mode_app_bar_' for `inline_app_bar_size`. + void UpdateShowElevatedAppBar(const gfx::Size& inline_app_bar_size); + private: friend class ShelfConfigTest; @@ -265,33 +281,36 @@ bool CalculateIsInApp(bool app_list_visible, bool virtual_keyboard_shown) const; + // Whether tablet mode homecher should use elevated app bar. + bool elevate_tablet_mode_app_bar_ = false; + // Whether the in app shelf should be shown in overview mode. - bool use_in_app_shelf_in_overview_; + bool use_in_app_shelf_in_overview_ = false; // True if device is currently in overview mode. - bool overview_mode_; + bool overview_mode_ = false; // True if device is currently in tablet mode. - bool in_tablet_mode_; + bool in_tablet_mode_ = false; // Whether shelf is currently standard or dense. - bool is_dense_; + bool is_dense_ = false; // Whether the shelf is currently in in-app state. - bool is_in_app_; + bool is_in_app_ = false; // Whether the device is in split view. Only tracked in overview mode. - bool in_split_view_with_overview_; + bool in_split_view_with_overview_ = false; // Whether the shelf buttons (navigation controls, and overview tray button) // should be shown. - bool shelf_controls_shown_; + bool shelf_controls_shown_ = false; // Whether virtual IME keyboard is shown. - bool is_virtual_keyboard_shown_; + bool is_virtual_keyboard_shown_ = false; // Whether the app list (or home launcher in tablet mode) is visible. - bool is_app_list_visible_; + bool is_app_list_visible_ = false; // Size of the icons within shelf buttons. const int shelf_button_icon_size_;
diff --git a/ash/shelf/hotseat_widget.cc b/ash/shelf/hotseat_widget.cc index 7c85738..5872d90 100644 --- a/ash/shelf/hotseat_widget.cc +++ b/ash/shelf/hotseat_widget.cc
@@ -833,10 +833,18 @@ break; case HotseatState::kShownHomeLauncher: // When the hotseat state is HotseatState::kShownHomeLauncher, the home - // launcher is showing in tablet mode. Elevate the hotseat a few px to - // match the navigation and status area. + // launcher is showing in tablet mode. Elevate the hotseat + // to be hotseat_bottom_padding() above the bottom of the screen to be + // in line with the navigation and status area. hotseat_distance_from_bottom_of_display = hotseat_size + ShelfConfig::Get()->hotseat_bottom_padding(); + // Elevate the hotseat app bar to a second row above the navigation and + // status area if needed. + if (ShelfConfig::Get()->elevate_tablet_mode_app_bar()) { + hotseat_distance_from_bottom_of_display += + hotseat_size + + ShelfConfig::Get()->GetHomecherElevatedAppBarOffset(); + } break; case HotseatState::kHidden: // Show the hotseat offscreen. @@ -874,10 +882,26 @@ return gfx::Size(shelf_bounds.width(), hotseat_size); } + gfx::Size app_bar_size = CalculateInlineAppBarSize(); + + if (hotseat_target_state == HotseatState::kShownHomeLauncher) { + if (ShelfConfig::Get()->elevate_tablet_mode_app_bar()) { + return gfx::Size(shelf_bounds.width(), hotseat_size); + } + } + return app_bar_size; +} + +gfx::Size HotseatWidget::CalculateInlineAppBarSize() const { + const gfx::Rect shelf_bounds = shelf_->shelf_widget()->GetTargetBounds(); const gfx::Size status_size = shelf_->status_area_widget()->GetTargetBounds().size(); const gfx::Rect nav_bounds = shelf_->navigation_widget()->GetVisibleBounds(); + // |hotseat_size| is the height in horizontal alignment or the width in + // vertical alignment. + const int hotseat_size = GetHotseatSize(); + // The navigation widget has extra padding on the hotseat side, to center the // buttons inside of it. Make sure to get the extra nav widget padding and // take it into account when calculating the hotseat size. @@ -910,6 +934,12 @@ const HotseatState hotseat_target_state = layout_manager->CalculateHotseatState(layout_manager->visibility_state(), layout_manager->auto_hide_state()); + + gfx::Size app_bar_size = CalculateInlineAppBarSize(); + if (hotseat_target_state == HotseatState::kShownHomeLauncher) { + ShelfConfig::Get()->UpdateShowElevatedAppBar(app_bar_size); + } + const gfx::Size hotseat_target_size = CalculateTargetBoundsSize(hotseat_target_state); @@ -932,10 +962,15 @@ hotseat_target_state != HotseatState::kShownClamshell) { hotseat_x = shelf_bounds.x(); } else { - hotseat_x = base::i18n::IsRTL() - ? status_area_bounds.right() + group_margin - : status_area_bounds.x() - group_margin - - hotseat_target_size.width(); + if (hotseat_target_state == HotseatState::kShownHomeLauncher && + ShelfConfig::Get()->elevate_tablet_mode_app_bar()) { + hotseat_x = shelf_bounds.x(); + } else { + hotseat_x = base::i18n::IsRTL() + ? status_area_bounds.right() + group_margin + : status_area_bounds.x() - group_margin - + hotseat_target_size.width(); + } } hotseat_origin =
diff --git a/ash/shelf/hotseat_widget.h b/ash/shelf/hotseat_widget.h index c569596..eb41d57 100644 --- a/ash/shelf/hotseat_widget.h +++ b/ash/shelf/hotseat_widget.h
@@ -114,6 +114,9 @@ // Calculates the hotseat target bounds's size for the given target state. gfx::Size CalculateTargetBoundsSize(HotseatState hotseat_target_state) const; + // Calculates space available for app bar if shown inline with shelf. + gfx::Size CalculateInlineAppBarSize() const; + // ShelfComponent: void CalculateTargetBounds() override; gfx::Rect GetTargetBounds() const override;
diff --git a/ash/shelf/hotseat_widget_unittest.cc b/ash/shelf/hotseat_widget_unittest.cc index 058137a..a3d621e7 100644 --- a/ash/shelf/hotseat_widget_unittest.cc +++ b/ash/shelf/hotseat_widget_unittest.cc
@@ -86,21 +86,11 @@ navigation_buttons_shown_in_tablet_mode_(std::get<2>(GetParam())) { if (is_assistant_enabled_) assistant_test_api_ = AssistantTestApi::Create(); - - std::vector<base::test::FeatureRef> enabled_features; - std::vector<base::test::FeatureRef> disabled_features; - - if (navigation_buttons_shown_in_tablet_mode_) { - disabled_features.push_back(features::kHideShelfControlsInTabletMode); - } else { - enabled_features.push_back(features::kHideShelfControlsInTabletMode); - } - enabled_features.push_back(features::kShelfPalmRejectionSwipeOffset); - scoped_feature_list_.InitWithFeatures(enabled_features, disabled_features); } // testing::Test: void SetUp() override { + SetupFeatureLists(); ShelfLayoutManagerTestBase::SetUp(); if (is_assistant_enabled_) { @@ -114,6 +104,19 @@ } } + virtual void SetupFeatureLists() { + std::vector<base::test::FeatureRef> enabled_features; + std::vector<base::test::FeatureRef> disabled_features; + + if (navigation_buttons_shown_in_tablet_mode()) { + disabled_features.push_back(features::kHideShelfControlsInTabletMode); + } else { + enabled_features.push_back(features::kHideShelfControlsInTabletMode); + } + enabled_features.push_back(features::kShelfPalmRejectionSwipeOffset); + scoped_feature_list_.InitWithFeatures(enabled_features, disabled_features); + } + void TearDown() override { // Some tests may override this value, make sure it's reset. ui::PresentationTimeRecorder::SetReportPresentationTimeImmediatelyForTest( @@ -218,6 +221,7 @@ } private: + friend class StackedHotseatWidgetTest; const ShelfAutoHideBehavior shelf_auto_hide_behavior_; const bool is_assistant_enabled_; const bool navigation_buttons_shown_in_tablet_mode_; @@ -225,6 +229,23 @@ base::test::ScopedFeatureList scoped_feature_list_; }; +class StackedHotseatWidgetTest : public HotseatWidgetTest { + public: + void SetupFeatureLists() override { + std::vector<base::test::FeatureRef> enabled_features; + std::vector<base::test::FeatureRef> disabled_features; + + if (navigation_buttons_shown_in_tablet_mode()) { + disabled_features.push_back(features::kHideShelfControlsInTabletMode); + } else { + enabled_features.push_back(features::kHideShelfControlsInTabletMode); + } + enabled_features.push_back(features::kShelfPalmRejectionSwipeOffset); + enabled_features.push_back(features::kShelfStackedHotseat); + scoped_feature_list_.InitWithFeatures(enabled_features, disabled_features); + } +}; + // Counts the number of times the work area changes. class DisplayWorkAreaChangeCounter : public display::DisplayObserver { public: @@ -338,6 +359,42 @@ /*is_assistant_enabled*/ testing::Bool(), /*navigation_buttons_shown_in_tablet_mode*/ testing::Bool())); +INSTANTIATE_TEST_SUITE_P( + All, + StackedHotseatWidgetTest, + testing::Combine( + testing::Values(ShelfAutoHideBehavior::kNever, + ShelfAutoHideBehavior::kAlways), + /*is_assistant_enabled*/ testing::Bool(), + /*navigation_buttons_shown_in_tablet_mode*/ testing::Bool())); + +// TODO(b:270757104) Set status are widget sizes. +TEST_P(StackedHotseatWidgetTest, StackedHotseatShownOnSmallScreens) { + UpdateDisplay("475x350"); + TabletModeControllerTestApi().EnterTabletMode(); + GetAppListTestHelper()->CheckVisibility(true); + const gfx::Rect hotseat_bounds = GetPrimaryShelf() + ->shelf_widget() + ->hotseat_widget() + ->GetWindowBoundsInScreen(); + ASSERT_EQ(hotseat_bounds.bottom(), + 350 - ShelfConfig::Get()->hotseat_bottom_padding() * 2 - + ShelfConfig::Get()->shelf_size()); +} + +// TODO(b:270757104) Set status are widget sizes. +TEST_P(StackedHotseatWidgetTest, StackedHotseatNotShownOnLargeScreens) { + UpdateDisplay("800x600"); + TabletModeControllerTestApi().EnterTabletMode(); + GetAppListTestHelper()->CheckVisibility(true); + const gfx::Rect hotseat_bounds = GetPrimaryShelf() + ->shelf_widget() + ->hotseat_widget() + ->GetWindowBoundsInScreen(); + ASSERT_EQ(hotseat_bounds.bottom(), + 600 - ShelfConfig::Get()->hotseat_bottom_padding()); +} + TEST_P(HotseatWidgetTest, LongPressHomeWithoutAppWindow) { GetPrimaryShelf()->SetAutoHideBehavior(shelf_auto_hide_behavior()); TabletModeControllerTestApi().EnterTabletMode();
diff --git a/ash/shelf/shelf_app_button.h b/ash/shelf/shelf_app_button.h index b2bbf24..5354c08 100644 --- a/ash/shelf/shelf_app_button.h +++ b/ash/shelf/shelf_app_button.h
@@ -25,7 +25,7 @@ class DotIndicator; class ShelfView; -// Button used for app shortcuts on the shelf.. +// Button used for app shortcuts on the shelf. class ASH_EXPORT ShelfAppButton : public ShelfButton, public views::InkDropObserver, public ui::ImplicitAnimationObserver {
diff --git a/ash/shelf/shelf_config.cc b/ash/shelf/shelf_config.cc index 810a984..0bef5fa 100644 --- a/ash/shelf/shelf_config.cc +++ b/ash/shelf/shelf_config.cc
@@ -42,6 +42,7 @@ constexpr int kSystemShelfSizeTabletModeDense = 48; constexpr int kSystemShelfSizeTabletModeNormal = 56; +constexpr int kElevatedSystemShelfSizeTabletMode = 136; // Records the histogram value tracking the reason shelf control buttons are // shown in tablet mode. @@ -140,16 +141,7 @@ }; ShelfConfig::ShelfConfig() - : use_in_app_shelf_in_overview_(false), - overview_mode_(false), - in_tablet_mode_(false), - is_dense_(false), - is_in_app_(true), - in_split_view_with_overview_(false), - shelf_controls_shown_(true), - is_virtual_keyboard_shown_(false), - is_app_list_visible_(false), - shelf_button_icon_size_(44), + : shelf_button_icon_size_(44), shelf_button_icon_size_median_(40), shelf_button_icon_size_dense_(36), shelf_button_size_(56), @@ -337,6 +329,10 @@ return GetShelfButtonSize(density); } +int ShelfConfig::GetHomecherElevatedAppBarOffset() const { + return 8; +} + int ShelfConfig::shelf_size() const { return GetShelfSize(false /*ignore_in_app_state*/); } @@ -548,6 +544,27 @@ : kSystemShelfSizeTabletModeNormal; } +int ShelfConfig::GetSystemShelfInsetsInTabletMode() const { + if (elevate_tablet_mode_app_bar_) { + return kElevatedSystemShelfSizeTabletMode; + } else { + return GetSystemShelfSizeInTabletMode(); + } +} + +int ShelfConfig::GetMinimumInlineAppBarSize() const { + return 6 * kSystemShelfSizeTabletModeDense + 5 * shelf_button_spacing_ + + 2 * app_icon_end_padding_; +} + +void ShelfConfig::UpdateShowElevatedAppBar( + const gfx::Size& inline_app_bar_size) { + if (features::IsShelfStackedHotseatEnabled()) { + elevate_tablet_mode_app_bar_ = + inline_app_bar_size.width() < GetMinimumInlineAppBarSize(); + } +} + void ShelfConfig::UpdateConfigForAccessibilityState() { UpdateConfig(is_app_list_visible_, /*tablet_mode_changed=*/false); }
diff --git a/ash/system/input_device_settings/input_device_tracker.cc b/ash/system/input_device_settings/input_device_tracker.cc index 9dbd903..79203a4 100644 --- a/ash/system/input_device_settings/input_device_tracker.cc +++ b/ash/system/input_device_settings/input_device_tracker.cc
@@ -10,6 +10,7 @@ #include "ash/constants/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" +#include "ash/system/input_device_settings/input_device_settings_controller_impl.h" #include "ash/system/input_device_settings/input_device_settings_pref_names.h" #include "base/containers/contains.h" #include "base/strings/string_piece_forward.h"
diff --git a/ash/system/input_device_settings/input_device_tracker_unittest.cc b/ash/system/input_device_settings/input_device_tracker_unittest.cc index 11b4092..e7e8c37e 100644 --- a/ash/system/input_device_settings/input_device_tracker_unittest.cc +++ b/ash/system/input_device_settings/input_device_tracker_unittest.cc
@@ -4,6 +4,7 @@ #include "ash/system/input_device_settings/input_device_tracker.h" +#include "ash/public/mojom/input_device_settings.mojom.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" #include "ash/system/input_device_settings/input_device_settings_pref_names.h"
diff --git a/ash/system/input_device_settings/pref_handlers/keyboard_pref_handler_impl.cc b/ash/system/input_device_settings/pref_handlers/keyboard_pref_handler_impl.cc index 77d4393..4b2d845 100644 --- a/ash/system/input_device_settings/pref_handlers/keyboard_pref_handler_impl.cc +++ b/ash/system/input_device_settings/pref_handlers/keyboard_pref_handler_impl.cc
@@ -3,14 +3,15 @@ // found in the LICENSE file. #include "ash/system/input_device_settings/pref_handlers/keyboard_pref_handler_impl.h" -#include "ash/constants/ash_pref_names.h" +#include "ash/constants/ash_pref_names.h" #include "ash/public/mojom/input_device_settings.mojom-shared.h" #include "ash/public/mojom/input_device_settings.mojom.h" #include "ash/shell.h" #include "ash/system/input_device_settings/input_device_settings_defaults.h" #include "ash/system/input_device_settings/input_device_settings_pref_names.h" #include "ash/system/input_device_settings/input_device_settings_utils.h" +#include "ash/system/input_device_settings/input_device_tracker.h" #include "base/containers/fixed_flat_map.h" #include "base/containers/flat_map.h" #include "base/strings/string_number_conversions.h" @@ -18,6 +19,7 @@ #include "components/prefs/pref_service.h" #include "ui/chromeos/events/mojom/modifier_key.mojom-shared.h" #include "ui/chromeos/events/mojom/modifier_key.mojom.h" +#include "ui/chromeos/events/pref_names.h" namespace ash { namespace {
diff --git a/ash/system/input_device_settings/pref_handlers/keyboard_pref_handler_unittest.cc b/ash/system/input_device_settings/pref_handlers/keyboard_pref_handler_unittest.cc index 88aa23d..edc7cbb 100644 --- a/ash/system/input_device_settings/pref_handlers/keyboard_pref_handler_unittest.cc +++ b/ash/system/input_device_settings/pref_handlers/keyboard_pref_handler_unittest.cc
@@ -2,14 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ash/constants/ash_pref_names.h" -#include "ash/public/mojom/input_device_settings.mojom-shared.h" -#include "ash/shell.h" -#include "ash/system/input_device_settings/input_device_settings_defaults.h" #include "ash/system/input_device_settings/pref_handlers/keyboard_pref_handler_impl.h" +#include "ash/constants/ash_pref_names.h" +#include "ash/public/mojom/input_device_settings.mojom-shared.h" #include "ash/public/mojom/input_device_settings.mojom.h" +#include "ash/shell.h" +#include "ash/system/input_device_settings/input_device_settings_defaults.h" #include "ash/system/input_device_settings/input_device_settings_pref_names.h" +#include "ash/system/input_device_settings/input_device_tracker.h" #include "ash/test/ash_test_base.h" #include "base/containers/contains.h" #include "base/strings/string_number_conversions.h"
diff --git a/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_unittest.cc b/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_unittest.cc index 7a4117b6..d1a2328d 100644 --- a/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_unittest.cc +++ b/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_unittest.cc
@@ -9,6 +9,7 @@ #include "ash/shell.h" #include "ash/system/input_device_settings/input_device_settings_defaults.h" #include "ash/system/input_device_settings/input_device_settings_pref_names.h" +#include "ash/system/input_device_settings/input_device_tracker.h" #include "ash/test/ash_test_base.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/testing_pref_service.h"
diff --git a/ash/system/input_device_settings/pref_handlers/touchpad_pref_handler_unittest.cc b/ash/system/input_device_settings/pref_handlers/touchpad_pref_handler_unittest.cc index 0a683a0..118ea51 100644 --- a/ash/system/input_device_settings/pref_handlers/touchpad_pref_handler_unittest.cc +++ b/ash/system/input_device_settings/pref_handlers/touchpad_pref_handler_unittest.cc
@@ -2,13 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ash/constants/ash_pref_names.h" -#include "ash/system/input_device_settings/input_device_settings_defaults.h" #include "ash/system/input_device_settings/pref_handlers/touchpad_pref_handler_impl.h" +#include "ash/constants/ash_pref_names.h" #include "ash/public/mojom/input_device_settings.mojom.h" #include "ash/shell.h" +#include "ash/system/input_device_settings/input_device_settings_defaults.h" #include "ash/system/input_device_settings/input_device_settings_pref_names.h" +#include "ash/system/input_device_settings/input_device_tracker.h" #include "ash/test/ash_test_base.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/testing_pref_service.h" @@ -384,4 +385,4 @@ CheckTouchpadSettingsAndDictAreEqual(settings_, *settings_dict); } -} // namespace ash \ No newline at end of file +} // namespace ash
diff --git a/ash/system/message_center/notification_grouping_controller_unittest.cc b/ash/system/message_center/notification_grouping_controller_unittest.cc index 1c0f0d55..2f0f486 100644 --- a/ash/system/message_center/notification_grouping_controller_unittest.cc +++ b/ash/system/message_center/notification_grouping_controller_unittest.cc
@@ -18,8 +18,6 @@ #include "ui/color/color_id.h" #include "ui/compositor/scoped_animation_duration_scale_mode.h" #include "ui/compositor/test/layer_animation_stopped_waiter.h" -#include "ui/events/test/event_generator.h" -#include "ui/gfx/geometry/vector2d.h" #include "ui/gfx/vector_icon_types.h" #include "ui/message_center/public/cpp/message_center_constants.h" #include "ui/message_center/public/cpp/notification_types.h" @@ -573,4 +571,50 @@ EXPECT_FALSE(message_center->FindNotificationById(id0)); } +TEST_P(NotificationGroupingControllerTest, + ChildNotificationsWithDifferentPriorities) { + auto* message_center = MessageCenter::Get(); + std::string id0, id1, id2; + const GURL url(u"http://test-url.com/"); + + // Create 2 notifications with low priority, the parent notification should be + // low priority as well. + auto notification = MakeNotification(id0, url); + notification->set_priority(message_center::LOW_PRIORITY); + message_center->AddNotification(std::move(notification)); + + notification = MakeNotification(id1, url); + notification->set_priority(message_center::LOW_PRIORITY); + message_center->AddNotification(std::move(notification)); + + std::string id_parent = id0 + kIdSuffixForGroupContainerNotification; + auto* parent_notification = message_center->FindNotificationById(id_parent); + ASSERT_TRUE(parent_notification->group_parent()); + ASSERT_EQ(message_center::LOW_PRIORITY, parent_notification->priority()); + + // Now create another notification in the group with normal priority. Parent + // should still have the same id and have normal priority now. + id2 = AddNotificationWithOriginUrl(url); + parent_notification = message_center->FindNotificationById(id_parent); + ASSERT_TRUE(parent_notification); + ASSERT_EQ(message_center::DEFAULT_PRIORITY, parent_notification->priority()); + + // There should be 4 notifications now (no duplicates created). + EXPECT_EQ(4u, message_center->GetVisibleNotifications().size()); + + // Remove one child then add back. Parent notification is still retained with + // same id. + message_center->RemoveNotification(id0, + /*by_user=*/false); + notification = MakeNotification(id0, url); + notification->set_priority(message_center::LOW_PRIORITY); + message_center->AddNotification(std::move(notification)); + + parent_notification = message_center->FindNotificationById(id_parent); + ASSERT_TRUE(parent_notification->group_parent()); + + // Should have no duplicates. + EXPECT_EQ(4u, message_center->GetVisibleNotifications().size()); +} + } // namespace ash
diff --git a/ash/system/update/update_notification_controller_unittest.cc b/ash/system/update/update_notification_controller_unittest.cc index 9c32a8fa..a40861a9 100644 --- a/ash/system/update/update_notification_controller_unittest.cc +++ b/ash/system/update/update_notification_controller_unittest.cc
@@ -133,8 +133,8 @@ } void AddSlowBootFilePath(const base::FilePath& file_path) { - int bytes_written = base::WriteFile(file_path, "1\n", 2); - EXPECT_TRUE(bytes_written == 2); + bool success = base::WriteFile(file_path, "1\n"); + EXPECT_TRUE(success); Shell::Get() ->system_notification_controller() ->update_->slow_boot_file_path_ = file_path;
diff --git a/base/i18n/icu_util.cc b/base/i18n/icu_util.cc index d34884ac..c63a1c3 100644 --- a/base/i18n/icu_util.cc +++ b/base/i18n/icu_util.cc
@@ -348,9 +348,6 @@ #endif // BUILDFLAG(IS_ANDROID) } -const char kICUDataFile[] = "ICU.DataFile"; -const char kICUCreateInstance[] = "ICU.CreateInstance"; - enum class ICUCreateInstance { kCharacterBreakIterator = 0, kWordBreakIterator = 1, @@ -369,120 +366,6 @@ kMaxValue = kChineseJapaneseBreakEngine }; -// Callback functions to report the opening of ICU Data File, and creation of -// key objects to UMA. This help us to understand what built-in ICU data files -// are rarely used in the user's machines and the distribution of ICU usage. -static void U_CALLCONV TraceICUEntry(const void*, int32_t fn_number) { - switch (fn_number) { - case UTRACE_UBRK_CREATE_CHARACTER: - base::UmaHistogramEnumeration(kICUCreateInstance, - ICUCreateInstance::kCharacterBreakIterator); - break; - case UTRACE_UBRK_CREATE_SENTENCE: - base::UmaHistogramEnumeration(kICUCreateInstance, - ICUCreateInstance::kSentenceBreakIterator); - break; - case UTRACE_UBRK_CREATE_TITLE: - base::UmaHistogramEnumeration(kICUCreateInstance, - ICUCreateInstance::kTitleBreakIterator); - break; - case UTRACE_UBRK_CREATE_WORD: - base::UmaHistogramEnumeration(kICUCreateInstance, - ICUCreateInstance::kWordBreakIterator); - break; - default: - return; - } -} - -static void U_CALLCONV TraceICUData(const void* context, - int32_t fn_number, - int32_t level, - const char* fmt, - va_list args) { - switch (fn_number) { - case UTRACE_UDATA_DATA_FILE: { - std::string icu_data_file_name(va_arg(args, const char*)); - va_end(args); - // Skip icu version specified prefix if exist. - // path is prefixed with icu version prefix such as "icudt65l-". - // Histogram only the part after the -. - if (icu_data_file_name.find("icudt") == 0) { - size_t dash = icu_data_file_name.find("-"); - if (dash != std::string::npos) { - icu_data_file_name = icu_data_file_name.substr(dash + 1); - } - } - // UmaHistogramSparse should track less than 100 values. - // We currently have about total 55 built-in data files inside ICU - // so it fit the UmaHistogramSparse usage. - int hash = base::HashMetricName(icu_data_file_name); - base::UmaHistogramSparse(kICUDataFile, hash); - return; - } - case UTRACE_UBRK_CREATE_LINE: { - const char* lb_type = va_arg(args, const char*); - auto lb_type_len = strlen(lb_type); - va_end(args); - ICUCreateInstance value; - if (lb_type_len < 6) { - DCHECK(strcmp(lb_type, "line") == 0); - value = ICUCreateInstance::kLineBreakIterator; - } else { - switch (lb_type[5]) { - case 'l': - DCHECK(strcmp(lb_type, "line_loose") == 0); - value = ICUCreateInstance::kLineBreakIteratorTypeLoose; - break; - case 'n': - DCHECK(strcmp(lb_type, "line_normal") == 0); - value = ICUCreateInstance::kLineBreakIteratorTypeNormal; - break; - case 's': - DCHECK(strcmp(lb_type, "line_strict") == 0); - value = ICUCreateInstance::kLineBreakIteratorTypeStrict; - break; - default: - return; - } - } - base::UmaHistogramEnumeration(kICUCreateInstance, value); - return; - } - case UTRACE_UBRK_CREATE_BREAK_ENGINE: { - const char* script = va_arg(args, const char*); - va_end(args); - ICUCreateInstance value; - switch (script[0]) { - case 'H': - DCHECK(strcmp(script, "Hani") == 0); - value = ICUCreateInstance::kChineseJapaneseBreakEngine; - break; - case 'K': - DCHECK(strcmp(script, "Khmr") == 0); - value = ICUCreateInstance::kKhmerBreakEngine; - break; - case 'L': - DCHECK(strcmp(script, "Laoo") == 0); - value = ICUCreateInstance::kLaoBreakEngine; - break; - case 'M': - DCHECK(strcmp(script, "Mymr") == 0); - value = ICUCreateInstance::kBurmeseBreakEngine; - break; - case 'T': - DCHECK(strcmp(script, "Thai") == 0); - value = ICUCreateInstance::kThaiBreakEngine; - break; - default: - return; - } - base::UmaHistogramEnumeration(kICUCreateInstance, value); - return; - } - } -} - // Common initialization to run regardless of how ICU is initialized. // There are multiple exposed InitializeIcu* functions. This should be called // as at the end of (the last functions in the sequence of) these functions. @@ -492,8 +375,6 @@ // when requested. InitializeIcuTimeZone(); - const void* context = nullptr; - utrace_setFunctions(context, TraceICUEntry, nullptr, TraceICUData); utrace_setLevel(UTRACE_VERBOSE); return true; }
diff --git a/base/json/json_file_value_serializer.cc b/base/json/json_file_value_serializer.cc index a0333cae..d7d72c0 100644 --- a/base/json/json_file_value_serializer.cc +++ b/base/json/json_file_value_serializer.cc
@@ -44,12 +44,7 @@ if (!result) return false; - int data_size = static_cast<int>(json_string.size()); - if (base::WriteFile(json_file_path_, json_string.data(), data_size) != - data_size) - return false; - - return true; + return base::WriteFile(json_file_path_, json_string); } JSONFileValueDeserializer::JSONFileValueDeserializer(
diff --git a/chrome/VERSION b/chrome/VERSION index 0a9809c..7d945fc 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=113 MINOR=0 -BUILD=5616 +BUILD=5618 PATCH=0
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl.java index 7324c13..0d5a247 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl.java
@@ -30,7 +30,6 @@ import org.chromium.chrome.browser.omnibox.action.OmniboxPedalType; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate; import org.chromium.chrome.browser.omnibox.suggestions.SuggestionsMetrics; -import org.chromium.chrome.browser.omnibox.suggestions.pedal.PedalViewProperties.PedalIcon; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment; @@ -185,7 +184,7 @@ } @Override - public @NonNull PedalIcon getIcon(OmniboxPedal omniboxPedal) { + public @NonNull ChipIcon getIcon(OmniboxPedal omniboxPedal) { if (!omniboxPedal.hasPedalId()) { return getActionIcon(omniboxPedal); } @@ -203,9 +202,9 @@ case OmniboxPedalType.MANAGE_CHROME_SETTINGS: case OmniboxPedalType.VIEW_CHROME_HISTORY: case OmniboxPedalType.MANAGE_CHROME_ACCESSIBILITY: - return new PedalIcon(R.drawable.fre_product_logo, /*tintWithTextColor=*/false); + return new ChipIcon(R.drawable.fre_product_logo, /*tintWithTextColor=*/false); case OmniboxPedalType.PLAY_CHROME_DINO_GAME: - return new PedalIcon(R.drawable.ic_dino, /*tintWithTextColor=*/true); + return new ChipIcon(R.drawable.ic_dino, /*tintWithTextColor=*/true); default: // Please confirm the icon for the new pedals in // chrome/browser/ui/omnibox/omnibox_pedal_implementations.cc, if the new pedal uses @@ -213,18 +212,18 @@ assert false : "New pedals need to confirm the icon and add the list above."; break; } - return new PedalIcon(R.drawable.fre_product_logo, /*tintWithTextColor=*/false); + return new ChipIcon(R.drawable.fre_product_logo, /*tintWithTextColor=*/false); } /** Returns the icon for an action that's not a pedal. */ - private PedalIcon getActionIcon(OmniboxPedal omniboxPedal) { + private ChipIcon getActionIcon(OmniboxPedal omniboxPedal) { int omniboxActionType = omniboxPedal.getActionID(); switch (omniboxActionType) { case OmniboxActionType.HISTORY_CLUSTERS: - return new PedalIcon(R.drawable.ic_journeys, /*tintWithTextColor=*/true); + return new ChipIcon(R.drawable.ic_journeys, /*tintWithTextColor=*/true); default: - return new PedalIcon(R.drawable.fre_product_logo, /*tintWithTextColor=*/false); + return new ChipIcon(R.drawable.fre_product_logo, /*tintWithTextColor=*/false); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabBaseStrategy.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabBaseStrategy.java index 0ad13ad..f8a7310 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabBaseStrategy.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabBaseStrategy.java
@@ -128,6 +128,11 @@ mHandleStrategyFactory = handleStrategyFactory; mIsFullscreen = fullscreenManager::getPersistentFullscreenMode; + + // Initialize size info used for resize callback to skip the very first one that settles + // down to the initial height/width. + mHeight = MATCH_PARENT; + mWidth = MATCH_PARENT; } @Override @@ -194,8 +199,7 @@ attrs.y = 0; attrs.x = 0; mActivity.getWindow().setAttributes(attrs); - mOnResizedCallback.onResized( - mVersionCompat.getDisplayHeight(), mVersionCompat.getDisplayWidth()); + maybeInvokeResizeCallback(); } @Override @@ -203,11 +207,25 @@ // |mNavbarHeight| is zero now. Post the task instead. new Handler().post(() -> { initializeSize(); - var attrs = mActivity.getWindow().getAttributes(); - mOnResizedCallback.onResized(attrs.height, attrs.width); + maybeInvokeResizeCallback(); }); } + protected void maybeInvokeResizeCallback() { + WindowManager.LayoutParams attrs = mActivity.getWindow().getAttributes(); + if (isFullHeight() || isFullscreen()) { + mOnResizedCallback.onResized(mDisplayHeight, mDisplayWidth); + mHeight = mDisplayHeight; + mWidth = mDisplayWidth; + } else { + if ((mHeight != attrs.height && mHeight > 0) || (mWidth != attrs.width && mWidth > 0)) { + mOnResizedCallback.onResized(attrs.height, attrs.width); + } + mHeight = attrs.height; + mWidth = attrs.width; + } + } + @PartialCustomTabType public abstract int getStrategyType();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabBottomSheetStrategy.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabBottomSheetStrategy.java index 384e0a3..cb9889e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabBottomSheetStrategy.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabBottomSheetStrategy.java
@@ -156,8 +156,6 @@ mUnclampedInitialHeight = initialHeight; mIsFixedHeight = isFixedHeight; - mHeight = MATCH_PARENT; - mWidth = MATCH_PARENT; } @Override @@ -637,21 +635,6 @@ mSpinnerView.setLayoutParams(lp); } - private void maybeInvokeResizeCallback() { - WindowManager.LayoutParams attrs = mActivity.getWindow().getAttributes(); - if (isFullHeight() || isFullscreen()) { - mOnResizedCallback.onResized(mDisplayHeight, mDisplayWidth); - mHeight = mDisplayHeight; - mWidth = mDisplayWidth; - } else { - if ((mHeight != attrs.height && mHeight > 0) || (mWidth != attrs.width && mWidth > 0)) { - mOnResizedCallback.onResized(attrs.height, attrs.width); - } - mHeight = attrs.height; - mWidth = attrs.width; - } - } - private void changeVisibilityNavbarButtons(boolean show) { View decorView = mActivity.getWindow().getDecorView(); WindowInsetsControllerCompat controller =
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategy.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategy.java index aec9d2c..222021f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategy.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategy.java
@@ -78,16 +78,6 @@ } @Override - public void onPostInflationStartup() { - super.onPostInflationStartup(); - - if (mIsMaximized) { - mIsMaximized = false; - toggleMaximize(/*animate=*/false); - } - } - - @Override @PartialCustomTabType public int getStrategyType() { return PartialCustomTabType.SIDE_SHEET; @@ -169,22 +159,17 @@ private void onMaximizeEnd(boolean animate) { if (isMaximized()) { if (mSheetOnRight) configureLayoutBeyondScreen(false); - notifyResized(); + maybeInvokeResizeCallback(); } else { // System UI dimensions are not settled yet. Post the task. new Handler().post(() -> { if (mSheetOnRight) configureLayoutBeyondScreen(false); initializeSize(); - notifyResized(); + maybeInvokeResizeCallback(); }); } } - private void notifyResized() { - var attrs = mActivity.getWindow().getAttributes(); - mOnResizedCallback.onResized(attrs.height, attrs.width); - } - @Override protected boolean isMaximized() { return mIsMaximized; @@ -209,7 +194,7 @@ initializeSize(); updateShadowOffset(); - // TODO(crbug.com/1406107): Check if we should invoke the resize callback + maybeInvokeResizeCallback(); } @Override @@ -274,19 +259,22 @@ @Override protected void initializeSize() { initializeHeight(); - mHeight = mDisplayHeight - mStatusbarHeight - mNavbarHeight; positionOnWindow(); setCoordinatorLayoutHeight(MATCH_PARENT); updateDragBarVisibility(/*dragHandlebarVisibility*/ View.GONE); + + if (mIsMaximized) { + mIsMaximized = false; + toggleMaximize(/*animate=*/false); + } } private void positionOnWindow() { - int width = calculateWidth(mUnclampedInitialWidth); WindowManager.LayoutParams attrs = mActivity.getWindow().getAttributes(); - attrs.height = mHeight; - attrs.width = width; + attrs.height = mDisplayHeight - mStatusbarHeight - mNavbarHeight; + attrs.width = calculateWidth(mUnclampedInitialWidth); attrs.y = mStatusbarHeight; attrs.x = mSheetOnRight ? mVersionCompat.getDisplayWidth() - attrs.width : 0;
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategyTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategyTest.java index b2758f6..e7f3fce0 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategyTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategyTest.java
@@ -231,7 +231,7 @@ @Test public void enterAndExitMaximizeMode() { - var strategy = createPcctSideSheetStrategy(2000); + var strategy = createPcctSideSheetStrategy(700); assertFalse(getWindowAttributes().isFullscreen()); int height = getWindowAttributes().height; int width = getWindowAttributes().width; @@ -250,19 +250,46 @@ @Test public void toggleMaximizeNoAnimation() { - var strategy = createPcctSideSheetStrategy(2000); + var strategy = createPcctSideSheetStrategy(700); int height = getWindowAttributes().height; int width = getWindowAttributes().width; - strategy.toggleMaximize(false); + strategy.toggleMaximize(/*animation=*/false); verify(mPCCTTestRule.mOnResizedCallback).onResized(eq(FULL_HEIGHT), eq(DEVICE_WIDTH)); - strategy.toggleMaximize(false); + strategy.toggleMaximize(/*animation=*/false); + // Even without animation, we still need to wait for task to be idle, since we post + // the task for size init in |onMaximizeEnd|. + PartialCustomTabTestRule.waitForAnimationToFinish(); assertEquals(height, getWindowAttributes().height); assertEquals(width, getWindowAttributes().width); verify(mPCCTTestRule.mOnResizedCallback).onResized(eq(height), eq(width)); } @Test + public void maximizeAndFullscreen() { + // Ensure maximize -> fullscreen enter/exit -> comes back to maximize mode + var strategy = createPcctSideSheetStrategy(700); + strategy.setFullscreenSupplierForTesting(() -> mFullscreen); + int height = getWindowAttributes().height; + int width = getWindowAttributes().width; + + strategy.toggleMaximize(true); + PartialCustomTabTestRule.waitForAnimationToFinish(); + verify(mPCCTTestRule.mOnResizedCallback).onResized(eq(FULL_HEIGHT), eq(DEVICE_WIDTH)); + + mFullscreen = true; + strategy.onEnterFullscreen(null, null); + clearInvocations(mPCCTTestRule.mOnResizedCallback); + + // Verify we get a single resize callback invocation when exiting fullscreen and restoring + // maximize mode. + mFullscreen = false; + strategy.onExitFullscreen(null); + PartialCustomTabTestRule.waitForAnimationToFinish(); + verify(mPCCTTestRule.mOnResizedCallback).onResized(eq(FULL_HEIGHT), eq(DEVICE_WIDTH)); + } + + @Test public void sheetPosition() { assertPosition(LEFT, RTL, ACTIVITY_SIDE_SHEET_POSITION_DEFAULT); assertPosition(LEFT, RTL, ACTIVITY_SIDE_SHEET_POSITION_END);
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 33ba5d1..7d986a8 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -3612,6 +3612,8 @@ "download/bubble/download_bubble_controller.h", "download/bubble/download_bubble_prefs.cc", "download/bubble/download_bubble_prefs.h", + "download/bubble/download_bubble_ui_model_utils.cc", + "download/bubble/download_bubble_ui_model_utils.h", "download/bubble/download_display.cc", "download/bubble/download_display.h", "download/bubble/download_display_controller.cc",
diff --git a/chrome/browser/about_flags_browsertest.cc b/chrome/browser/about_flags_browsertest.cc index 0e18e34..147a133 100644 --- a/chrome/browser/about_flags_browsertest.cc +++ b/chrome/browser/about_flags_browsertest.cc
@@ -323,13 +323,7 @@ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(kSwitchName)); } -// Crashes on Win. http://crbug.com/1108357 -#if BUILDFLAG(IS_WIN) -#define MAYBE_ExpiryHidesFlag DISABLED_ExpiryHidesFlag -#else -#define MAYBE_ExpiryHidesFlag ExpiryHidesFlag -#endif -IN_PROC_BROWSER_TEST_P(AboutFlagsBrowserTest, MAYBE_ExpiryHidesFlag) { +IN_PROC_BROWSER_TEST_P(AboutFlagsBrowserTest, ExpiryHidesFlag) { NavigateToFlagsPage(); content::WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
diff --git a/chrome/browser/ash/app_list/app_service/app_service_app_model_builder_unittest.cc b/chrome/browser/ash/app_list/app_service/app_service_app_model_builder_unittest.cc index 2dc3a41..96f821b9 100644 --- a/chrome/browser/ash/app_list/app_service/app_service_app_model_builder_unittest.cc +++ b/chrome/browser/ash/app_list/app_service/app_service_app_model_builder_unittest.cc
@@ -577,9 +577,8 @@ // Creates a corrupted ordinal case. extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_.get()); - prefs->UpdateExtensionPref( - kHostedAppId, "page_ordinal", - std::make_unique<base::Value>("a corrupted ordinal")); + prefs->UpdateExtensionPref(kHostedAppId, "page_ordinal", + base::Value("a corrupted ordinal")); // This should not assert or crash. CreateBuilder();
diff --git a/chrome/browser/ash/arc/input_overlay/ui/action_label.cc b/chrome/browser/ash/arc/input_overlay/ui/action_label.cc index 59ed84c6..3bd0758 100644 --- a/chrome/browser/ash/arc/input_overlay/ui/action_label.cc +++ b/chrome/browser/ash/arc/input_overlay/ui/action_label.cc
@@ -4,12 +4,14 @@ #include "chrome/browser/ash/arc/input_overlay/ui/action_label.h" +#include <string.h> #include <set> #include "ash/style/style_util.h" #include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/ash/arc/input_overlay/constants.h" #include "chrome/browser/ash/arc/input_overlay/ui/action_view.h" +#include "chrome/browser/ash/arc/input_overlay/util.h" #include "chrome/grit/generated_resources.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/base/l10n/l10n_util.h" @@ -90,9 +92,14 @@ constexpr char kComma[] = ","; constexpr char kPeriod[] = "."; constexpr char kSlash[] = "/"; -constexpr char kBackSpace[] = "back"; -constexpr char kEnter[] = "enter"; +constexpr char kBackSpace[] = "⌫"; +constexpr char kEnter[] = "↵"; +constexpr char kSpace[] = "␣"; constexpr char kEscape[] = "esc"; +// TODO(b/260937747): Remove for Alpha when AlphaV2 flag is removed. +constexpr char kBackSpaceAlpha[] = "back"; +constexpr char kEnterAlpha[] = "enter"; +constexpr char kSpaceAlpha[] = "space"; // Modifier keys. constexpr char kAlt[] = "alt"; @@ -343,9 +350,9 @@ case ui::DomCode::SLASH: return kSlash; case ui::DomCode::BACKSPACE: - return kBackSpace; + return AllowReposition() ? kBackSpace : kBackSpaceAlpha; case ui::DomCode::ENTER: - return kEnter; + return AllowReposition() ? kEnter : kEnterAlpha; case ui::DomCode::ESCAPE: return kEscape; // Modifier keys. @@ -360,6 +367,8 @@ return kShift; case ui::DomCode::CAPS_LOCK: return kCap; + case ui::DomCode::SPACE: + return AllowReposition() ? kSpace : kSpaceAlpha; default: std::string dom_code_string = ui::KeycodeConverter::DomCodeToCodeString(code); @@ -448,9 +457,7 @@ SetHorizontalAlignment(gfx::ALIGN_CENTER); SetBorder(views::CreateEmptyBorder( gfx::Insets::VH(0, allow_reposition_ ? kSideInset : kSideInsetAlpha))); - SetAccessibleName(mouse_action_ == MouseAction::NONE - ? label()->GetText() - : base::UTF8ToUTF16(GetClassName())); + CustomizeAccessibilityName(); } ActionLabel::ActionLabel(int radius, @@ -484,12 +491,12 @@ void ActionLabel::SetTextActionLabel(const std::string& text) { label()->SetText(base::UTF8ToUTF16(text)); - SetAccessibleName(label()->GetText()); + CustomizeAccessibilityName(); } void ActionLabel::SetImageActionLabel(MouseAction mouse_action) { - SetAccessibleName(base::UTF8ToUTF16(GetClassName())); set_mouse_action(mouse_action); + CustomizeAccessibilityName(); } void ActionLabel::SetDisplayMode(DisplayMode mode) { @@ -736,4 +743,30 @@ return base::UTF16ToUTF8(GetText()) == kUnknownBind; } +void ActionLabel::CustomizeAccessibilityName() { + if (mouse_action_ != MouseAction::NONE) { + SetAccessibleName(base::UTF8ToUTF16(GetClassName())); + return; + } + + if (!allow_reposition_) { + SetAccessibleName(label()->GetText()); + return; + } + + // TODO(b/260868602): Update the name. + const std::string text = base::UTF16ToUTF8(label()->GetText()); + std::u16string name; + if (text.compare(kSpace) == 0) { + name = u"space"; + } else if (text.compare(kEnter) == 0) { + name = u"enter"; + } else if (text.compare(kBackSpace) == 0) { + name = u"backspace"; + } else { + name = label()->GetText(); + } + SetAccessibleName(name); +} + } // namespace arc::input_overlay
diff --git a/chrome/browser/ash/arc/input_overlay/ui/action_label.h b/chrome/browser/ash/arc/input_overlay/ui/action_label.h index f0bf169..178677f 100644 --- a/chrome/browser/ash/arc/input_overlay/ui/action_label.h +++ b/chrome/browser/ash/arc/input_overlay/ui/action_label.h
@@ -106,6 +106,8 @@ void SetBackgroundForEdit(); bool IsInputUnbound(); + // Customize a11y name. + void CustomizeAccessibilityName(); bool allow_reposition_; };
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.cc index f4ae55c..e1efee3 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.cc
@@ -281,23 +281,21 @@ if (!ambient_observer_remote_.is_bound()) return; - // First, empty the WebUI store so it doesn't show the previously selected - // albums' previews. If |settings_->topic_source| is Google photos, refetch - // the previews because the selected albums may have changed. Otherwise, we - // fallback to the preview urls that comes with the albums. + // Empty the WebUI store so it doesn't show the previously selected albums' + // previews. OnPreviewsFetched(std::vector<GURL>()); - if (settings_->topic_source == ash::AmbientModeTopicSource::kGooglePhotos) - FetchGooglePhotosAlbumsPreviews(settings_->selected_album_ids); - - if (features::IsPersonalizationJellyEnabled() && - settings_->topic_source == ash::AmbientModeTopicSource::kArtGallery) { + if (features::IsPersonalizationJellyEnabled()) { if (is_updating_backend_) { // Once settings updated, fetch preview images. needs_update_previews_ = true; } else { // Fetch preview images if settings have been updated. - FetchArtGalleryPreviews(); + FetchPreviewImages(); } + } else if (settings_->topic_source == + ash::AmbientModeTopicSource::kGooglePhotos) { + // When Jelly is not enabled, only fetch google photos albums previews. + FetchGooglePhotosAlbumsPreviews(settings_->selected_album_ids); } ambient_observer_remote_->OnTopicSourceChanged(settings_->topic_source); @@ -397,7 +395,7 @@ update_settings_retry_backoff_.Reset(); cached_settings_ = settings_sent_for_update_; if (needs_update_previews_) { - FetchArtGalleryPreviews(); + FetchPreviewImages(); } } else { update_settings_retry_backoff_.InformOfRequest(/*succeeded=*/false); @@ -532,7 +530,7 @@ OnTopicSourceChanged(); } -void PersonalizationAppAmbientProviderImpl::FetchArtGalleryPreviews() { +void PersonalizationAppAmbientProviderImpl::FetchPreviewImages() { needs_update_previews_ = false; previews_weak_factory_.InvalidateWeakPtrs(); ash::AmbientBackendController::Get()->FetchPreviewImages( @@ -540,6 +538,7 @@ previews_weak_factory_.GetWeakPtr())); } +// TODO(b/270434334): Remove when Jelly is enabled by default. void PersonalizationAppAmbientProviderImpl::FetchGooglePhotosAlbumsPreviews( const std::vector<std::string>& album_ids) { const int num_previews = features::IsPersonalizationJellyEnabled() ? 3 : 4;
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.h b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.h index 40793a3..0a81cf0 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.h +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.h
@@ -104,7 +104,7 @@ // Update topic source if needed. void MaybeUpdateTopicSource(ash::AmbientModeTopicSource topic_source); - void FetchArtGalleryPreviews(); + void FetchPreviewImages(); void FetchGooglePhotosAlbumsPreviews( const std::vector<std::string>& album_ids); void OnPreviewsFetched(const std::vector<GURL>& preview_urls);
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl_unittest.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl_unittest.cc index 8dd24c3..f7ec221 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl_unittest.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl_unittest.cc
@@ -112,7 +112,7 @@ return ambient_ui_visibility_; } - std::vector<GURL> google_photos_albums_previews() { + std::vector<GURL> previews() { ambient_observer_receiver_.FlushForTesting(); return previews_; } @@ -234,9 +234,9 @@ return test_ambient_observer_.visibility(); } - std::vector<GURL> ObservedGooglePhotosAlbumsPreviews() { + std::vector<GURL> ObservedPreviews() { ambient_provider_remote_.FlushForTesting(); - return test_ambient_observer_.google_photos_albums_previews(); + return test_ambient_observer_.previews(); } absl::optional<ash::AmbientSettings>& settings() { @@ -274,6 +274,8 @@ ambient_provider_->SetAlbumSelected(id, topic_source, selected); } + void FetchPreviewImages() { ambient_provider_->FetchPreviewImages(); } + ash::AmbientModeTopicSource TopicSource() { return ambient_provider_->settings_->topic_source; } @@ -429,13 +431,20 @@ ash::AmbientTheme::kFeelTheBreeze, 1); } +TEST_F(PersonalizationAppAmbientProviderImplTest, FetchPreviewImages) { + SetAmbientObserver(); + EXPECT_TRUE(ObservedPreviews().empty()); + FetchPreviewImages(); + EXPECT_FALSE(ObservedPreviews().empty()); +} + TEST_F(PersonalizationAppAmbientProviderImplTest, ShouldCallOnTopicSourceChanged) { SetAmbientObserver(); FetchSettings(); ReplyFetchSettingsAndAlbums(/*success=*/true); EXPECT_EQ(ash::AmbientModeTopicSource::kGooglePhotos, ObservedTopicSource()); - EXPECT_FALSE(ObservedGooglePhotosAlbumsPreviews().empty()); + EXPECT_FALSE(ObservedPreviews().empty()); SetTopicSource(ash::AmbientModeTopicSource::kArtGallery); EXPECT_EQ(ash::AmbientModeTopicSource::kArtGallery, ObservedTopicSource()); @@ -449,7 +458,7 @@ // The fake albums are set in FakeAmbientBackendControllerImpl. Hidden setting // will be sent to JS side. EXPECT_EQ(4u, albums.size()); - EXPECT_FALSE(ObservedGooglePhotosAlbumsPreviews().empty()); + EXPECT_FALSE(ObservedPreviews().empty()); } TEST_F(PersonalizationAppAmbientProviderImplTest,
diff --git a/chrome/browser/download/bubble/download_bubble_controller.cc b/chrome/browser/download/bubble/download_bubble_controller.cc index 731b2cf..1cbe843 100644 --- a/chrome/browser/download/bubble/download_bubble_controller.cc +++ b/chrome/browser/download/bubble/download_bubble_controller.cc
@@ -11,6 +11,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/content_index/content_index_provider_impl.h" #include "chrome/browser/download/bubble/download_bubble_prefs.h" +#include "chrome/browser/download/bubble/download_bubble_ui_model_utils.h" #include "chrome/browser/download/bubble/download_display_controller.h" #include "chrome/browser/download/chrome_download_manager_delegate.h" #include "chrome/browser/download/download_core_service.h" @@ -47,18 +48,6 @@ return candidate.id == to_find; } -bool DownloadUIModelIsRecent(const DownloadUIModel* model, - base::Time cutoff_time) { - return ((model->GetStartTime().is_null() && !model->IsDone()) || - model->GetStartTime() > cutoff_time); -} - -bool IsPendingDeepScanning(const DownloadUIModel& model) { - return model.GetState() == download::DownloadItem::IN_PROGRESS && - model.GetDangerType() == - download::DOWNLOAD_DANGER_TYPE_PROMPT_FOR_SCANNING; -} - using DownloadUIModelPtrList = std::list<DownloadUIModelPtr>; // Sorting order is 1) Active in-progress downloads, 2) Paused in-progress @@ -262,7 +251,7 @@ bool was_added = MaybeAddOfflineItem(item, /*is_new=*/false); OfflineItemModel model(offline_manager_, item); display_controller_->OnUpdatedItem( - model.IsDone(), IsPendingDeepScanning(model), + model.IsDone(), IsPendingDeepScanning(&model), was_added && (browser_ == chrome::FindLastActiveWithProfile(profile_.get()))); } @@ -275,7 +264,7 @@ DownloadItemModel model(item); if (manager != download_notifier_.GetManager()) { display_controller_->OnUpdatedItem(item->IsDone(), - IsPendingDeepScanning(model), + IsPendingDeepScanning(&model), /*may_show_details=*/false); return; } @@ -283,7 +272,7 @@ model.ShouldShowInBubble() && (browser_ == chrome::FindLastActiveWithProfile(profile_.get())); display_controller_->OnUpdatedItem( - item->IsDone(), IsPendingDeepScanning(model), may_show_details); + item->IsDone(), IsPendingDeepScanning(&model), may_show_details); } void DownloadBubbleUIController::PruneOfflineItems() { @@ -361,8 +350,9 @@ if (!is_main_view && model->WasActionedOn()) { continue; } - // Partial view entries are removed if viewed on the main view. - if (is_main_view) { + // Partial view entries are removed if viewed on the main view after + // completion. + if (is_main_view && !IsModelInProgress(model.get())) { model->SetActionedOn(true); } items_to_return.push_back(std::move(model));
diff --git a/chrome/browser/download/bubble/download_bubble_controller_unittest.cc b/chrome/browser/download/bubble/download_bubble_controller_unittest.cc index 30e3bb4..c1b2497 100644 --- a/chrome/browser/download/bubble/download_bubble_controller_unittest.cc +++ b/chrome/browser/download/bubble/download_bubble_controller_unittest.cc
@@ -194,6 +194,7 @@ .WillRepeatedly(Return(download::DownloadItem::DownloadCreationType:: TYPE_ACTIVE_DOWNLOAD)); EXPECT_CALL(item(index), IsPaused()).WillRepeatedly(Return(false)); + EXPECT_CALL(item(index), IsDangerous()).WillRepeatedly(Return(false)); // Functions called when checking ShouldShowDownloadStartedAnimation(). EXPECT_CALL(item(index), IsSavePackageDownload()) .WillRepeatedly(Return(false)); @@ -434,7 +435,7 @@ } TEST_F(DownloadBubbleUIControllerTest, - OpeningMainViewRemovesEntryFromPartialView) { + OpeningMainViewRemovesCompletedEntryFromPartialView) { std::vector<std::string> ids = {"Download 1", "Offline 1"}; InitDownloadItem(FILE_PATH_LITERAL("/foo/bar.pdf"), download::DownloadItem::IN_PROGRESS, ids[0]); @@ -443,11 +444,30 @@ EXPECT_EQ(controller().GetPartialView().size(), 2ul); EXPECT_EQ(second_controller().GetPartialView().size(), 2ul); - EXPECT_EQ(controller().GetMainView().size(), 2ul); + UpdateDownloadItem(/*item_index=*/0, DownloadState::COMPLETE); + // Completed offline item is removed. + UpdateOfflineItem(/*item_index=*/0, OfflineItemState::COMPLETE); + EXPECT_EQ(controller().GetMainView().size(), 1ul); + // Download was removed from partial view because it is completed. EXPECT_EQ(controller().GetPartialView().size(), 0ul); EXPECT_EQ(second_controller().GetPartialView().size(), 0ul); } +TEST_F(DownloadBubbleUIControllerTest, + OpeningMainViewDoesNotRemoveInProgressEntryFromPartialView) { + std::vector<std::string> ids = {"Download 1", "Offline 1"}; + InitDownloadItem(FILE_PATH_LITERAL("/foo/bar.pdf"), + download::DownloadItem::IN_PROGRESS, ids[0]); + InitOfflineItem(OfflineItemState::IN_PROGRESS, ids[1]); + + EXPECT_EQ(controller().GetPartialView().size(), 2ul); + + // This does not remove the entries from the partial view because the items + // are in progress. + EXPECT_EQ(controller().GetMainView().size(), 2ul); + EXPECT_EQ(controller().GetPartialView().size(), 2ul); +} + // Tests that no items are returned (i.e. no partial view will be shown) if it // is too soon since the last partial view has been shown. TEST_F(DownloadBubbleUIControllerTest, NoItemsReturnedForPartialViewTooSoon) { @@ -457,7 +477,7 @@ // First time showing the partial view should work. EXPECT_CALL(display_controller(), OnNewItem(true)).Times(1); InitDownloadItem(FILE_PATH_LITERAL("/foo/bar1.pdf"), - download::DownloadItem::IN_PROGRESS, ids[0]); + download::DownloadItem::COMPLETE, ids[0]); EXPECT_EQ(controller().GetPartialView().size(), 1u); // No items are returned for a partial view because it is too soon.
diff --git a/chrome/browser/download/bubble/download_bubble_ui_model_utils.cc b/chrome/browser/download/bubble/download_bubble_ui_model_utils.cc new file mode 100644 index 0000000..e50d59f --- /dev/null +++ b/chrome/browser/download/bubble/download_bubble_ui_model_utils.cc
@@ -0,0 +1,27 @@ +// 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/download/bubble/download_bubble_ui_model_utils.h" + +#include "base/time/time.h" +#include "chrome/browser/download/download_ui_model.h" + +bool DownloadUIModelIsRecent(const DownloadUIModel* model, + base::Time cutoff_time) { + return ((model->GetStartTime().is_null() && !model->IsDone()) || + model->GetStartTime() > cutoff_time); +} + +bool IsPendingDeepScanning(const DownloadUIModel* model) { + return model->GetState() == download::DownloadItem::IN_PROGRESS && + model->GetDangerType() == + download::DOWNLOAD_DANGER_TYPE_PROMPT_FOR_SCANNING; +} + +bool IsModelInProgress(const DownloadUIModel* model) { + if (model->IsDangerous() && !IsPendingDeepScanning(model)) { + return false; + } + return model->GetState() == download::DownloadItem::IN_PROGRESS; +}
diff --git a/chrome/browser/download/bubble/download_bubble_ui_model_utils.h b/chrome/browser/download/bubble/download_bubble_ui_model_utils.h new file mode 100644 index 0000000..173a58b --- /dev/null +++ b/chrome/browser/download/bubble/download_bubble_ui_model_utils.h
@@ -0,0 +1,24 @@ +// 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_DOWNLOAD_BUBBLE_DOWNLOAD_BUBBLE_UI_MODEL_UTILS_H_ +#define CHROME_BROWSER_DOWNLOAD_BUBBLE_DOWNLOAD_BUBBLE_UI_MODEL_UTILS_H_ + +#include "base/time/time.h" +#include "chrome/browser/download/download_ui_model.h" + +// Whether the download is more recent than |cutoff_time|. +bool DownloadUIModelIsRecent(const DownloadUIModel* model, + base::Time cutoff_time); + +// Whether the download is in progress and pending deep scanning. +bool IsPendingDeepScanning(const DownloadUIModel* model); + +// Whether the download is considered in-progress from the UI's point of view. +// Consider dangerous downloads as completed, because we don't want to encourage +// users to interact with them. However, consider downloads pending scanning as +// in progress, because we do want users to scan potential dangerous downloads. +bool IsModelInProgress(const DownloadUIModel* model); + +#endif // CHROME_BROWSER_DOWNLOAD_BUBBLE_DOWNLOAD_BUBBLE_UI_MODEL_UTILS_H_
diff --git a/chrome/browser/download/bubble/download_display_controller.cc b/chrome/browser/download/bubble/download_display_controller.cc index f9511bb..9cf2cad 100644 --- a/chrome/browser/download/bubble/download_display_controller.cc +++ b/chrome/browser/download/bubble/download_display_controller.cc
@@ -10,6 +10,7 @@ #include "base/timer/timer.h" #include "chrome/browser/download/bubble/download_bubble_controller.h" #include "chrome/browser/download/bubble/download_bubble_prefs.h" +#include "chrome/browser/download/bubble/download_bubble_ui_model_utils.h" #include "chrome/browser/download/bubble/download_display.h" #include "chrome/browser/download/bubble/download_icon_state.h" #include "chrome/browser/download/download_core_service.h" @@ -61,19 +62,6 @@ bool all_done = true; }; -bool IsPendingDeepScanning(const DownloadUIModel* model) { - return model->GetState() == download::DownloadItem::IN_PROGRESS && - model->GetDangerType() == - download::DOWNLOAD_DANGER_TYPE_PROMPT_FOR_SCANNING; -} - -bool IsModelInProgress(const DownloadUIModel* model) { - if (model->IsDangerous() && !IsPendingDeepScanning(model)) { - return false; - } - return model->GetState() == download::DownloadItem::IN_PROGRESS; -} - AllDownloadUIModelsInfo GetAllModelsInfo( std::vector<std::unique_ptr<DownloadUIModel>>& all_models) { AllDownloadUIModelsInfo info;
diff --git a/chrome/browser/extensions/api/commands/command_service.cc b/chrome/browser/extensions/api/commands/command_service.cc index 92e415e..eeddf88 100644 --- a/chrome/browser/extensions/api/commands/command_service.cc +++ b/chrome/browser/extensions/api/commands/command_service.cc
@@ -87,8 +87,7 @@ } extension_prefs->UpdateExtensionPref( - extension_id, kCommands, - std::make_unique<base::Value>(std::move(suggested_key_prefs))); + extension_id, kCommands, base::Value(std::move(suggested_key_prefs))); } } // namespace @@ -608,7 +607,7 @@ extension_prefs->UpdateExtensionPref( extension->id(), kCommands, - std::make_unique<base::Value>(std::move(suggested_key_prefs))); + base::Value(std::move(suggested_key_prefs))); } }
diff --git a/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc b/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc index 4ebb8b44..c815b32 100644 --- a/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc +++ b/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc
@@ -245,11 +245,11 @@ EXPECT_TRUE(cache_delegate->GetDeclarativeRulesStored(extension1_->id())); extension_prefs->UpdateExtensionPref(extension1_->id(), rules_stored_key, - std::make_unique<base::Value>(false)); + base::Value(false)); EXPECT_FALSE(cache_delegate->GetDeclarativeRulesStored(extension1_->id())); extension_prefs->UpdateExtensionPref(extension1_->id(), rules_stored_key, - std::make_unique<base::Value>(true)); + base::Value(true)); EXPECT_TRUE(cache_delegate->GetDeclarativeRulesStored(extension1_->id())); // 2. Test writing behavior. @@ -342,7 +342,7 @@ // Update the flag for the first registry. extension_prefs->UpdateExtensionPref(extension1_->id(), rules_stored_key1, - std::make_unique<base::Value>(false)); + base::Value(false)); EXPECT_FALSE(cache_delegate1->GetDeclarativeRulesStored(extension1_->id())); EXPECT_TRUE(cache_delegate2->GetDeclarativeRulesStored(extension1_->id())); }
diff --git a/chrome/browser/extensions/api/device_permissions_manager_unittest.cc b/chrome/browser/extensions/api/device_permissions_manager_unittest.cc index 1a9316f..fb27a6f 100644 --- a/chrome/browser/extensions/api/device_permissions_manager_unittest.cc +++ b/chrome/browser/extensions/api/device_permissions_manager_unittest.cc
@@ -308,9 +308,8 @@ " \"vendor_id\": 0" " }" "]"); - env_->GetExtensionPrefs()->UpdateExtensionPref( - extension_->id(), "devices", - base::Value::ToUniquePtrValue(std::move(prefs_value))); + env_->GetExtensionPrefs()->UpdateExtensionPref(extension_->id(), "devices", + std::move(prefs_value)); DevicePermissionsManager* manager = DevicePermissionsManager::Get(env_->profile());
diff --git a/chrome/browser/extensions/api/identity/identity_api.cc b/chrome/browser/extensions/api/identity/identity_api.cc index 159a66f2..4a8d4ba3 100644 --- a/chrome/browser/extensions/api/identity/identity_api.cc +++ b/chrome/browser/extensions/api/identity/identity_api.cc
@@ -35,6 +35,7 @@ #include "extensions/common/permissions/permission_set.h" #include "extensions/common/permissions/permissions_data.h" #include "google_apis/gaia/gaia_urls.h" +#include "third_party/abseil-cpp/absl/types/optional.h" #include "url/gurl.h" namespace extensions { @@ -62,7 +63,7 @@ const std::string& gaia_id) { DCHECK(!gaia_id.empty()); extension_prefs_->UpdateExtensionPref(extension_id, kIdentityGaiaIdPref, - std::make_unique<base::Value>(gaia_id)); + base::Value(gaia_id)); } absl::optional<std::string> IdentityAPI::GetGaiaIdForExtension( @@ -77,7 +78,7 @@ void IdentityAPI::EraseGaiaIdForExtension(const std::string& extension_id) { extension_prefs_->UpdateExtensionPref(extension_id, kIdentityGaiaIdPref, - nullptr); + absl::nullopt); } void IdentityAPI::EraseStaleGaiaIdsForAllExtensions() {
diff --git a/chrome/browser/extensions/api/module/module.cc b/chrome/browser/extensions/api/module/module.cc index 029e4c85..3fc03181 100644 --- a/chrome/browser/extensions/api/module/module.cc +++ b/chrome/browser/extensions/api/module/module.cc
@@ -31,8 +31,7 @@ } ExtensionPrefs::Get(browser_context()) - ->UpdateExtensionPref(extension_id(), kUpdateURLData, - std::make_unique<base::Value>(data)); + ->UpdateExtensionPref(extension_id(), kUpdateURLData, base::Value(data)); return RespondNow(NoArguments()); }
diff --git a/chrome/browser/extensions/api/omnibox/omnibox_api.cc b/chrome/browser/extensions/api/omnibox/omnibox_api.cc index 1ed264c..c9791050 100644 --- a/chrome/browser/extensions/api/omnibox/omnibox_api.cc +++ b/chrome/browser/extensions/api/omnibox/omnibox_api.cc
@@ -81,9 +81,8 @@ // Add the content field so that the dictionary can be used to populate an // omnibox::SuggestResult. dict.Set(kSuggestionContent, base::Value(base::Value::Type::STRING)); - prefs->UpdateExtensionPref( - extension_id, kOmniboxDefaultSuggestion, - base::Value::ToUniquePtrValue(base::Value(std::move(dict)))); + prefs->UpdateExtensionPref(extension_id, kOmniboxDefaultSuggestion, + base::Value(std::move(dict))); return true; }
diff --git a/chrome/browser/extensions/api/preference/preference_api.cc b/chrome/browser/extensions/api/preference/preference_api.cc index 58cea81..87e670be 100644 --- a/chrome/browser/extensions/api/preference/preference_api.cc +++ b/chrome/browser/extensions/api/preference/preference_api.cc
@@ -524,15 +524,13 @@ if (incognito) { ExtensionPrefs::Get(profile_)->UpdateExtensionPref( extension_id, pref_names::kPrefIncognitoContentSettings, - base::Value::ToUniquePtrValue( - base::Value(content_settings_store()->GetSettingsForExtension( - extension_id, kExtensionPrefsScopeIncognitoPersistent)))); + base::Value(content_settings_store()->GetSettingsForExtension( + extension_id, kExtensionPrefsScopeIncognitoPersistent))); } else { ExtensionPrefs::Get(profile_)->UpdateExtensionPref( extension_id, pref_names::kPrefContentSettings, - base::Value::ToUniquePtrValue( - base::Value(content_settings_store()->GetSettingsForExtension( - extension_id, kExtensionPrefsScopeRegular)))); + base::Value(content_settings_store()->GetSettingsForExtension( + extension_id, kExtensionPrefsScopeRegular))); } }
diff --git a/chrome/browser/extensions/chrome_app_sorting.cc b/chrome/browser/extensions/chrome_app_sorting.cc index 7a9c985..587bc8a 100644 --- a/chrome/browser/extensions/chrome_app_sorting.cc +++ b/chrome/browser/extensions/chrome_app_sorting.cc
@@ -28,6 +28,7 @@ #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/manifest_handlers/app_display_info.h" +#include "third_party/abseil-cpp/absl/types/optional.h" #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/ash/extensions/default_app_order.h" @@ -135,7 +136,8 @@ page = PageIntegerAsStringOrdinal(old_page_index); SetPageOrdinal(*ext_id, page); - prefs->UpdateExtensionPref(*ext_id, kPrefPageIndexDeprecated, nullptr); + prefs->UpdateExtensionPref(*ext_id, kPrefPageIndexDeprecated, + absl::nullopt); } int old_app_launch_index = 0; @@ -151,7 +153,7 @@ app_launches_to_convert[page][old_app_launch_index] = &*ext_id; prefs->UpdateExtensionPref(*ext_id, kPrefAppLaunchIndexDeprecated, - nullptr); + absl::nullopt); } } @@ -367,11 +369,11 @@ return; } - std::unique_ptr<base::Value> new_value = - new_app_launch_ordinal.IsValid() - ? std::make_unique<base::Value>( - new_app_launch_ordinal.ToInternalValue()) - : nullptr; + absl::optional<base::Value> new_value; + if (new_app_launch_ordinal.IsValid()) { + new_value = base::Value(new_app_launch_ordinal.ToInternalValue()); + } + ExtensionPrefs::Get(browser_context_) ->UpdateExtensionPref(extension_id, kPrefAppLaunchOrdinal, std::move(new_value)); @@ -453,10 +455,10 @@ return; } - std::unique_ptr<base::Value> new_value = - new_page_ordinal.IsValid() - ? std::make_unique<base::Value>(new_page_ordinal.ToInternalValue()) - : nullptr; + absl::optional<base::Value> new_value; + if (new_page_ordinal.IsValid()) { + new_value = base::Value(new_page_ordinal.ToInternalValue()); + } ExtensionPrefs::Get(browser_context_) ->UpdateExtensionPref(extension_id, kPrefPageOrdinal, @@ -470,8 +472,9 @@ GetAppLaunchOrdinal(extension_id)); ExtensionPrefs* prefs = ExtensionPrefs::Get(browser_context_); - prefs->UpdateExtensionPref(extension_id, kPrefPageOrdinal, nullptr); - prefs->UpdateExtensionPref(extension_id, kPrefAppLaunchOrdinal, nullptr); + prefs->UpdateExtensionPref(extension_id, kPrefPageOrdinal, absl::nullopt); + prefs->UpdateExtensionPref(extension_id, kPrefAppLaunchOrdinal, + absl::nullopt); } int ChromeAppSorting::PageStringOrdinalAsInteger(
diff --git a/chrome/browser/extensions/chrome_app_sorting_unittest.cc b/chrome/browser/extensions/chrome_app_sorting_unittest.cc index 507c944..4d6f85a4 100644 --- a/chrome/browser/extensions/chrome_app_sorting_unittest.cc +++ b/chrome/browser/extensions/chrome_app_sorting_unittest.cc
@@ -158,22 +158,19 @@ // Setup the deprecated preferences. prefs()->UpdateExtensionPref(extension1()->id(), - kPrefAppLaunchIndexDeprecated, - std::make_unique<base::Value>(0)); + kPrefAppLaunchIndexDeprecated, base::Value(0)); prefs()->UpdateExtensionPref(extension1()->id(), kPrefPageIndexDeprecated, - std::make_unique<base::Value>(0)); + base::Value(0)); prefs()->UpdateExtensionPref(extension2()->id(), - kPrefAppLaunchIndexDeprecated, - std::make_unique<base::Value>(1)); + kPrefAppLaunchIndexDeprecated, base::Value(1)); prefs()->UpdateExtensionPref(extension2()->id(), kPrefPageIndexDeprecated, - std::make_unique<base::Value>(0)); + base::Value(0)); prefs()->UpdateExtensionPref(extension3()->id(), - kPrefAppLaunchIndexDeprecated, - std::make_unique<base::Value>(0)); + kPrefAppLaunchIndexDeprecated, base::Value(0)); prefs()->UpdateExtensionPref(extension3()->id(), kPrefPageIndexDeprecated, - std::make_unique<base::Value>(1)); + base::Value(1)); // We insert the ids in reverse order so that we have to deal with the // element on the 2nd page before the 1st page is seen. @@ -258,10 +255,9 @@ // Setup the deprecated preference. prefs()->UpdateExtensionPref(extension1()->id(), - kPrefAppLaunchIndexDeprecated, - std::make_unique<base::Value>(0)); + kPrefAppLaunchIndexDeprecated, base::Value(0)); prefs()->UpdateExtensionPref(extension1()->id(), kPrefPageIndexDeprecated, - std::make_unique<base::Value>(-1)); + base::Value(-1)); } void Verify() override { // Make sure that the invalid page_index wasn't converted over.
diff --git a/chrome/browser/extensions/error_console/error_console.cc b/chrome/browser/extensions/error_console/error_console.cc index aa2dae1f..afb4740 100644 --- a/chrome/browser/extensions/error_console/error_console.cc +++ b/chrome/browser/extensions/error_console/error_console.cc
@@ -24,6 +24,7 @@ #include "extensions/common/feature_switch.h" #include "extensions/common/features/feature_channel.h" #include "extensions/common/logging_constants.h" +#include "third_party/abseil-cpp/absl/types/optional.h" namespace extensions { @@ -95,7 +96,7 @@ mask &= ~(1 << type); prefs_->UpdateExtensionPref(extension_id, kStoreExtensionErrorsPref, - std::make_unique<base::Value>(mask)); + base::Value(mask)); } void ErrorConsole::SetReportingAllForExtension( @@ -107,7 +108,7 @@ int mask = enabled ? (1 << ExtensionError::NUM_ERROR_TYPES) - 1 : 0; prefs_->UpdateExtensionPref(extension_id, kStoreExtensionErrorsPref, - std::make_unique<base::Value>(mask)); + base::Value(mask)); } bool ErrorConsole::IsReportingEnabledForExtension( @@ -125,7 +126,8 @@ if (!enabled_ || !crx_file::id_util::IdIsValid(extension_id)) return; - prefs_->UpdateExtensionPref(extension_id, kStoreExtensionErrorsPref, nullptr); + prefs_->UpdateExtensionPref(extension_id, kStoreExtensionErrorsPref, + absl::nullopt); } void ErrorConsole::ReportError(std::unique_ptr<ExtensionError> error) {
diff --git a/chrome/browser/extensions/extension_message_bubble_controller.cc b/chrome/browser/extensions/extension_message_bubble_controller.cc index 4e8a721..7b83c32 100644 --- a/chrome/browser/extensions/extension_message_bubble_controller.cc +++ b/chrome/browser/extensions/extension_message_bubble_controller.cc
@@ -22,6 +22,7 @@ #include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_system.h" #include "extensions/common/extension.h" +#include "third_party/abseil-cpp/absl/types/optional.h" #include "ui/base/l10n/l10n_util.h" namespace extensions { @@ -72,9 +73,11 @@ if (pref_name.empty()) return; extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_); - prefs->UpdateExtensionPref( - extension_id, pref_name, - value ? std::make_unique<base::Value>(value) : nullptr); + absl::optional<base::Value> pref_value; + if (value) { + pref_value = base::Value(value); + } + prefs->UpdateExtensionPref(extension_id, pref_name, std::move(pref_value)); } std::string
diff --git a/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc b/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc index 7ec96d7..9b8139d 100644 --- a/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc +++ b/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc
@@ -997,7 +997,7 @@ ExtensionPrefs* prefs) { std::string time_str = base::NumberToString(time.ToInternalValue()); prefs->UpdateExtensionPref(extension_id, "last_update_time", - std::make_unique<base::Value>(time_str)); + base::Value(time_str)); } // The feature this is meant to test is only implemented on Windows and Mac.
diff --git a/chrome/browser/extensions/extension_prefs_unittest.cc b/chrome/browser/extensions/extension_prefs_unittest.cc index 6406bc9..32000b29 100644 --- a/chrome/browser/extensions/extension_prefs_unittest.cc +++ b/chrome/browser/extensions/extension_prefs_unittest.cc
@@ -41,6 +41,7 @@ #include "extensions/common/manifest_constants.h" #include "extensions/common/permissions/permission_set.h" #include "extensions/common/permissions/permissions_info.h" +#include "third_party/abseil-cpp/absl/types/optional.h" using base::Time; using extensions::mojom::APIPermissionID; @@ -703,9 +704,9 @@ // Re-create migration scenario by removing the new first_install_time, // last_update_time pref keys and adding back the legacy install_time key. prefs()->UpdateExtensionPref(extension_->id(), kLastUpdateTimePrefKey, - nullptr); + absl::nullopt); prefs()->UpdateExtensionPref(extension_->id(), kFirstInstallTimePrefKey, - nullptr); + absl::nullopt); time_str_ = base::NumberToString( base::Time::Now().ToDeltaSinceWindowsEpoch().InMicroseconds()); prefs()->SetStringPref(extension_->id(), kOldInstallTimePrefMap, time_str_); @@ -1075,7 +1076,7 @@ constexpr char kTestValue[] = "test_value"; prefs()->UpdateExtensionPref(extension_->id(), ExtensionPrefs::kFakeObsoletePrefForTesting, - std::make_unique<base::Value>(kTestValue)); + base::Value(kTestValue)); std::string str_value; EXPECT_TRUE(prefs()->ReadPrefAsString( extension_->id(), ExtensionPrefs::kFakeObsoletePrefForTesting, @@ -1084,9 +1085,8 @@ // TODO(crbug.com/1015619): Remove 2023-05. kPrefStringForIdMapping. base::Value::Dict dictionary; - prefs()->UpdateExtensionPref( - extension_->id(), kPrefStringForIdMapping, - std::make_unique<base::Value>(std::move(dictionary))); + prefs()->UpdateExtensionPref(extension_->id(), kPrefStringForIdMapping, + base::Value(std::move(dictionary))); EXPECT_TRUE( prefs()->ReadPrefAsDict(extension_->id(), kPrefStringForIdMapping)); @@ -1232,14 +1232,17 @@ // We need to explicitly remove the default value for the new pref as it is // added on install by default. - prefs.prefs()->UpdateExtensionPref(previous_false_id, kNewPrefKey, nullptr); - prefs.prefs()->UpdateExtensionPref(previous_true_id, kNewPrefKey, nullptr); - prefs.prefs()->UpdateExtensionPref(previous_empty_id, kNewPrefKey, nullptr); + prefs.prefs()->UpdateExtensionPref(previous_false_id, kNewPrefKey, + absl::nullopt); + prefs.prefs()->UpdateExtensionPref(previous_true_id, kNewPrefKey, + absl::nullopt); + prefs.prefs()->UpdateExtensionPref(previous_empty_id, kNewPrefKey, + absl::nullopt); prefs.prefs()->UpdateExtensionPref(previous_false_id, kOldPrefKey, - std::make_unique<base::Value>(false)); + base::Value(false)); prefs.prefs()->UpdateExtensionPref(previous_true_id, kOldPrefKey, - std::make_unique<base::Value>(true)); + base::Value(true)); // First make sure that all prefs start out as we expect them to be. bool bool_value = false; @@ -1316,8 +1319,7 @@ // dictionary. prefs.prefs()->UpdateExtensionPref( external_extension, "state", - std::make_unique<base::Value>( - Extension::DEPRECATED_EXTERNAL_EXTENSION_UNINSTALLED)); + base::Value(Extension::DEPRECATED_EXTERNAL_EXTENSION_UNINSTALLED)); // Cause the migration. prefs.RecreateExtensionPrefs();
diff --git a/chrome/browser/extensions/launch_util.cc b/chrome/browser/extensions/launch_util.cc index 5b33ccb..b14de95 100644 --- a/chrome/browser/extensions/launch_util.cc +++ b/chrome/browser/extensions/launch_util.cc
@@ -64,7 +64,7 @@ ExtensionPrefs::Get(context)->UpdateExtensionPref( extension_id, kPrefLaunchType, - std::make_unique<base::Value>(static_cast<int>(launch_type))); + base::Value(static_cast<int>(launch_type))); // Sync the launch type. const Extension* extension =
diff --git a/chrome/browser/extensions/omnibox_focus_interactive_test.cc b/chrome/browser/extensions/omnibox_focus_interactive_test.cc index a00229e..03b1140 100644 --- a/chrome/browser/extensions/omnibox_focus_interactive_test.cc +++ b/chrome/browser/extensions/omnibox_focus_interactive_test.cc
@@ -55,7 +55,7 @@ ExtensionPrefs* prefs = ExtensionPrefs::Get(browser()->profile()); prefs->UpdateExtensionPref(extension->id(), kNtpOverridingExtensionAcknowledged, - std::make_unique<base::Value>(true)); + base::Value(true)); return extension; }
diff --git a/chrome/browser/extensions/site_permissions_helper.cc b/chrome/browser/extensions/site_permissions_helper.cc index f1aede3d..db259c3 100644 --- a/chrome/browser/extensions/site_permissions_helper.cc +++ b/chrome/browser/extensions/site_permissions_helper.cc
@@ -205,7 +205,7 @@ bool show_access_requests_in_toolbar) { ExtensionPrefs::Get(profile_)->UpdateExtensionPref( extension_id, kPrefShowAccessRequestsInToolbar, - std::make_unique<base::Value>(show_access_requests_in_toolbar)); + base::Value(show_access_requests_in_toolbar)); } } // namespace extensions
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index a4ea0e6..126d458 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -4355,6 +4355,11 @@ "expiry_milestone": 115 }, { + "name": "indicate-account-storage-error-in-account-cell", + "owners": [ "vincb", "mastiz", "chrome-sync-dev@google.com" ], + "expiry_milestone": 130 + }, + { "name": "info-card-acknowledgement-tracking", "owners": [ "//chrome/android/feed/OWNERS", "jianli@chromium.org" ], "expiry_milestone": 120
diff --git a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters.mojom b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters.mojom index 0ced4c2b..7e5191c 100644 --- a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters.mojom +++ b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters.mojom
@@ -5,6 +5,7 @@ module ntp.history_clusters.mojom; import "components/history_clusters/public/mojom/history_cluster_types.mojom"; +import "url/mojom/url.mojom"; // Browser-side handler for requests from WebUI page. interface PageHandler { @@ -13,4 +14,7 @@ // Open or make visible the Journeys UI on the Side Panel. ShowJourneysSidePanel(string query); + + // Open the URLs as a new tab group and clobber the existing NTP. + OpenUrlsInTabGroup(array<url.mojom.Url> urls); };
diff --git a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler.cc b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler.cc index 1075ff2..f75435c 100644 --- a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler.cc +++ b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler.cc
@@ -13,6 +13,8 @@ #include "chrome/browser/new_tab_page/modules/history_clusters/history_clusters.mojom.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url_service_factory.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/side_panel/history_clusters/history_clusters_tab_helper.h" #include "components/history_clusters/core/history_cluster_type_utils.h" #include "components/history_clusters/core/history_clusters_service.h" @@ -117,7 +119,46 @@ void HistoryClustersPageHandler::ShowJourneysSidePanel( const std::string& query) { + // TODO(crbug.com/1341399): Revisit integration with the side panel once the + // referenced bug is resolved. auto* history_clusters_tab_helper = side_panel::HistoryClustersTabHelper::FromWebContents(web_contents_); history_clusters_tab_helper->ShowJourneysSidePanel(query); } + +void HistoryClustersPageHandler::OpenUrlsInTabGroup( + const std::vector<GURL>& urls) { + if (urls.empty()) { + return; + } + + Browser* browser = chrome::FindLastActive(); + if (!browser) { + return; + } + + browser->OpenURL({urls.front(), content::Referrer(), + WindowOpenDisposition::CURRENT_TAB, + ui::PAGE_TRANSITION_AUTO_BOOKMARK, + /*is_renderer_initiated=*/false}); + + auto* model = browser->tab_strip_model(); + std::vector<int> tab_indices; + tab_indices.reserve(urls.size()); + for (size_t i = 1; i < urls.size(); i++) { + auto* opened_web_contents = browser->OpenURL(content::OpenURLParams( + urls[i], content::Referrer(), WindowOpenDisposition::NEW_BACKGROUND_TAB, + ui::PAGE_TRANSITION_AUTO_BOOKMARK, false)); + + // Only add those tabs to a new group that actually opened in this + // browser. + const int tab_index = model->GetIndexOfWebContents(opened_web_contents); + if (tab_index != TabStripModel::kNoTab) { + tab_indices.push_back(tab_index); + } + } + + tab_indices.insert(tab_indices.begin(), model->GetIndexOfWebContents( + model->GetActiveWebContents())); + model->AddToNewGroup(tab_indices); +}
diff --git a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler.h b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler.h index 6c04a2c..3e2a256 100644 --- a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler.h +++ b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler.h
@@ -18,6 +18,7 @@ #include "mojo/public/cpp/bindings/receiver.h" class Profile; +class GURL; namespace content { class WebContents; @@ -42,6 +43,7 @@ // mojom::PageHandler: void GetCluster(GetClusterCallback callback) override; void ShowJourneysSidePanel(const std::string& query) override; + void OpenUrlsInTabGroup(const std::vector<GURL>&) override; private: // Forward the most relevant history cluster to the callback if any.
diff --git a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler_unittest.cc b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler_unittest.cc index 428d92df..dbb7203 100644 --- a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler_unittest.cc +++ b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_page_handler_unittest.cc
@@ -13,6 +13,10 @@ #include "base/time/time.h" #include "chrome/browser/history_clusters/history_clusters_service_factory.h" #include "chrome/browser/ui/side_panel/history_clusters/history_clusters_tab_helper.h" +#include "chrome/browser/ui/tabs/tab_group_model.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/test/base/browser_with_test_window_test.h" +#include "chrome/test/base/test_browser_window.h" #include "chrome/test/base/testing_profile.h" #include "components/history/core/test/history_service_test_util.h" #include "components/history_clusters/core/history_clusters_types.h" @@ -23,6 +27,7 @@ #include "content/public/test/test_web_contents_factory.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" namespace { @@ -47,34 +52,31 @@ : HistoryClustersTabHelper(web_contents) {} }; -std::unique_ptr<TestingProfile> MakeTestingProfile() { - TestingProfile::Builder profile_builder; - profile_builder.AddTestingFactory( - &HistoryClustersServiceFactory::GetInstance(), - base::BindRepeating([](content::BrowserContext* browser_context) - -> std::unique_ptr<KeyedService> { - return std::make_unique<history_clusters::TestHistoryClustersService>(); - })); - return profile_builder.Build(); -} - } // namespace -class HistoryClustersPageHandlerTest : public testing::Test { +class HistoryClustersPageHandlerTest : public BrowserWithTestWindowTest { public: - HistoryClustersPageHandlerTest() - : profile_(MakeTestingProfile()), - test_history_clusters_service_( - static_cast<history_clusters::TestHistoryClustersService*>( - HistoryClustersServiceFactory::GetForBrowserContext( - profile_.get()))), - web_contents_(factory_.CreateWebContents(profile_.get())), - mock_history_clusters_tab_helper_( - MockHistoryClustersTabHelper::CreateForWebContents( - web_contents_.get())), - handler_(std::make_unique<HistoryClustersPageHandler>( - mojo::PendingReceiver<ntp::history_clusters::mojom::PageHandler>(), - web_contents_)) {} + HistoryClustersPageHandlerTest() = default; + + void SetUp() override { + BrowserWithTestWindowTest::SetUp(); + + test_history_clusters_service_ = + static_cast<history_clusters::TestHistoryClustersService*>( + HistoryClustersServiceFactory::GetForBrowserContext(profile())); + web_contents_ = content::WebContents::Create( + content::WebContents::CreateParams(profile())); + mock_history_clusters_tab_helper_ = + MockHistoryClustersTabHelper::CreateForWebContents(web_contents_.get()); + handler_ = std::make_unique<HistoryClustersPageHandler>( + mojo::PendingReceiver<ntp::history_clusters::mojom::PageHandler>(), + web_contents_.get()); + } + + void TearDown() override { + web_contents_.reset(); + BrowserWithTestWindowTest::TearDown(); + } history_clusters::TestHistoryClustersService& test_history_clusters_service() { @@ -88,13 +90,19 @@ HistoryClustersPageHandler& handler() { return *handler_; } private: - content::BrowserTaskEnvironment task_environment_; - std::unique_ptr<TestingProfile> profile_; + // BrowserWithTestWindowTest: + TestingProfile::TestingFactories GetTestingFactories() override { + return {{&HistoryClustersServiceFactory::GetInstance(), + base::BindRepeating([](content::BrowserContext* context) + -> std::unique_ptr<KeyedService> { + return std::make_unique< + history_clusters::TestHistoryClustersService>(); + })}}; + } raw_ptr<history_clusters::TestHistoryClustersService> test_history_clusters_service_; - content::TestWebContentsFactory factory_; - raw_ptr<content::WebContents> web_contents_; // Weak. Owned by factory_. + std::unique_ptr<content::WebContents> web_contents_; raw_ptr<MockHistoryClustersTabHelper> mock_history_clusters_tab_helper_; std::unique_ptr<HistoryClustersPageHandler> handler_; }; @@ -208,3 +216,18 @@ EXPECT_EQ(kSampleQuery, query); } + +TEST_F(HistoryClustersPageHandlerTest, OpenUrlsInTabGroup) { + const std::vector<GURL> urls = {GURL("http://foo/1"), GURL("http://foo/2"), + GURL("http://www.google.com/search?q=foo")}; + handler().OpenUrlsInTabGroup(urls); + + TabStripModel* tab_strip_model = browser()->tab_strip_model(); + ASSERT_EQ(urls.size(), static_cast<size_t>(tab_strip_model->GetTabCount())); + for (size_t i = 0; i < urls.size(); i++) { + ASSERT_EQ(urls[i], tab_strip_model->GetWebContentsAt(i)->GetURL()); + } + + TabGroupModel* tab_group_model = tab_strip_model->group_model(); + ASSERT_EQ(1u, tab_group_model->ListTabGroups().size()); +}
diff --git a/chrome/browser/policy/messaging_layer/upload/record_handler_impl.cc b/chrome/browser/policy/messaging_layer/upload/record_handler_impl.cc index 58e3b4d..57835fa3 100644 --- a/chrome/browser/policy/messaging_layer/upload/record_handler_impl.cc +++ b/chrome/browser/policy/messaging_layer/upload/record_handler_impl.cc
@@ -12,7 +12,6 @@ #include "base/containers/queue.h" #include "base/functional/bind.h" #include "base/functional/callback.h" -#include "base/functional/callback_forward.h" #include "base/json/json_reader.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" @@ -239,8 +238,7 @@ public: ReportUploader( FileUploadJob::Delegate* delegate, - base::RepeatingCallback<scoped_refptr<StorageModuleInterface>()> - storage_getter, + scoped_refptr<StorageModuleInterface> storage, bool need_encryption_key, std::vector<EncryptedRecord> records, ScopedReservation scoped_reservation, @@ -280,8 +278,7 @@ const raw_ptr<FileUploadJob::Delegate> delegate_; - const base::RepeatingCallback<scoped_refptr<StorageModuleInterface>()> - storage_getter_; + const scoped_refptr<StorageModuleInterface> storage_; bool need_encryption_key_ GUARDED_BY_CONTEXT(sequence_checker_); std::vector<EncryptedRecord> records_ GUARDED_BY_CONTEXT(sequence_checker_); @@ -306,8 +303,7 @@ RecordHandlerImpl::ReportUploader::ReportUploader( FileUploadJob::Delegate* delegate, - base::RepeatingCallback<scoped_refptr<StorageModuleInterface>()> - storage_getter, + scoped_refptr<StorageModuleInterface> storage, bool need_encryption_key, std::vector<EncryptedRecord> records, ScopedReservation scoped_reservation, @@ -317,7 +313,7 @@ : TaskRunnerContext<CompletionResponse>(std::move(completion_cb), sequenced_task_runner), delegate_(delegate), - storage_getter_(storage_getter), + storage_(storage), need_encryption_key_(need_encryption_key), records_(std::move(records)), scoped_reservation_(std::move(scoped_reservation)), @@ -393,7 +389,7 @@ base::ThreadPool::PostTask( FROM_HERE, {base::TaskPriority::BEST_EFFORT, base::MayBlock()}, base::BindOnce(&ProcessFileUpload, base::Unretained(delegate_.get()), - storage_getter_.Run(), priority, std::move(record_copy), + storage_, priority, std::move(record_copy), std::move(resume_cb))); return; // We will resume on `resume_cb` } @@ -667,11 +663,10 @@ RecordHandlerImpl::RecordHandlerImpl( scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner, std::unique_ptr<FileUploadJob::Delegate> delegate, - base::RepeatingCallback<scoped_refptr<StorageModuleInterface>()> - storage_getter) + scoped_refptr<StorageModuleInterface> storage) : sequenced_task_runner_(sequenced_task_runner), delegate_(std::move(delegate)), - storage_getter_(storage_getter) {} + storage_(storage) {} RecordHandlerImpl::~RecordHandlerImpl() = default; @@ -682,7 +677,7 @@ CompletionCallback upload_complete_cb, EncryptionKeyAttachedCallback encryption_key_attached_cb) { Start<RecordHandlerImpl::ReportUploader>( - delegate_.get(), storage_getter_, need_encryption_key, std::move(records), + delegate_.get(), storage_, need_encryption_key, std::move(records), std::move(scoped_reservation), std::move(upload_complete_cb), std::move(encryption_key_attached_cb), sequenced_task_runner_); }
diff --git a/chrome/browser/policy/messaging_layer/upload/record_handler_impl.h b/chrome/browser/policy/messaging_layer/upload/record_handler_impl.h index 5e0eade..7d3e174 100644 --- a/chrome/browser/policy/messaging_layer/upload/record_handler_impl.h +++ b/chrome/browser/policy/messaging_layer/upload/record_handler_impl.h
@@ -9,9 +9,7 @@ #include <utility> #include <vector> -#include "base/functional/bind.h" #include "base/functional/callback.h" -#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h" @@ -35,8 +33,7 @@ RecordHandlerImpl( scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner, std::unique_ptr<FileUploadJob::Delegate> delegate, - base::RepeatingCallback<scoped_refptr<StorageModuleInterface>()> - storage_getter); + scoped_refptr<StorageModuleInterface> storage); ~RecordHandlerImpl() override; // Base class RecordHandler method implementation. @@ -55,8 +52,7 @@ // The next two fields are only used for LOG_UPLOAD events. const std::unique_ptr<FileUploadJob::Delegate> delegate_; - const base::RepeatingCallback<scoped_refptr<StorageModuleInterface>()> - storage_getter_; + scoped_refptr<StorageModuleInterface> storage_; }; } // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/upload/record_handler_impl_unittest.cc b/chrome/browser/policy/messaging_layer/upload/record_handler_impl_unittest.cc index ab6bb4e..8e0d4c4c 100644 --- a/chrome/browser/policy/messaging_layer/upload/record_handler_impl_unittest.cc +++ b/chrome/browser/policy/messaging_layer/upload/record_handler_impl_unittest.cc
@@ -7,7 +7,6 @@ #include <utility> #include "base/base64.h" -#include "base/functional/bind.h" #include "base/functional/callback_helpers.h" #include "base/json/json_writer.h" #include "base/memory/scoped_refptr.h" @@ -30,7 +29,6 @@ #include "components/reporting/proto/synced/record.pb.h" #include "components/reporting/proto/synced/record_constants.pb.h" #include "components/reporting/resources/resource_manager.h" -#include "components/reporting/storage/storage_module_interface.h" #include "components/reporting/storage/test_storage_module.h" #include "components/reporting/util/status.h" #include "components/reporting/util/status_macros.h" @@ -108,14 +106,9 @@ /*force_confirm*/ bool>> { protected: void SetUp() override { - storage_ = base::MakeRefCounted<test::TestStorageModule>(); handler_ = std::make_unique<RecordHandlerImpl>( sequenced_task_runner_, std::make_unique<MockFileUploadDelegate>(), - base::BindRepeating( - [](scoped_refptr<StorageModuleInterface> storage) { - return storage; - }, - storage_)); + base::MakeRefCounted<test::TestStorageModule>()); memory_resource_ = base::MakeRefCounted<ResourceManager>(4u * 1024LLu * 1024LLu); // 4 MiB @@ -123,7 +116,6 @@ void TearDown() override { handler_.reset(); - storage_.reset(); EXPECT_THAT(memory_resource_->GetUsed(), Eq(0uL)); } @@ -137,8 +129,6 @@ ReportingServerConnector::TestEnvironment test_env_; - scoped_refptr<StorageModuleInterface> storage_; - std::unique_ptr<RecordHandlerImpl> handler_; scoped_refptr<ResourceManager> memory_resource_;
diff --git a/chrome/browser/policy/messaging_layer/upload/record_handler_upload_unittest.cc b/chrome/browser/policy/messaging_layer/upload/record_handler_upload_unittest.cc index 8f37ea2..b03cf86 100644 --- a/chrome/browser/policy/messaging_layer/upload/record_handler_upload_unittest.cc +++ b/chrome/browser/policy/messaging_layer/upload/record_handler_upload_unittest.cc
@@ -9,7 +9,6 @@ #include "base/functional/callback_helpers.h" #include "base/json/json_writer.h" #include "base/memory/ptr_util.h" -#include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/strings/strcat.h" @@ -118,25 +117,11 @@ class RecordHandlerUploadTest : public ::testing::Test { protected: void SetUp() override { - storage_ = base::MakeRefCounted<test::TestStorageModule>(); - auto delegate = std::make_unique<MockFileUploadDelegate>(); - delegate_ = delegate.get(); - handler_ = std::make_unique<RecordHandlerImpl>( - sequenced_task_runner_, std::move(delegate), - base::BindRepeating( - [](scoped_refptr<StorageModuleInterface> storage) { - return storage; - }, - storage_)); - memory_resource_ = base::MakeRefCounted<ResourceManager>(4u * 1024LLu * 1024LLu); // 4 MiB } void TearDown() override { - delegate_ = nullptr; - handler_.reset(); - storage_.reset(); EXPECT_THAT(memory_resource_->GetUsed(), Eq(0uL)); } @@ -148,12 +133,6 @@ FileUploadJob::TestEnvironment manager_test_env_; ReportingServerConnector::TestEnvironment test_env_; - scoped_refptr<test::TestStorageModule> storage_; - - raw_ptr<MockFileUploadDelegate> delegate_; - - std::unique_ptr<RecordHandlerImpl> handler_; - scoped_refptr<ResourceManager> memory_resource_; }; @@ -264,7 +243,8 @@ test::TestEvent<SignedEncryptionInfo> encryption_key_attached_event; test::TestEvent<CompletionResponse> responder_event; - EXPECT_CALL(*delegate_, DoInitiate(StrEq("/tmp/file"), Not(IsEmpty()), _)) + auto delegate = std::make_unique<MockFileUploadDelegate>(); + EXPECT_CALL(*delegate, DoInitiate(StrEq("/tmp/file"), Not(IsEmpty()), _)) .WillOnce(Invoke( [](base::StringPiece origin_path, base::StringPiece upload_parameters, base::OnceCallback<void( @@ -272,10 +252,11 @@ std::string /*session_token*/>>)> cb) { std::move(cb).Run(std::make_pair(300L, "ABC")); })); - EXPECT_CALL(*delegate_, DoNextStep).Times(0); - EXPECT_CALL(*delegate_, DoFinalize).Times(0); + EXPECT_CALL(*delegate, DoNextStep).Times(0); + EXPECT_CALL(*delegate, DoFinalize).Times(0); - EXPECT_CALL(*storage_, AddRecord(Eq(Priority::IMMEDIATE), _, _)) + auto storage = base::MakeRefCounted<test::TestStorageModule>(); + EXPECT_CALL(*storage, AddRecord(Eq(Priority::IMMEDIATE), _, _)) .WillOnce(Invoke([](Priority priority, Record record, StorageModuleInterface::EnqueueCallback callback) { EXPECT_TRUE(record.needs_local_unencrypted_copy()); @@ -289,10 +270,12 @@ std::move(callback).Run(Status::StatusOK()); })); - handler_->HandleRecords(/*need_encryption_key=*/false, - std::vector(1, std::move(init_encrypted_record)), - std::move(record_reservation), responder_event.cb(), - encryption_key_attached_event.repeating_cb()); + RecordHandlerImpl handler(sequenced_task_runner_, std::move(delegate), + storage); + handler.HandleRecords(/*need_encryption_key=*/false, + std::vector(1, std::move(init_encrypted_record)), + std::move(record_reservation), responder_event.cb(), + encryption_key_attached_event.repeating_cb()); auto response = responder_event.result(); EXPECT_THAT(response, ResponseEquals(expected_response)); } @@ -315,8 +298,9 @@ test::TestEvent<SignedEncryptionInfo> encryption_key_attached_event; test::TestEvent<CompletionResponse> responder_event; - EXPECT_CALL(*delegate_, DoInitiate).Times(0); - EXPECT_CALL(*delegate_, DoNextStep(Eq(300L), Eq(100L), StrEq("ABC"), _)) + auto delegate = std::make_unique<MockFileUploadDelegate>(); + EXPECT_CALL(*delegate, DoInitiate).Times(0); + EXPECT_CALL(*delegate, DoNextStep(Eq(300L), Eq(100L), StrEq("ABC"), _)) .WillOnce( [](int64_t total, int64_t uploaded, base::StringPiece session_token, base::OnceCallback<void( @@ -325,9 +309,10 @@ std::move(cb).Run( std::make_pair(uploaded + 100L, std::string(session_token))); }); - EXPECT_CALL(*delegate_, DoFinalize).Times(0); + EXPECT_CALL(*delegate, DoFinalize).Times(0); - EXPECT_CALL(*storage_, AddRecord(Eq(Priority::IMMEDIATE), _, _)) + auto storage = base::MakeRefCounted<test::TestStorageModule>(); + EXPECT_CALL(*storage, AddRecord(Eq(Priority::IMMEDIATE), _, _)) .WillOnce(Invoke([](Priority priority, Record record, StorageModuleInterface::EnqueueCallback callback) { EXPECT_TRUE(record.needs_local_unencrypted_copy()); @@ -340,10 +325,12 @@ EXPECT_FALSE(log_upload_event.upload_tracker().has_status()); std::move(callback).Run(Status::StatusOK()); })); - handler_->HandleRecords(/*need_encryption_key=*/false, - std::vector(1, std::move(next_step_encrypted_record)), - std::move(record_reservation), responder_event.cb(), - encryption_key_attached_event.repeating_cb()); + RecordHandlerImpl handler(sequenced_task_runner_, std::move(delegate), + storage); + handler.HandleRecords(/*need_encryption_key=*/false, + std::vector(1, std::move(next_step_encrypted_record)), + std::move(record_reservation), responder_event.cb(), + encryption_key_attached_event.repeating_cb()); auto response = responder_event.result(); EXPECT_THAT(response, ResponseEquals(expected_response)); } @@ -366,9 +353,10 @@ test::TestEvent<SignedEncryptionInfo> encryption_key_attached_event; test::TestEvent<CompletionResponse> responder_event; - EXPECT_CALL(*delegate_, DoInitiate).Times(0); - EXPECT_CALL(*delegate_, DoNextStep).Times(0); - EXPECT_CALL(*delegate_, DoFinalize(StrEq("ABC"), _)) + auto delegate = std::make_unique<MockFileUploadDelegate>(); + EXPECT_CALL(*delegate, DoInitiate).Times(0); + EXPECT_CALL(*delegate, DoNextStep).Times(0); + EXPECT_CALL(*delegate, DoFinalize(StrEq("ABC"), _)) .WillOnce( Invoke([](base::StringPiece session_token, base::OnceCallback<void( @@ -376,7 +364,8 @@ std::move(cb).Run("http://destination"); })); - EXPECT_CALL(*storage_, AddRecord(Eq(Priority::IMMEDIATE), _, _)) + auto storage = base::MakeRefCounted<test::TestStorageModule>(); + EXPECT_CALL(*storage, AddRecord(Eq(Priority::IMMEDIATE), _, _)) .WillOnce(Invoke([](Priority priority, Record record, StorageModuleInterface::EnqueueCallback callback) { EXPECT_FALSE(record.needs_local_unencrypted_copy()); @@ -389,10 +378,12 @@ EXPECT_FALSE(log_upload_event.upload_tracker().has_status()); std::move(callback).Run(Status::StatusOK()); })); - handler_->HandleRecords(/*need_encryption_key=*/false, - std::vector(1, std::move(fin_encrypted_record)), - std::move(record_reservation), responder_event.cb(), - encryption_key_attached_event.repeating_cb()); + RecordHandlerImpl handler(sequenced_task_runner_, std::move(delegate), + storage); + handler.HandleRecords(/*need_encryption_key=*/false, + std::vector(1, std::move(fin_encrypted_record)), + std::move(record_reservation), responder_event.cb(), + encryption_key_attached_event.repeating_cb()); auto response = responder_event.result(); EXPECT_THAT(response, ResponseEquals(expected_response)); } @@ -415,11 +406,13 @@ test::TestEvent<SignedEncryptionInfo> encryption_key_attached_event; test::TestEvent<CompletionResponse> responder_event; - EXPECT_CALL(*delegate_, DoInitiate).Times(0); - EXPECT_CALL(*delegate_, DoNextStep).Times(0); - EXPECT_CALL(*delegate_, DoFinalize).Times(0); + auto delegate = std::make_unique<MockFileUploadDelegate>(); + EXPECT_CALL(*delegate, DoInitiate).Times(0); + EXPECT_CALL(*delegate, DoNextStep).Times(0); + EXPECT_CALL(*delegate, DoFinalize).Times(0); - EXPECT_CALL(*storage_, AddRecord(Eq(Priority::IMMEDIATE), _, _)) + auto storage = base::MakeRefCounted<test::TestStorageModule>(); + EXPECT_CALL(*storage, AddRecord(Eq(Priority::IMMEDIATE), _, _)) .WillOnce(Invoke([](Priority priority, Record record, StorageModuleInterface::EnqueueCallback callback) { EXPECT_FALSE(record.needs_local_unencrypted_copy()); @@ -433,10 +426,12 @@ std::move(callback).Run(Status::StatusOK()); })); - handler_->HandleRecords(/*need_encryption_key=*/false, - std::vector(1, std::move(fin_encrypted_record)), - std::move(record_reservation), responder_event.cb(), - encryption_key_attached_event.repeating_cb()); + RecordHandlerImpl handler(sequenced_task_runner_, std::move(delegate), + storage); + handler.HandleRecords(/*need_encryption_key=*/false, + std::vector(1, std::move(fin_encrypted_record)), + std::move(record_reservation), responder_event.cb(), + encryption_key_attached_event.repeating_cb()); auto response = responder_event.result(); EXPECT_THAT(response, ResponseEquals(expected_response)); } @@ -459,8 +454,9 @@ test::TestEvent<SignedEncryptionInfo> encryption_key_attached_event; test::TestEvent<CompletionResponse> responder_event; - EXPECT_CALL(*delegate_, DoInitiate).Times(0); - EXPECT_CALL(*delegate_, DoNextStep(Eq(300L), Eq(100L), StrEq("ABC"), _)) + auto delegate = std::make_unique<MockFileUploadDelegate>(); + EXPECT_CALL(*delegate, DoInitiate).Times(0); + EXPECT_CALL(*delegate, DoNextStep(Eq(300L), Eq(100L), StrEq("ABC"), _)) .WillOnce( [](int64_t total, int64_t uploaded, base::StringPiece session_token, base::OnceCallback<void( @@ -468,9 +464,10 @@ std::string /*session_token*/>>)> cb) { std::move(cb).Run(Status(error::CANCELLED, "Failure by test")); }); - EXPECT_CALL(*delegate_, DoFinalize).Times(0); + EXPECT_CALL(*delegate, DoFinalize).Times(0); - EXPECT_CALL(*storage_, AddRecord(Eq(Priority::IMMEDIATE), _, _)) + auto storage = base::MakeRefCounted<test::TestStorageModule>(); + EXPECT_CALL(*storage, AddRecord(Eq(Priority::IMMEDIATE), _, _)) .WillOnce(Invoke([](Priority priority, Record record, StorageModuleInterface::EnqueueCallback callback) { EXPECT_FALSE(record.needs_local_unencrypted_copy()); @@ -483,10 +480,12 @@ MatchError(Status(error::CANCELLED, "Failure by test")))); std::move(callback).Run(Status::StatusOK()); })); - handler_->HandleRecords(/*need_encryption_key=*/false, - std::vector(1, std::move(next_step_encrypted_record)), - std::move(record_reservation), responder_event.cb(), - encryption_key_attached_event.repeating_cb()); + RecordHandlerImpl handler(sequenced_task_runner_, std::move(delegate), + storage); + handler.HandleRecords(/*need_encryption_key=*/false, + std::vector(1, std::move(next_step_encrypted_record)), + std::move(record_reservation), responder_event.cb(), + encryption_key_attached_event.repeating_cb()); auto response = responder_event.result(); EXPECT_THAT(response, ResponseEquals(expected_response)); } @@ -506,7 +505,8 @@ .WillRepeatedly(MakeUploadEncryptedReportAction( std::move(ResponseBuilder().SetSuccess(true)))); - EXPECT_CALL(*delegate_, DoInitiate(StrEq("/tmp/file"), Not(IsEmpty()), _)) + auto delegate = std::make_unique<MockFileUploadDelegate>(); + EXPECT_CALL(*delegate, DoInitiate(StrEq("/tmp/file"), Not(IsEmpty()), _)) .WillOnce(Invoke( [](base::StringPiece origin_path, base::StringPiece upload_parameters, base::OnceCallback<void( @@ -514,10 +514,11 @@ std::string /*session_token*/>>)> cb) { std::move(cb).Run(std::make_pair(300L, "ABC")); })); - EXPECT_CALL(*delegate_, DoNextStep).Times(0); - EXPECT_CALL(*delegate_, DoFinalize).Times(0); + EXPECT_CALL(*delegate, DoNextStep).Times(0); + EXPECT_CALL(*delegate, DoFinalize).Times(0); - EXPECT_CALL(*storage_, AddRecord(Eq(Priority::IMMEDIATE), _, _)) + auto storage = base::MakeRefCounted<test::TestStorageModule>(); + EXPECT_CALL(*storage, AddRecord(Eq(Priority::IMMEDIATE), _, _)) .Times(kNumTestRecords) .WillRepeatedly( Invoke([](Priority priority, Record record, @@ -533,15 +534,17 @@ std::move(callback).Run(Status::StatusOK()); })); + RecordHandlerImpl handler(sequenced_task_runner_, std::move(delegate), + storage); for (size_t i = 0; i < kNumTestRecords; ++i) { ScopedReservation record_reservation(init_encrypted_record.ByteSizeLong(), memory_resource_); test::TestEvent<SignedEncryptionInfo> encryption_key_attached_event; test::TestEvent<CompletionResponse> responder_event; - handler_->HandleRecords(/*need_encryption_key=*/false, - std::vector(1, init_encrypted_record), - std::move(record_reservation), responder_event.cb(), - encryption_key_attached_event.repeating_cb()); + handler.HandleRecords(/*need_encryption_key=*/false, + std::vector(1, init_encrypted_record), + std::move(record_reservation), responder_event.cb(), + encryption_key_attached_event.repeating_cb()); auto response = responder_event.result(); EXPECT_THAT(response, ResponseEquals(expected_response)); init_encrypted_record.mutable_sequence_information()->set_sequencing_id( @@ -567,8 +570,9 @@ .WillRepeatedly(MakeUploadEncryptedReportAction( std::move(ResponseBuilder().SetSuccess(true)))); - EXPECT_CALL(*delegate_, DoInitiate).Times(0); - EXPECT_CALL(*delegate_, DoNextStep(Eq(300L), Eq(100L), StrEq("ABC"), _)) + auto delegate = std::make_unique<MockFileUploadDelegate>(); + EXPECT_CALL(*delegate, DoInitiate).Times(0); + EXPECT_CALL(*delegate, DoNextStep(Eq(300L), Eq(100L), StrEq("ABC"), _)) .WillOnce( [](int64_t total, int64_t uploaded, base::StringPiece session_token, base::OnceCallback<void( @@ -577,9 +581,10 @@ std::move(cb).Run( std::make_pair(uploaded + 100L, std::string(session_token))); }); - EXPECT_CALL(*delegate_, DoFinalize).Times(0); + EXPECT_CALL(*delegate, DoFinalize).Times(0); - EXPECT_CALL(*storage_, AddRecord(Eq(Priority::IMMEDIATE), _, _)) + auto storage = base::MakeRefCounted<test::TestStorageModule>(); + EXPECT_CALL(*storage, AddRecord(Eq(Priority::IMMEDIATE), _, _)) .Times(kNumTestRecords) .WillRepeatedly( Invoke([](Priority priority, Record record, @@ -595,15 +600,17 @@ std::move(callback).Run(Status::StatusOK()); })); + RecordHandlerImpl handler(sequenced_task_runner_, std::move(delegate), + storage); for (size_t i = 0; i < kNumTestRecords; ++i) { ScopedReservation record_reservation( next_step_encrypted_record.ByteSizeLong(), memory_resource_); test::TestEvent<SignedEncryptionInfo> encryption_key_attached_event; test::TestEvent<CompletionResponse> responder_event; - handler_->HandleRecords(/*need_encryption_key=*/false, - std::vector(1, next_step_encrypted_record), - std::move(record_reservation), responder_event.cb(), - encryption_key_attached_event.repeating_cb()); + handler.HandleRecords(/*need_encryption_key=*/false, + std::vector(1, next_step_encrypted_record), + std::move(record_reservation), responder_event.cb(), + encryption_key_attached_event.repeating_cb()); auto response = responder_event.result(); EXPECT_THAT(response, ResponseEquals(expected_response)); next_step_encrypted_record.mutable_sequence_information() @@ -631,9 +638,10 @@ .WillRepeatedly(MakeUploadEncryptedReportAction( std::move(ResponseBuilder().SetSuccess(true)))); - EXPECT_CALL(*delegate_, DoInitiate).Times(0); - EXPECT_CALL(*delegate_, DoNextStep).Times(0); - EXPECT_CALL(*delegate_, DoFinalize(StrEq("ABC"), _)) + auto delegate = std::make_unique<MockFileUploadDelegate>(); + EXPECT_CALL(*delegate, DoInitiate).Times(0); + EXPECT_CALL(*delegate, DoNextStep).Times(0); + EXPECT_CALL(*delegate, DoFinalize(StrEq("ABC"), _)) .WillOnce( Invoke([](base::StringPiece session_token, base::OnceCallback<void( @@ -641,7 +649,8 @@ std::move(cb).Run("http://destination"); })); - EXPECT_CALL(*storage_, AddRecord(Eq(Priority::IMMEDIATE), _, _)) + auto storage = base::MakeRefCounted<test::TestStorageModule>(); + EXPECT_CALL(*storage, AddRecord(Eq(Priority::IMMEDIATE), _, _)) .Times(kNumTestRecords) .WillRepeatedly( Invoke([](Priority priority, Record record, @@ -658,15 +667,17 @@ std::move(callback).Run(Status::StatusOK()); })); + RecordHandlerImpl handler(sequenced_task_runner_, std::move(delegate), + storage); for (size_t i = 0; i < kNumTestRecords; ++i) { ScopedReservation record_reservation(fin_encrypted_record.ByteSizeLong(), memory_resource_); test::TestEvent<SignedEncryptionInfo> encryption_key_attached_event; test::TestEvent<CompletionResponse> responder_event; - handler_->HandleRecords(/*need_encryption_key=*/false, - std::vector(1, fin_encrypted_record), - std::move(record_reservation), responder_event.cb(), - encryption_key_attached_event.repeating_cb()); + handler.HandleRecords(/*need_encryption_key=*/false, + std::vector(1, fin_encrypted_record), + std::move(record_reservation), responder_event.cb(), + encryption_key_attached_event.repeating_cb()); auto response = responder_event.result(); EXPECT_THAT(response, ResponseEquals(expected_response)); fin_encrypted_record.mutable_sequence_information()->set_sequencing_id(
diff --git a/chrome/browser/policy/messaging_layer/upload/upload_client.cc b/chrome/browser/policy/messaging_layer/upload/upload_client.cc index 47fe50d..7b6659f 100644 --- a/chrome/browser/policy/messaging_layer/upload/upload_client.cc +++ b/chrome/browser/policy/messaging_layer/upload/upload_client.cc
@@ -4,7 +4,6 @@ #include "chrome/browser/policy/messaging_layer/upload/upload_client.h" -#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/task/sequenced_task_runner.h" #include "chrome/browser/policy/messaging_layer/upload/dm_server_uploader.h" @@ -52,9 +51,7 @@ handler_(std::make_unique<RecordHandlerImpl>( sequenced_task_runner_, std::make_unique<FileUploadDelegate>(), - base::BindRepeating([]() { - return ReportQueueProvider::GetInstance()->storage(); - }))) {} + ReportQueueProvider::GetInstance()->storage())) {} UploadClient::~UploadClient() = default;
diff --git a/chrome/browser/policy/messaging_layer/upload/upload_client.h b/chrome/browser/policy/messaging_layer/upload/upload_client.h index 6b560f1..dc90550 100644 --- a/chrome/browser/policy/messaging_layer/upload/upload_client.h +++ b/chrome/browser/policy/messaging_layer/upload/upload_client.h
@@ -8,7 +8,7 @@ #include <memory> #include <vector> -#include "base/task/sequenced_task_runner.h" +#include "base/task/task_runner.h" #include "chrome/browser/policy/messaging_layer/upload/dm_server_uploader.h" #include "components/reporting/proto/synced/record.pb.h" #include "components/reporting/resources/resource_manager.h"
diff --git a/chrome/browser/policy/messaging_layer/upload/upload_provider.cc b/chrome/browser/policy/messaging_layer/upload/upload_provider.cc index 0d7b6d7..f23143b 100644 --- a/chrome/browser/policy/messaging_layer/upload/upload_provider.cc +++ b/chrome/browser/policy/messaging_layer/upload/upload_provider.cc
@@ -104,8 +104,7 @@ // Upload client (protected by sequenced task runner). Once set, is used // repeatedly. - std::unique_ptr<UploadClient> upload_client_ - GUARDED_BY_CONTEXT(sequenced_task_checker_); + std::unique_ptr<UploadClient> upload_client_; // Keep this last so that all weak pointers will be invalidated at the // beginning of destruction.
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editable_text_base.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editable_text_base.js index 304d47c..79280610 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editable_text_base.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editable_text_base.js
@@ -261,7 +261,7 @@ if (opt_triggeredByUser === true) { queueMode = QueueMode.CATEGORY_FLUSH; } - const props = opt_personality || new TtsSpeechProperties(); + const props = opt_personality ?? new TtsSpeechProperties(); props.category = TtsCategory.NAV; this.tts.speak(str, queueMode, props); }
diff --git a/chrome/browser/resources/settings/chromeos/device_page/per_device_keyboard_remap_keys.ts b/chrome/browser/resources/settings/chromeos/device_page/per_device_keyboard_remap_keys.ts index 82bc9de0..daad04a 100644 --- a/chrome/browser/resources/settings/chromeos/device_page/per_device_keyboard_remap_keys.ts +++ b/chrome/browser/resources/settings/chromeos/device_page/per_device_keyboard_remap_keys.ts
@@ -212,6 +212,22 @@ }); } + onKeyboardListUpdated(keyboards: Keyboard[]): void { + if (Router.getInstance().currentRoute !== + routes.PER_DEVICE_KEYBOARD_REMAP_KEYS) { + return; + } + + const updatedKeyboard = + keyboards.find(keyboard => keyboard.id === this.keyboard.id); + + // If the keyboard is disconnected in remapping page, go back to + // per_device_keyboard page. + if (!updatedKeyboard) { + Router.getInstance().navigateTo(routes.PER_DEVICE_KEYBOARD); + } + } + /** * Initializes the dropdown menu options for remapping keys. */
diff --git a/chrome/browser/safe_browsing/extension_telemetry/extension_telemetry_service_unittest.cc b/chrome/browser/safe_browsing/extension_telemetry/extension_telemetry_service_unittest.cc index 94a9055..03d38025 100644 --- a/chrome/browser/safe_browsing/extension_telemetry/extension_telemetry_service_unittest.cc +++ b/chrome/browser/safe_browsing/extension_telemetry/extension_telemetry_service_unittest.cc
@@ -189,7 +189,7 @@ extension_prefs_->UpdateExtensionPref( extension_id, "last_update_time", - std::make_unique<base::Value>(base::TimeToValue(base::Time::Now()))); + base::Value(base::TimeToValue(base::Time::Now()))); } void ExtensionTelemetryServiceTest::UnregisterExtensionWithExtensionService(
diff --git a/chrome/browser/safe_browsing/incident_reporting/extension_data_collection_unittest.cc b/chrome/browser/safe_browsing/incident_reporting/extension_data_collection_unittest.cc index 6e3add4..ed3b89b 100644 --- a/chrome/browser/safe_browsing/incident_reporting/extension_data_collection_unittest.cc +++ b/chrome/browser/safe_browsing/incident_reporting/extension_data_collection_unittest.cc
@@ -102,10 +102,9 @@ extension_prefs_->UpdateExtensionPref( extension_id, "last_update_time", - std::make_unique<base::Value>( - base::NumberToString(install_time.ToInternalValue()))); - extension_prefs_->UpdateExtensionPref( - extension_id, "state", std::make_unique<base::Value>(state_value)); + base::Value(base::NumberToString(install_time.ToInternalValue()))); + extension_prefs_->UpdateExtensionPref(extension_id, "state", + base::Value(state_value)); } void ExtensionTestingProfile::SetInstallSignature(
diff --git a/chrome/browser/speech/extension_api/tts_engine_extension_api.cc b/chrome/browser/speech/extension_api/tts_engine_extension_api.cc index de071675..c48b955e 100644 --- a/chrome/browser/speech/extension_api/tts_engine_extension_api.cc +++ b/chrome/browser/speech/extension_api/tts_engine_extension_api.cc
@@ -446,9 +446,8 @@ // Save these voices to the extension's prefs if they validated. auto* extension_prefs = extensions::ExtensionPrefs::Get(browser_context()); - extension_prefs->UpdateExtensionPref( - extension()->id(), kPrefTtsVoices, - base::Value::ToUniquePtrValue(voices_data.Clone())); + extension_prefs->UpdateExtensionPref(extension()->id(), kPrefTtsVoices, + voices_data.Clone()); // Notify that voices have changed. content::TtsController::GetInstance()->VoicesChanged();
diff --git a/chrome/browser/ssl/https_only_mode_browsertest.cc b/chrome/browser/ssl/https_only_mode_browsertest.cc index fc456620..3aabdc63 100644 --- a/chrome/browser/ssl/https_only_mode_browsertest.cc +++ b/chrome/browser/ssl/https_only_mode_browsertest.cc
@@ -1017,6 +1017,28 @@ contents)); } +// Tests that if HTTPS-First Mode is disabled, metrics are recorded on +// upgrade-eligible navigations. +IN_PROC_BROWSER_TEST_F(HttpsOnlyModeBrowserTest, + MetricsRecordedWhenHFMDisabled) { + GURL http_url = http_server()->GetURL("foo.test", "/simple.html"); + + // Ensure HTTPS-First Mode is off. + SetPref(false); + + // NavigateToURL() returns `true` because the navigation is not redirected. + auto* contents = browser()->tab_strip_model()->GetActiveWebContents(); + EXPECT_TRUE(content::NavigateToURL(contents, http_url)); + + EXPECT_EQ(http_url, contents->GetLastCommittedURL()); + EXPECT_FALSE(chrome_browser_interstitials::IsShowingInterstitial(contents)); + + // Verify that navigation event metrics were correctly recorded. + histograms()->ExpectTotalCount(kEventHistogram, 1); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeNotAttempted, + 1); +} + // A simple test fixture that ensures the kHttpsOnlyMode feature is enabled and // constructs a HistogramTester (so that it gets initialized before browser // startup). Used for testing pref tracking logic.
diff --git a/chrome/browser/ssl/https_only_mode_navigation_throttle.cc b/chrome/browser/ssl/https_only_mode_navigation_throttle.cc index 1908b0a..677b9d5 100644 --- a/chrome/browser/ssl/https_only_mode_navigation_throttle.cc +++ b/chrome/browser/ssl/https_only_mode_navigation_throttle.cc
@@ -19,6 +19,7 @@ #include "net/base/net_errors.h" using security_interstitials::https_only_mode::Event; +using security_interstitials::https_only_mode::RecordHttpsFirstModeNavigation; namespace { @@ -26,13 +27,6 @@ // showing the HTTPS-Only Mode interstitial. base::TimeDelta g_fallback_delay = base::Seconds(3); -// Helper to record an HTTPS-First Mode navigation event. -void RecordHttpsFirstModeNavigation( - security_interstitials::https_only_mode::Event event) { - base::UmaHistogramEnumeration( - security_interstitials::https_only_mode::kEventHistogram, event); -} - } // namespace // static
diff --git a/chrome/browser/ssl/https_only_mode_upgrade_interceptor.cc b/chrome/browser/ssl/https_only_mode_upgrade_interceptor.cc index c055958..12be8068 100644 --- a/chrome/browser/ssl/https_only_mode_upgrade_interceptor.cc +++ b/chrome/browser/ssl/https_only_mode_upgrade_interceptor.cc
@@ -16,6 +16,7 @@ #include "components/content_settings/core/common/content_settings_pattern.h" #include "components/prefs/pref_service.h" #include "components/security_interstitials/content/stateful_ssl_host_state_delegate.h" +#include "components/security_interstitials/core/https_only_mode_metrics.h" #include "content/public/browser/storage_partition.h" #include "content/public/browser/web_contents.h" #include "extensions/buildflags/buildflags.h" @@ -31,6 +32,9 @@ #include "components/guest_view/browser/guest_view_base.h" #endif // BUILDFLAG(ENABLE_EXTENSIONS) +using security_interstitials::https_only_mode::Event; +using security_interstitials::https_only_mode::RecordHttpsFirstModeNavigation; + namespace { // Used to handle upgrading/fallback for tests using EmbeddedTestServer which @@ -77,13 +81,6 @@ return; } - // Don't upgrade if the HTTPS-Only Mode setting isn't enabled. - auto* prefs = profile->GetPrefs(); - if (!prefs || !prefs->GetBoolean(prefs::kHttpsOnlyModeEnabled)) { - std::move(callback).Run({}); - return; - } - auto* web_contents = content::WebContents::FromFrameTreeNodeId(frame_tree_node_id_); // Could be null if the FrameTreeNode's RenderFrameHost is shutting down. @@ -101,7 +98,20 @@ } #endif // BUILDFLAG(ENABLE_EXTENSIONS) + auto* tab_helper = HttpsOnlyModeTabHelper::FromWebContents(web_contents); + if (!tab_helper) { + HttpsOnlyModeTabHelper::CreateForWebContents(web_contents); + tab_helper = HttpsOnlyModeTabHelper::FromWebContents(web_contents); + } + + // If the navigation doesn't meet upgrade criteria, don't intercept it. + if (!ShouldCreateLoader(tentative_resource_request, tab_helper)) { + std::move(callback).Run({}); + return; + } + // Check if the hostname is in the enterprise policy HTTP allowlist. + PrefService* prefs = profile->GetPrefs(); if (IsHostnameInAllowlist(tentative_resource_request.url, prefs->GetList(prefs::kHttpAllowlist))) { std::move(callback).Run({}); @@ -118,7 +128,7 @@ auto query_complete_callback = base::BindOnce( &HttpsOnlyModeUpgradeInterceptor::MaybeCreateLoaderOnHstsQueryCompleted, weak_factory_.GetWeakPtr(), tentative_resource_request, browser_context, - std::move(callback), profile, prefs, web_contents); + std::move(callback), profile, web_contents); network::mojom::NetworkContext* network_context = profile->GetDefaultStoragePartition()->GetNetworkContext(); network_context->IsHSTSActiveForHost( @@ -133,7 +143,6 @@ content::BrowserContext* browser_context, content::URLLoaderRequestInterceptor::LoaderCallback callback, Profile* profile, - PrefService* prefs, content::WebContents* web_contents, bool is_hsts_active_for_host) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -144,54 +153,51 @@ return; } + // If the navigation is a fallback, redirect to the original URL. auto* tab_helper = HttpsOnlyModeTabHelper::FromWebContents(web_contents); - if (!tab_helper) { - HttpsOnlyModeTabHelper::CreateForWebContents(web_contents); - tab_helper = HttpsOnlyModeTabHelper::FromWebContents(web_contents); - } - if (ShouldCreateLoader(tentative_resource_request, tab_helper)) { - // If the navigation is a fallback, redirect to the original URL. - if (tab_helper->is_navigation_fallback()) { - tab_helper->set_is_navigation_fallback(false); - CreateHttpsRedirectLoader(tentative_resource_request, - std::move(callback)); - redirect_url_loader_->StartRedirectToOriginalURL( - tab_helper->fallback_url()); - return; - } - - // Don't upgrade navigation if it is allowlisted. - StatefulSSLHostStateDelegate* state = - static_cast<StatefulSSLHostStateDelegate*>( - profile->GetSSLHostStateDelegate()); - // StatefulSSLHostStateDelegate can be null during tests. - auto* storage_partition = - web_contents->GetPrimaryMainFrame()->GetStoragePartition(); - if (state && - state->IsHttpAllowedForHost(tentative_resource_request.url.host(), - storage_partition)) { - // Renew the allowlist expiration for this host as the user is still - // actively using it. This means that the allowlist entry will stay - // valid until the user stops visiting this host for the entire - // expiration period (one week). - state->AllowHttpForHost(tentative_resource_request.url.host(), - storage_partition); - - std::move(callback).Run({}); - return; - } - - // Mark navigation as upgraded. - tab_helper->set_is_navigation_upgraded(true); - tab_helper->set_fallback_url(tentative_resource_request.url); + if (tab_helper->is_navigation_fallback()) { + tab_helper->set_is_navigation_fallback(false); CreateHttpsRedirectLoader(tentative_resource_request, std::move(callback)); - // `redirect_url_loader_` can be null after this call. - redirect_url_loader_->StartRedirectToHttps(frame_tree_node_id_); + redirect_url_loader_->StartRedirectToOriginalURL( + tab_helper->fallback_url()); return; } - // Navigation doesn't meet upgrade criteria, so don't intercept it. - std::move(callback).Run({}); + // Don't upgrade if HTTPS-Only Mode isn't enabled, but record metrics. + auto* prefs = profile->GetPrefs(); + if (!prefs || !prefs->GetBoolean(prefs::kHttpsOnlyModeEnabled)) { + RecordHttpsFirstModeNavigation(Event::kUpgradeNotAttempted); + std::move(callback).Run({}); + return; + } + + // Don't upgrade navigation if it is allowlisted. + StatefulSSLHostStateDelegate* state = + static_cast<StatefulSSLHostStateDelegate*>( + profile->GetSSLHostStateDelegate()); + // StatefulSSLHostStateDelegate can be null during tests. + auto* storage_partition = + web_contents->GetPrimaryMainFrame()->GetStoragePartition(); + if (state && state->IsHttpAllowedForHost( + tentative_resource_request.url.host(), storage_partition)) { + // Renew the allowlist expiration for this host as the user is still + // actively using it. This means that the allowlist entry will stay + // valid until the user stops visiting this host for the entire + // expiration period (one week). + state->AllowHttpForHost(tentative_resource_request.url.host(), + storage_partition); + + std::move(callback).Run({}); + return; + } + + // Mark navigation as upgraded. + tab_helper->set_is_navigation_upgraded(true); + tab_helper->set_fallback_url(tentative_resource_request.url); + CreateHttpsRedirectLoader(tentative_resource_request, std::move(callback)); + // `redirect_url_loader_` can be null after this call. + redirect_url_loader_->StartRedirectToHttps(frame_tree_node_id_); + return; } // static
diff --git a/chrome/browser/ssl/https_only_mode_upgrade_interceptor.h b/chrome/browser/ssl/https_only_mode_upgrade_interceptor.h index 4609ce9a..813d9d6c 100644 --- a/chrome/browser/ssl/https_only_mode_upgrade_interceptor.h +++ b/chrome/browser/ssl/https_only_mode_upgrade_interceptor.h
@@ -18,7 +18,6 @@ class WebContents; } // namespace content -class PrefService; class Profile; // A class that attempts to intercept HTTP navigation requests and redirect them @@ -47,7 +46,6 @@ content::BrowserContext* browser_context, content::URLLoaderRequestInterceptor::LoaderCallback callback, Profile* profile, - PrefService* prefs, content::WebContents* web_contents, bool is_hsts_active_for_host);
diff --git a/chrome/browser/ssl/https_upgrades_browsertest.cc b/chrome/browser/ssl/https_upgrades_browsertest.cc index 26ab57d6..ce5e614e 100644 --- a/chrome/browser/ssl/https_upgrades_browsertest.cc +++ b/chrome/browser/ssl/https_upgrades_browsertest.cc
@@ -50,10 +50,13 @@ // vs. HTTPS-Upgrades. These get parameterized so the tests run under both // versions on their own as well as when both HTTPS Upgrades and HTTPS-First // Mode are enabled (to test any interactions between the two upgrade modes). +// The code also needs to be able to run safely when v2 is enabled, but neither +// HTTPS-First Mode nor HTTPS-Upgrades are enabled. enum class HttpsUpgradesTestType { kHttpsFirstModeOnly, kHttpsUpgradesOnly, - kBoth + kBoth, + kNeither }; // Tests for the v2 implementation of HTTPS-First Mode. @@ -65,7 +68,8 @@ ~HttpsUpgradesBrowserTest() override = default; void SetUp() override { - if (GetParam() != HttpsUpgradesTestType::kHttpsFirstModeOnly) { + if (GetParam() == HttpsUpgradesTestType::kHttpsUpgradesOnly || + GetParam() == HttpsUpgradesTestType::kBoth) { feature_list_.InitWithFeatures( /*enabled_features=*/{features::kHttpsFirstModeV2, features::kHttpsUpgrades}, @@ -100,9 +104,9 @@ HttpsUpgradesInterceptor::SetHttpsPortForTesting(https_server()->port()); HttpsUpgradesInterceptor::SetHttpPortForTesting(http_server()->port()); - // For the kHttpsUpgradesOnly test variant, don't enable the HTTPS-First - // Mode pref. - if (GetParam() == HttpsUpgradesTestType::kHttpsUpgradesOnly) { + // Only enable the HTTPS-First Mode pref when the test config calls for it. + if (GetParam() == HttpsUpgradesTestType::kHttpsUpgradesOnly || + GetParam() == HttpsUpgradesTestType::kNeither) { SetPref(false); } else { SetPref(true); @@ -159,7 +163,13 @@ // trigger (i.e., for fallback HTTP navigations when HTTPS-First Mode is // enabled). bool IsHttpInterstitialEnabled() const { - return GetParam() != HttpsUpgradesTestType::kHttpsUpgradesOnly; + return (GetParam() == HttpsUpgradesTestType::kHttpsFirstModeOnly || + GetParam() == HttpsUpgradesTestType::kBoth); + } + + // Whether the tests should run steps that assume HTTP upgrading will trigger. + bool IsHttpUpgradingEnabled() const { + return GetParam() != HttpsUpgradesTestType::kNeither; } net::EmbeddedTestServer* http_server() { return &http_server_; } @@ -179,7 +189,8 @@ HttpsUpgradesBrowserTest, ::testing::Values(HttpsUpgradesTestType::kHttpsFirstModeOnly, HttpsUpgradesTestType::kHttpsUpgradesOnly, - HttpsUpgradesTestType::kBoth), + HttpsUpgradesTestType::kBoth, + HttpsUpgradesTestType::kNeither), // Map param to a human-readable string for better test output. [](testing::TestParamInfo<HttpsUpgradesTestType> input_type) -> std::string { @@ -190,11 +201,14 @@ return "HttpsUpgradesOnly"; case HttpsUpgradesTestType::kBoth: return "BothHttpsFirstModeAndHttpsUpgrades"; + case HttpsUpgradesTestType::kNeither: + return "NeitherHttpsFirstModeNorHttpsUpgrades"; } }); // If the user navigates to an HTTP URL for a site that supports HTTPS, the -// navigation should end up on the HTTPS version of the URL. +// navigation should end up on the HTTPS version of the URL if upgrading is +// enabled. IN_PROC_BROWSER_TEST_P(HttpsUpgradesBrowserTest, UrlWithHttpScheme_ShouldUpgrade) { GURL http_url = http_server()->GetURL("foo.test", "/simple.html"); @@ -204,17 +218,29 @@ // redirected to HTTPS. auto* contents = browser()->tab_strip_model()->GetActiveWebContents(); content::TestNavigationObserver nav_observer(contents, 1); - EXPECT_FALSE(content::NavigateToURL(contents, http_url)); + if (IsHttpUpgradingEnabled()) { + EXPECT_FALSE(content::NavigateToURL(contents, http_url)); + } else { + EXPECT_TRUE(content::NavigateToURL(contents, http_url)); + } nav_observer.Wait(); EXPECT_TRUE(nav_observer.last_navigation_succeeded()); - EXPECT_EQ(https_url, contents->GetLastCommittedURL()); EXPECT_FALSE(chrome_browser_interstitials::IsShowingInterstitial(contents)); - // Verify that navigation event metrics were correctly recorded. - histograms()->ExpectTotalCount(kEventHistogram, 2); - histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeAttempted, 1); - histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeSucceeded, 1); + if (IsHttpUpgradingEnabled()) { + EXPECT_EQ(https_url, contents->GetLastCommittedURL()); + histograms()->ExpectTotalCount(kEventHistogram, 2); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeAttempted, + 1); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeSucceeded, + 1); + } else { + EXPECT_EQ(http_url, contents->GetLastCommittedURL()); + histograms()->ExpectTotalCount(kEventHistogram, 1); + histograms()->ExpectBucketCount(kEventHistogram, + Event::kUpgradeNotAttempted, 1); + } } // If the user navigates to an HTTPS URL for a site that supports HTTPS, the @@ -281,10 +307,18 @@ } // Verify that navigation event metrics were correctly recorded. - histograms()->ExpectTotalCount(kEventHistogram, 3); - histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeAttempted, 1); - histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeFailed, 1); - histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeCertError, 1); + if (IsHttpUpgradingEnabled()) { + histograms()->ExpectTotalCount(kEventHistogram, 3); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeAttempted, + 1); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeFailed, 1); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeCertError, + 1); + } else { + histograms()->ExpectTotalCount(kEventHistogram, 1); + histograms()->ExpectBucketCount(kEventHistogram, + Event::kUpgradeNotAttempted, 1); + } } // If the user triggers an HTTPS-Only Mode interstitial for a host and then @@ -318,16 +352,28 @@ EXPECT_EQ(http_url, contents->GetLastCommittedURL()); // Verify that navigation event metrics were correctly recorded. - histograms()->ExpectTotalCount(kEventHistogram, 3); - histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeAttempted, 1); - histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeFailed, 1); - histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeCertError, 1); + if (IsHttpUpgradingEnabled()) { + histograms()->ExpectTotalCount(kEventHistogram, 3); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeAttempted, + 1); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeFailed, 1); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeCertError, + 1); + } else { + histograms()->ExpectTotalCount(kEventHistogram, 1); + histograms()->ExpectBucketCount(kEventHistogram, + Event::kUpgradeNotAttempted, 1); + } } // If the upgraded HTTPS URL is not available due to a net error, it should // trigger the HTTPS-Only Mode interstitial and offer fallback. IN_PROC_BROWSER_TEST_P(HttpsUpgradesBrowserTest, NetErrorOnUpgrade_ShouldInterstitial) { + // This test is only interesting when HTTPS Upgrading occurs. + if (!IsHttpUpgradingEnabled()) { + return; + } GURL http_url = http_server()->GetURL("foo.test", "/close-socket"); GURL https_url = https_server()->GetURL("foo.test", "/close-socket"); @@ -392,7 +438,13 @@ } // Verify that navigation event metrics were recorded for the main frame. - histograms()->ExpectTotalCount(kEventHistogram, 3); + if (IsHttpUpgradingEnabled()) { + histograms()->ExpectTotalCount(kEventHistogram, 3); + } else { + histograms()->ExpectTotalCount(kEventHistogram, 1); + histograms()->ExpectBucketCount(kEventHistogram, + Event::kUpgradeNotAttempted, 1); + } // Navigate the iframe to `iframe_url`. It should successfully navigate and // not get upgraded to HTTPS as the hostname is now in the allowlist. @@ -402,7 +454,13 @@ EXPECT_EQ(iframe_url, nav_observer.last_navigation_url()); // Verify that no new navigation event metrics were recorded for the subframe. - histograms()->ExpectTotalCount(kEventHistogram, 3); + if (IsHttpUpgradingEnabled()) { + histograms()->ExpectTotalCount(kEventHistogram, 3); + } else { + histograms()->ExpectTotalCount(kEventHistogram, 1); + histograms()->ExpectBucketCount(kEventHistogram, + Event::kUpgradeNotAttempted, 1); + } } // Tests that a navigation to the HTTP version of a site with an HTTPS version @@ -463,7 +521,13 @@ } // Verify that navigation event metrics were recorded for the initial page. - histograms()->ExpectTotalCount(kEventHistogram, 3); + if (IsHttpUpgradingEnabled()) { + histograms()->ExpectTotalCount(kEventHistogram, 3); + } else { + histograms()->ExpectTotalCount(kEventHistogram, 1); + histograms()->ExpectBucketCount(kEventHistogram, + Event::kUpgradeNotAttempted, 1); + } // Submit the form and wait for the navigation to complete. content::TestNavigationObserver nav_observer(contents, 1); @@ -477,7 +541,13 @@ // Verify that no new navigation event metrics were recorded for the POST // navigation. - histograms()->ExpectTotalCount(kEventHistogram, 3); + if (IsHttpUpgradingEnabled()) { + histograms()->ExpectTotalCount(kEventHistogram, 3); + } else { + histograms()->ExpectTotalCount(kEventHistogram, 1); + histograms()->ExpectBucketCount(kEventHistogram, + Event::kUpgradeNotAttempted, 1); + } } // Tests that if an HTTPS navigation redirects to HTTP on a different host, it @@ -499,13 +569,22 @@ nav_observer.Wait(); EXPECT_TRUE(nav_observer.last_navigation_succeeded()); - EXPECT_TRUE(contents->GetLastCommittedURL().SchemeIs(url::kHttpsScheme)); - EXPECT_EQ("bar.test", contents->GetLastCommittedURL().host()); - // Verify that navigation event metrics were correctly recorded. - histograms()->ExpectTotalCount(kEventHistogram, 2); - histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeAttempted, 1); - histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeSucceeded, 1); + if (IsHttpUpgradingEnabled()) { + EXPECT_TRUE(contents->GetLastCommittedURL().SchemeIs(url::kHttpsScheme)); + histograms()->ExpectTotalCount(kEventHistogram, 2); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeAttempted, + 1); + histograms()->ExpectBucketCount(kEventHistogram, Event::kUpgradeSucceeded, + 1); + } else { + EXPECT_TRUE(contents->GetLastCommittedURL().SchemeIs(url::kHttpScheme)); + histograms()->ExpectTotalCount(kEventHistogram, 1); + histograms()->ExpectBucketCount(kEventHistogram, + Event::kUpgradeNotAttempted, 1); + } + + EXPECT_EQ("bar.test", contents->GetLastCommittedURL().host()); } // Tests that navigating to an HTTPS page that downgrades to HTTP on the same @@ -629,6 +708,10 @@ // state). IN_PROC_BROWSER_TEST_P(HttpsUpgradesBrowserTest, HttpsUpgradeWithBrokenSSL_ShouldTriggerSSLInterstitial) { + // If HTTPS upgrading isn't enabled, skip over this test. + if (!IsHttpUpgradingEnabled()) { + return; + } // Set up a new test server instance so it can have a custom handler that // redirects to the HTTPS server. net::EmbeddedTestServer upgrading_server{net::EmbeddedTestServer::TYPE_HTTP}; @@ -915,8 +998,11 @@ } EXPECT_EQ(http_url, contents->GetLastCommittedURL()); - EXPECT_TRUE(state->IsHttpAllowedForHost( - http_url.host(), contents->GetPrimaryMainFrame()->GetStoragePartition())); + if (IsHttpUpgradingEnabled()) { + EXPECT_TRUE(state->IsHttpAllowedForHost( + http_url.host(), + contents->GetPrimaryMainFrame()->GetStoragePartition())); + } // Simulate the clock advancing by eight days, which is past the expiration // point. @@ -968,6 +1054,15 @@ } EXPECT_EQ(http_url, contents->GetLastCommittedURL()); + + // If upgrading isn't enabled, ensure the host wasn't allowlisted and exit. + if (!IsHttpUpgradingEnabled()) { + EXPECT_FALSE(state->IsHttpAllowedForHost( + http_url.host(), + contents->GetPrimaryMainFrame()->GetStoragePartition())); + return; + } + EXPECT_TRUE(state->IsHttpAllowedForHost( http_url.host(), contents->GetPrimaryMainFrame()->GetStoragePartition())); @@ -1126,6 +1221,10 @@ // hostname pattern, and bare IP address cases. IN_PROC_BROWSER_TEST_P(HttpsUpgradesBrowserTest, EnterpriseAllowlistDisablesUpgrades) { + // Skip this test when HTTPS Upgrading isn't enabled. + if (!IsHttpUpgradingEnabled()) { + return; + } content::WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/ssl/https_upgrades_interceptor.cc index 0bd20a9..b7f361b 100644 --- a/chrome/browser/ssl/https_upgrades_interceptor.cc +++ b/chrome/browser/ssl/https_upgrades_interceptor.cc
@@ -44,6 +44,8 @@ #include "components/guest_view/browser/guest_view_base.h" #endif // BUILDFLAG(ENABLE_EXTENSIONS) +using security_interstitials::https_only_mode::RecordHttpsFirstModeNavigation; + namespace { // Used to handle upgrading/fallback for tests using EmbeddedTestServer which @@ -94,15 +96,6 @@ return false; } -// Helper to record an HTTPS-First Mode navigation event. -// TODO(crbug.com/1394910): Rename these metrics now that they apply to both -// HTTPS-First Mode and HTTPS Upgrades. -void RecordHttpsFirstModeNavigation( - security_interstitials::https_only_mode::Event event) { - base::UmaHistogramEnumeration( - security_interstitials::https_only_mode::kEventHistogram, event); -} - // Helper to configure an artificial redirect to `new_url`. This configures // `response_head` and returns a computed RedirectInfo so both can be passed to // URLLoaderClient::OnReceiveRedirect() to trigger the redirect. @@ -153,18 +146,9 @@ return nullptr; } PrefService* prefs = profile->GetPrefs(); - // Both HTTPS-First Mode and HTTPS-Upgrades are forms of upgrading all HTTP - // navigations to HTTPS, with HTTPS-First Mode additionally enabling the - // HTTP interstitial on fallback. bool https_first_mode_enabled = base::FeatureList::IsEnabled(features::kHttpsFirstModeV2) && prefs && prefs->GetBoolean(prefs::kHttpsOnlyModeEnabled); - bool https_upgrades_enabled = - https_first_mode_enabled || - base::FeatureList::IsEnabled(features::kHttpsUpgrades); - if (!https_upgrades_enabled) { - return nullptr; - } return std::make_unique<HttpsUpgradesInterceptor>(frame_tree_node_id, https_first_mode_enabled); } @@ -194,22 +178,6 @@ return; } - // TODO(crbug.com/1394910): Check for HttpsUpgrades and HttpsAllowlist - // enterprise policies as well. It might be best to consolidate these checks - // into the HttpsUpgradesNavigationThrottle which sees the navigation first. - auto* prefs = profile->GetPrefs(); - bool https_first_mode_enabled = - base::FeatureList::IsEnabled(features::kHttpsFirstModeV2) && prefs && - prefs->GetBoolean(prefs::kHttpsOnlyModeEnabled); - bool https_upgrades_enabled = - base::FeatureList::IsEnabled(features::kHttpsUpgrades) || - https_first_mode_enabled; - if (!https_upgrades_enabled) { - // Don't upgrade the request and let the default loader continue. - std::move(callback).Run({}); - return; - } - auto* web_contents = content::WebContents::FromFrameTreeNodeId(frame_tree_node_id_); // Could be null if the FrameTreeNode's RenderFrameHost is shutting down. @@ -235,6 +203,7 @@ // Don't upgrade navigation if it is allowlisted. // First, check the enterprise policy HTTP allowlist. + PrefService* prefs = profile->GetPrefs(); if (IsHostnameInAllowlist(tentative_resource_request.url, prefs->GetList(prefs::kHttpAllowlist))) { std::move(callback).Run({}); @@ -331,6 +300,24 @@ return; } + // TODO(crbug.com/1394910): Check for HttpsUpgrades and HttpsAllowlist + // enterprise policies as well (possibly earlier). It might be best to + // consolidate these checks into the HttpsUpgradesNavigationThrottle which + // sees the navigation first, but we need to ensure not to break metrics in + // the process. + + // Both HTTPS-First Mode and HTTPS-Upgrades are forms of upgrading all HTTP + // navigations to HTTPS, with HTTPS-First Mode additionally enabling the + // HTTP interstitial on fallback. + if (!base::FeatureList::IsEnabled(features::kHttpsUpgrades) && + !http_interstitial_enabled_) { + // Don't upgrade the request and let the default loader continue, but record + // that the request *would have* upgraded, had upgrading been enabled. + RecordHttpsFirstModeNavigation(Event::kUpgradeNotAttempted); + std::move(callback).Run({}); + return; + } + // Mark navigation as upgraded. tab_helper->set_is_navigation_upgraded(true); tab_helper->set_fallback_url(tentative_resource_request.url); @@ -372,7 +359,7 @@ } auto* tab_helper = HttpsOnlyModeTabHelper::FromWebContents(web_contents); - if (!tab_helper->is_navigation_upgraded()) { + if (!tab_helper || !tab_helper->is_navigation_upgraded()) { return false; }
diff --git a/chrome/browser/ssl/https_upgrades_navigation_throttle.cc b/chrome/browser/ssl/https_upgrades_navigation_throttle.cc index a84631c..95de4ba 100644 --- a/chrome/browser/ssl/https_upgrades_navigation_throttle.cc +++ b/chrome/browser/ssl/https_upgrades_navigation_throttle.cc
@@ -6,7 +6,6 @@ #include "base/feature_list.h" #include "base/memory/weak_ptr.h" -#include "base/metrics/histogram_functions.h" #include "base/task/sequenced_task_runner.h" #include "base/time/time.h" #include "chrome/browser/ssl/https_only_mode_tab_helper.h" @@ -32,15 +31,6 @@ // showing the HTTPS-First Mode interstitial. base::TimeDelta g_fallback_delay = base::Seconds(3); -// Helper to record an HTTPS-First Mode navigation event. -// TODO(crbug.com/1394910): Rename these metrics now that they apply to both -// HTTPS-First Mode and HTTPS Upgrades. -void RecordHttpsFirstModeNavigation( - security_interstitials::https_only_mode::Event event) { - base::UmaHistogramEnumeration( - security_interstitials::https_only_mode::kEventHistogram, event); -} - } // namespace // static
diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn index 88966c9..abea7b2b9 100644 --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn
@@ -124,7 +124,6 @@ "java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionViewProperties.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalView.java", - "java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalViewProperties.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/AlignmentManager.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionProcessor.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java",
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxPedalDelegate.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxPedalDelegate.java index 470b235..0234acee 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxPedalDelegate.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxPedalDelegate.java
@@ -4,9 +4,9 @@ package org.chromium.chrome.browser.omnibox.suggestions; +import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; -import org.chromium.chrome.browser.omnibox.suggestions.pedal.PedalViewProperties.PedalIcon; import org.chromium.components.omnibox.action.OmniboxPedal; /** @@ -14,6 +14,23 @@ */ public interface OmniboxPedalDelegate { /** + * Describes the ChipView decoration. + */ + public static final class ChipIcon { + public final @DrawableRes int iconRes; + public final boolean tintWithTextColor; + + /** + * @param iconRes The resource Id of the icon to be shown beside the text. + * @param tintWithTextColor Whether to tint the icon using primary text color. + */ + public ChipIcon(@DrawableRes int iconRes, boolean tintWithTextColor) { + this.iconRes = iconRes; + this.tintWithTextColor = tintWithTextColor; + } + } + + /** * Call this method when the pedal is clicked. * * @param omniboxPedal the {@link OmniboxPedal} whose action we want to execute. @@ -27,5 +44,5 @@ * @return The icon's information. */ @NonNull - PedalIcon getIcon(OmniboxPedal omniboxPedal); -} \ No newline at end of file + ChipIcon getIcon(OmniboxPedal omniboxPedal); +}
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java index 321d52d..ed01c893 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java
@@ -4,6 +4,7 @@ package org.chromium.chrome.browser.omnibox.suggestions.base; +import android.content.Context; import android.content.res.ColorStateList; import android.content.res.Resources; import android.graphics.drawable.ColorDrawable; @@ -19,6 +20,7 @@ import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; import android.widget.ImageView; +import androidx.annotation.ColorInt; import androidx.annotation.ColorRes; import androidx.annotation.VisibleForTesting; import androidx.appcompat.content.res.AppCompatResources; @@ -267,10 +269,7 @@ // Background color to be used for suggestions var ctx = view.getContext(); - var background = new ColorDrawable(isIncognito(model) - ? ctx.getColor(R.color.omnibox_suggestion_bg_incognito) - : ChromeColors.getSurfaceColor( - ctx, R.dimen.omnibox_suggestion_bg_elevation)); + var background = new ColorDrawable(getSuggestionBackgroundColor(model, view.getContext())); // Ripple effect to use when the user interacts with the suggestion. var ripple = OmniboxResourceProvider.resolveAttributeToDrawable(ctx, model.get(SuggestionCommonProperties.COLOR_SCHEME), @@ -285,6 +284,19 @@ } /** + * Retrieve the background color to be applied to suggestion. + * + * @param model A property model to look up relevant properties. + * @param ctx Context used to retrieve appropriate color value. + * @return @ColorInt value representing the color to be applied. + */ + public static @ColorInt int getSuggestionBackgroundColor(PropertyModel model, Context ctx) { + return isIncognito(model) + ? ctx.getColor(R.color.omnibox_suggestion_bg_incognito) + : ChromeColors.getSurfaceColor(ctx, R.dimen.omnibox_suggestion_bg_elevation); + } + + /** * Checks whether cached FocusableDrawableState should be reset. * * TODO(ender): Relocate this to appropriate OmniboxResourceManager class.
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionProcessor.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionProcessor.java index ea5dd227..c038242 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionProcessor.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionProcessor.java
@@ -7,10 +7,10 @@ import android.content.Context; import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; import androidx.collection.ArraySet; import org.chromium.base.metrics.RecordHistogram; +import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; import org.chromium.chrome.browser.omnibox.action.OmniboxActionType; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate; @@ -21,7 +21,7 @@ import org.chromium.chrome.browser.omnibox.suggestions.SuggestionsMetrics; import org.chromium.chrome.browser.omnibox.suggestions.base.BaseSuggestionViewProperties; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor; -import org.chromium.chrome.browser.omnibox.suggestions.pedal.PedalViewProperties.PedalIcon; +import org.chromium.components.browser_ui.widget.chips.ChipProperties; import org.chromium.components.omnibox.AutocompleteMatch; import org.chromium.components.omnibox.action.OmniboxPedal; import org.chromium.ui.modelutil.MVCListAdapter.ListItem; @@ -38,6 +38,7 @@ // Only show pedals when the suggestion is on the top 3 suggestions. private static final int PEDAL_MAX_SHOW_POSITION = 3; + private final @NonNull Context mContext; private final @NonNull OmniboxPedalDelegate mOmniboxPedalDelegate; private final @NonNull AutocompleteDelegate mAutocompleteDelegate; private @NonNull Set<Integer> mLastVisiblePedals = new ArraySet<>(); @@ -58,6 +59,7 @@ @NonNull OmniboxPedalDelegate omniboxPedalDelegate, @NonNull AutocompleteDelegate autocompleteDelegate) { super(context, suggestionHost, editingTextProvider, faviconFetcher, bookmarkState); + mContext = context; mOmniboxPedalDelegate = omniboxPedalDelegate; mAutocompleteDelegate = autocompleteDelegate; } @@ -102,20 +104,27 @@ final int pedalsCount = omniboxPedalList.size(); final List<ListItem> modelList = new ArrayList<>(pedalsCount); - for (OmniboxPedal omniboxPedal : omniboxPedalList) { - final PropertyModel pedalModel = new PropertyModel(PedalViewProperties.ALL_KEYS); - pedalModel.set(PedalViewProperties.PEDAL, omniboxPedal); - pedalModel.set(PedalViewProperties.PEDAL_ICON, getPedalIcon(omniboxPedal)); - pedalModel.set( - PedalViewProperties.ON_PEDAL_CLICK, v -> executeAction(omniboxPedal, position)); + for (OmniboxPedal chip : omniboxPedalList) { + final var chipModel = new PropertyModel.Builder(ChipProperties.ALL_KEYS) + .with(ChipProperties.TEXT, chip.getHint()) + .build(); + + // Apply changes manually to investigate bizarre CQ finding. + final var chipIcon = mOmniboxPedalDelegate.getIcon(chip); + chipModel.set(ChipProperties.CONTENT_DESCRIPTION, + mContext.getString(R.string.accessibility_omnibox_pedal, chip.getHint())); + chipModel.set(ChipProperties.ENABLED, true); + chipModel.set(ChipProperties.CLICK_HANDLER, m -> executeAction(chip, position)); + chipModel.set(ChipProperties.ICON, chipIcon.iconRes); + chipModel.set(ChipProperties.APPLY_ICON_TINT, chipIcon.tintWithTextColor); modelList.add( - new ListItem(PedalSuggestionViewProperties.ViewType.PEDAL_VIEW, pedalModel)); + new ListItem(PedalSuggestionViewProperties.ViewType.PEDAL_VIEW, chipModel)); - if (omniboxPedal.hasPedalId()) { - mLastVisiblePedals.add(omniboxPedal.getPedalID()); - } else if (omniboxPedal.hasActionId() - && omniboxPedal.getActionID() == OmniboxActionType.HISTORY_CLUSTERS) { + if (chip.hasPedalId()) { + mLastVisiblePedals.add(chip.getPedalID()); + } else if (chip.hasActionId() + && chip.getActionID() == OmniboxActionType.HISTORY_CLUSTERS) { mJourneysActionShownPosition = position; } } @@ -125,16 +134,6 @@ BaseSuggestionViewProperties.DENSITY, BaseSuggestionViewProperties.Density.COMPACT); } - /** - * Get default icon for pedal suggestion. - * @param omniboxPedal OmniboxPedal for the suggestion. - * @return The icon's information. - */ - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) - PedalIcon getPedalIcon(@NonNull OmniboxPedal omniboxPedal) { - return mOmniboxPedalDelegate.getIcon(omniboxPedal); - } - void executeAction(@NonNull OmniboxPedal omniboxPedal, int position) { if (omniboxPedal.hasActionId() && omniboxPedal.getActionID() == OmniboxActionType.HISTORY_CLUSTERS) {
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionView.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionView.java index 88a84a9..c922f05 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionView.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionView.java
@@ -7,7 +7,6 @@ import android.content.Context; import android.view.KeyEvent; import android.view.View; -import android.widget.TextView; import androidx.annotation.LayoutRes; import androidx.annotation.NonNull; @@ -70,12 +69,6 @@ return mBaseSuggestionView; } - /** @return The Primary TextView in the pedal view. */ - @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) - public TextView getPedalTextView() { - return mPedalList.get(0).getPedalTextView(); - } - /** @return The {@link ChipView} in this view. */ @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) public ChipView getPedalChipView() {
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionViewBinder.java index d9a572a8..7e5ea1ac 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionViewBinder.java
@@ -4,19 +4,15 @@ package org.chromium.chrome.browser.omnibox.suggestions.pedal; -import android.graphics.Color; import android.view.View; import androidx.core.view.ViewCompat; -import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.DropdownCommonProperties; import org.chromium.chrome.browser.omnibox.suggestions.SuggestionCommonProperties; import org.chromium.chrome.browser.omnibox.suggestions.base.BaseSuggestionViewBinder; -import org.chromium.chrome.browser.omnibox.suggestions.pedal.PedalViewProperties.PedalIcon; -import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; -import org.chromium.components.omnibox.action.OmniboxPedal; +import org.chromium.components.browser_ui.widget.chips.ChipViewBinder; import org.chromium.ui.modelutil.MVCListAdapter.ListItem; import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyModel; @@ -46,29 +42,27 @@ mBaseViewBinder.bind(model, view.getBaseSuggestionView(), propertyKey); if (PedalSuggestionViewProperties.PEDAL_LIST == propertyKey) { - List<ListItem> omniboxPedalList = model.get(PedalSuggestionViewProperties.PEDAL_LIST); - // Always get the first pedal item during the first step of Actions in Suggest. - ListItem omniboxPedalListItem = omniboxPedalList.get(0); - OmniboxPedal omniboxPedal = omniboxPedalListItem.model.get(PedalViewProperties.PEDAL); - final String hint = omniboxPedal.getHint(); - final String contentDescription = - view.getContext().getString(R.string.accessibility_omnibox_pedal, hint); - view.getPedalTextView().setText(hint); - view.getPedalTextView().setContentDescription(contentDescription); - final @BrandedColorScheme int brandedColorScheme = - model.get(SuggestionCommonProperties.COLOR_SCHEME); - view.getPedalTextView().setTextColor( - OmniboxResourceProvider.getSuggestionPrimaryTextColor( - view.getContext(), brandedColorScheme)); - - // Set up icon and click listener from the pedal list item model. - PedalIcon icon = omniboxPedalListItem.model.get(PedalViewProperties.PEDAL_ICON); - view.getPedalChipView().setIcon(icon.iconRes, icon.tintWithTextColor); - view.getPedalChipView().setBackgroundColor(Color.TRANSPARENT); - view.getPedalChipView().setOnClickListener( - omniboxPedalListItem.model.get(PedalViewProperties.ON_PEDAL_CLICK)); + List<ListItem> chipList = model.get(PedalSuggestionViewProperties.PEDAL_LIST); + // TODO(crbug/1418077): Turn this into a proper MVC. + // We're introducing support for multiple chips (not landed yet) and migrating from + // FrameView to RecyclerView. + PropertyModel chipModel = chipList.get(0).model; + for (var property : chipModel.getAllSetProperties()) { + ChipViewBinder.bind(chipModel, view.getPedalChipView(), property); + } } else if (SuggestionCommonProperties.COLOR_SCHEME == propertyKey) { BaseSuggestionViewBinder.applySelectableBackground(model, view.getPedalView()); + // Apply changes to Chips as well. + // Currently chips work well in light and dark themes, but poorly in an Incognito mode. + // Need to research how to plumb styling properly so that Incognito mode is properly + // reflected. + List<ListItem> chipList = model.get(PedalSuggestionViewProperties.PEDAL_LIST); + var brandedColorScheme = model.get(SuggestionCommonProperties.COLOR_SCHEME); + var chip = view.getPedalChipView(); + chip.setBackgroundColor(BaseSuggestionViewBinder.getSuggestionBackgroundColor( + model, view.getContext())); + chip.setTextColor(OmniboxResourceProvider.getSuggestionPrimaryTextColor( + view.getContext(), brandedColorScheme)); } else if (SuggestionCommonProperties.LAYOUT_DIRECTION == propertyKey) { ViewCompat.setLayoutDirection( view.getPedalView(), model.get(SuggestionCommonProperties.LAYOUT_DIRECTION));
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalView.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalView.java index 192efdc..5513e54ec 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalView.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalView.java
@@ -7,17 +7,12 @@ import android.content.Context; import android.view.KeyEvent; import android.widget.FrameLayout; -import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.core.content.res.ResourcesCompat; - -import com.google.android.material.color.MaterialColors; import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.util.KeyNavigationUtil; import org.chromium.components.browser_ui.widget.chips.ChipView; -import org.chromium.ui.util.ColorUtils; /** * Container view for the {@link ChipView}. @@ -39,13 +34,6 @@ setFocusable(true); mPedal = new ChipView(context, R.style.OmniboxPedalChipThemeOverlay); - final int baseColor = MaterialColors.getColor(context, R.attr.colorSurface, TAG); - final int overlayColor = MaterialColors.getColor(context, R.attr.colorOutline, TAG); - final float alpha = - ResourcesCompat.getFloat(context.getResources(), R.dimen.chip_outline_alpha); - mPedal.setBorder(context.getResources().getDimensionPixelSize(R.dimen.chip_border_width), - ColorUtils.getColorWithOverlay(baseColor, overlayColor, alpha)); - var layoutParams = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); layoutParams.setMargins(0, 0, 0, @@ -73,11 +61,6 @@ mPedal.setSelected(false); } - /** @return The Primary TextView in this view. */ - TextView getPedalTextView() { - return mPedal.getPrimaryTextView(); - } - /** @return The {@link ChipView} in this view. */ ChipView getChipView() { return mPedal;
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalViewProperties.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalViewProperties.java deleted file mode 100644 index 8392a61bc..0000000 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/pedal/PedalViewProperties.java +++ /dev/null
@@ -1,53 +0,0 @@ -// 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. - -package org.chromium.chrome.browser.omnibox.suggestions.pedal; - -import android.view.View.OnClickListener; - -import androidx.annotation.DrawableRes; - -import org.chromium.components.omnibox.action.OmniboxPedal; -import org.chromium.ui.modelutil.PropertyKey; -import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey; - -/** - * The properties associated with rendering the pedal view. - */ -public class PedalViewProperties { - /** - * Describes the pedal Icon. - */ - public static final class PedalIcon { - public final @DrawableRes int iconRes; - public final boolean tintWithTextColor; - - /** - * Create a new action for suggestion. - * - * @param iconRes The resource id pointing to the icon. - * @param tintWithTextColor tintWithTextColor If true then the image view will be tinted - * with the primary text color. - */ - public PedalIcon(@DrawableRes int iconRes, boolean tintWithTextColor) { - this.iconRes = iconRes; - this.tintWithTextColor = tintWithTextColor; - } - } - - /** Omnibox Pedal description. */ - public static final WritableObjectPropertyKey<OmniboxPedal> PEDAL = - new WritableObjectPropertyKey(); - - /** Omnibox Pedal's drawable resource id. */ - public static final WritableObjectPropertyKey<PedalIcon> PEDAL_ICON = - new WritableObjectPropertyKey<>(); - - /** Callback invoked when user clicks the pedal. */ - public static final WritableObjectPropertyKey<OnClickListener> ON_PEDAL_CLICK = - new WritableObjectPropertyKey<>(); - - public static final PropertyKey[] ALL_KEYS = - new PropertyKey[] {PEDAL, PEDAL_ICON, ON_PEDAL_CLICK}; -} \ No newline at end of file
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc index f91c359d..e906ce45 100644 --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc
@@ -112,8 +112,7 @@ #include "ui/ozone/public/ozone_platform.h" #endif -using WebExposedIsolationLevel = - content::RenderFrameHost::WebExposedIsolationLevel; +using WebExposedIsolationLevel = content::WebExposedIsolationLevel; using content::NavigationController; using content::NavigationEntry;
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc index baf3262..c80ca778 100644 --- a/chrome/browser/ui/browser_navigator.cc +++ b/chrome/browser/ui/browser_navigator.cc
@@ -83,8 +83,7 @@ using content::GlobalRequestID; using content::NavigationController; using content::WebContents; -using WebExposedIsolationLevel = - content::RenderFrameHost::WebExposedIsolationLevel; +using WebExposedIsolationLevel = content::WebExposedIsolationLevel; class BrowserNavigatorWebContentsAdoption { public:
diff --git a/chrome/browser/ui/extensions/extension_settings_overridden_dialog.cc b/chrome/browser/ui/extensions/extension_settings_overridden_dialog.cc index f62f97d1..0b6d944f 100644 --- a/chrome/browser/ui/extensions/extension_settings_overridden_dialog.cc +++ b/chrome/browser/ui/extensions/extension_settings_overridden_dialog.cc
@@ -180,8 +180,7 @@ void ExtensionSettingsOverriddenDialog::AcknowledgeControllingExtension() { extensions::ExtensionPrefs::Get(profile_)->UpdateExtensionPref( params_.controlling_extension_id, - params_.extension_acknowledged_preference_name, - std::make_unique<base::Value>(true)); + params_.extension_acknowledged_preference_name, base::Value(true)); } bool ExtensionSettingsOverriddenDialog::HasAcknowledgedExtension(
diff --git a/chrome/browser/ui/extensions/extension_settings_overridden_dialog_unittest.cc b/chrome/browser/ui/extensions/extension_settings_overridden_dialog_unittest.cc index 169211d6..9ab4103 100644 --- a/chrome/browser/ui/extensions/extension_settings_overridden_dialog_unittest.cc +++ b/chrome/browser/ui/extensions/extension_settings_overridden_dialog_unittest.cc
@@ -93,9 +93,8 @@ TEST_F(ExtensionSettingsOverriddenDialogUnitTest, WontShowForAnAcknowledgedExtension) { const extensions::Extension* extension = AddExtension(); - GetExtensionPrefs()->UpdateExtensionPref(extension->id(), - kTestAcknowledgedPreference, - std::make_unique<base::Value>(true)); + GetExtensionPrefs()->UpdateExtensionPref( + extension->id(), kTestAcknowledgedPreference, base::Value(true)); ExtensionSettingsOverriddenDialog controller( CreateTestDialogParams(extension->id()), profile());
diff --git a/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc b/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc index fdb3ed7..6b0a3c3 100644 --- a/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc +++ b/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc
@@ -114,7 +114,7 @@ if (overrides.find(chrome::kChromeUINewTabHost) != overrides.end()) { prefs->UpdateExtensionPref(extension->id(), kNtpOverridingExtensionAcknowledged, - std::make_unique<base::Value>(true)); + base::Value(true)); } } }
diff --git a/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc b/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc index 849bee83..c554ed9 100644 --- a/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc +++ b/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc
@@ -60,7 +60,7 @@ void SetUninstallURL(extensions::ExtensionPrefs* prefs, const std::string& extension_id) { prefs->UpdateExtensionPref(extension_id, kUninstallUrlPrefKey, - std::make_unique<base::Value>(kUninstallUrl)); + base::Value(kUninstallUrl)); } void CloseUninstallDialog(views::Widget* const bubble_widget) {
diff --git a/chrome/browser/ui/views/keyboard_access_browsertest.cc b/chrome/browser/ui/views/keyboard_access_interactive_uitest.cc similarity index 93% rename from chrome/browser/ui/views/keyboard_access_browsertest.cc rename to chrome/browser/ui/views/keyboard_access_interactive_uitest.cc index 14a29f1..4516acc 100644 --- a/chrome/browser/ui/views/keyboard_access_browsertest.cc +++ b/chrome/browser/ui/views/keyboard_access_interactive_uitest.cc
@@ -36,8 +36,8 @@ // An async version of SendKeyPressSync since we don't get notified when a // menu is showing. void SendKeyPress(Browser* browser, ui::KeyboardCode key) { - ASSERT_TRUE(ui_controls::SendKeyPress( - browser->window()->GetNativeWindow(), key, false, false, false, false)); + ASSERT_TRUE(ui_controls::SendKeyPress(browser->window()->GetNativeWindow(), + key, false, false, false, false)); } // Helper class that waits until the focus has changed to a view other @@ -60,9 +60,7 @@ focus_manager_->RemoveFocusChangeListener(this); } - void Wait() { - content::RunMessageLoop(); - } + void Wait() { content::RunMessageLoop(); } private: // views::FocusChangeListener: @@ -158,8 +156,9 @@ } void WaitForFocusedViewIDToChange(int original_view_id) { - if (GetFocusedViewID() != original_view_id) + if (GetFocusedViewID() != original_view_id) { return; + } gfx::NativeWindow window = browser()->window()->GetNativeWindow(); views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window); views::FocusManager* focus_manager = widget->GetFocusManager(); @@ -204,19 +203,20 @@ browser_view->toolbar_button_provider()->GetAppMenuButton(), browser(), false); - if (focus_omnibox) + if (focus_omnibox) { browser()->window()->GetLocationBar()->FocusLocation(false); + } #if BUILDFLAG(IS_CHROMEOS_ASH) // Chrome OS doesn't have a way to just focus the app menu, so we use Alt+F to // bring up the menu. - ASSERT_TRUE(ui_test_utils::SendKeyPressSync( - browser(), ui::VKEY_F, false, shift, true, false)); + ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_F, false, + shift, true, false)); #else ui::KeyboardCode menu_key = alternate_key_sequence ? ui::VKEY_MENU : ui::VKEY_F10; - ASSERT_TRUE(ui_test_utils::SendKeyPressSync( - browser(), menu_key, false, shift, false, false)); + ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), menu_key, false, shift, + false, false)); #endif if (shift) { @@ -233,10 +233,11 @@ // See above comment. Since we already brought up the menu, no need to do this // on ChromeOS. #if !BUILDFLAG(IS_CHROMEOS_ASH) - if (alternate_key_sequence) + if (alternate_key_sequence) { SendKeyPress(browser(), ui::VKEY_DOWN); - else + } else { SendKeyPress(browser(), ui::VKEY_RETURN); + } #endif // Wait for the new tab to appear. @@ -280,14 +281,12 @@ // Sending the Alt space keys to the browser will bring up the system menu // which runs a model loop. We set a CBT hook to look for the menu and send // keystrokes to it. - HHOOK cbt_hook = ::SetWindowsHookEx(WH_CBT, - SystemMenuTestCBTHook, - NULL, + HHOOK cbt_hook = ::SetWindowsHookEx(WH_CBT, SystemMenuTestCBTHook, NULL, ::GetCurrentThreadId()); ASSERT_TRUE(cbt_hook); - bool ret = ui_test_utils::SendKeyPressSync( - browser(), ui::VKEY_SPACE, false, false, true, false); + bool ret = ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_SPACE, false, + false, true, false); EXPECT_TRUE(ret); if (ret) { @@ -381,8 +380,8 @@ browser()->window()->GetLocationBar()->FocusLocation(false); - ASSERT_TRUE(ui_test_utils::SendKeyPressSync( - browser(), ui::VKEY_F10, false, false, false, false)); + ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_F10, false, + false, false, false)); WaitForFocusedViewIDToChange(original_view_id); @@ -420,7 +419,8 @@ // If this flakes, use http://crbug.com/62311. #if BUILDFLAG(IS_WIN) -#define MAYBE_TestShiftAltMenuKeyboardAccess DISABLED_TestShiftAltMenuKeyboardAccess +#define MAYBE_TestShiftAltMenuKeyboardAccess \ + DISABLED_TestShiftAltMenuKeyboardAccess #else #define MAYBE_TestShiftAltMenuKeyboardAccess TestShiftAltMenuKeyboardAccess #endif @@ -469,8 +469,8 @@ browser(), url, WindowOpenDisposition::NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); - ASSERT_TRUE(ui_test_utils::SendKeyPressSync( - browser(), ui::VKEY_TAB, true, false, false, false)); + ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_TAB, true, + false, false, false)); ASSERT_EQ(0, browser()->tab_strip_model()->active_index()); ui_test_utils::NavigateToURLWithDisposition(
diff --git a/chrome/browser/ui/web_applications/web_app_interactive_uitest.cc b/chrome/browser/ui/web_applications/web_app_interactive_uitest.cc index 288c2f2..f02035f 100644 --- a/chrome/browser/ui/web_applications/web_app_interactive_uitest.cc +++ b/chrome/browser/ui/web_applications/web_app_interactive_uitest.cc
@@ -14,7 +14,6 @@ #include "ui/display/scoped_display_for_new_windows.h" #include "ui/display/screen.h" #include "ui/display/screen_base.h" -#include "ui/display/test/scoped_screen_override.h" #if BUILDFLAG(IS_CHROMEOS_ASH) #include "ash/shell.h"
diff --git a/chrome/browser/ui/web_applications/web_app_menu_model.cc b/chrome/browser/ui/web_applications/web_app_menu_model.cc index 1dd14ba..3ae0795 100644 --- a/chrome/browser/ui/web_applications/web_app_menu_model.cc +++ b/chrome/browser/ui/web_applications/web_app_menu_model.cc
@@ -36,8 +36,7 @@ #include "ui/views/widget/widget.h" #endif -using WebExposedIsolationLevel = - content::RenderFrameHost::WebExposedIsolationLevel; +using WebExposedIsolationLevel = content::WebExposedIsolationLevel; constexpr int WebAppMenuModel::kUninstallAppCommandId; constexpr int WebAppMenuModel::kExtensionsMenuCommandId;
diff --git a/chrome/browser/ui/webui/feedback/OWNERS b/chrome/browser/ui/webui/feedback/OWNERS new file mode 100644 index 0000000..220e699 --- /dev/null +++ b/chrome/browser/ui/webui/feedback/OWNERS
@@ -0,0 +1 @@ +file://components/feedback/OWNERS
diff --git a/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler.cc b/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler.cc index 8847591..8c28c900 100644 --- a/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler.cc +++ b/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler.cc
@@ -10,10 +10,12 @@ #include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "base/strings/utf_string_conversions.h" +#include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/power_bookmarks/power_bookmark_service_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h" +#include "components/bookmarks/browser/bookmark_model.h" #include "components/power_bookmarks/common/power.h" #include "components/power_bookmarks/common/power_overview.h" #include "components/power_bookmarks/core/power_bookmark_service.h" @@ -31,15 +33,27 @@ side_panel::mojom::NoteOverviewPtr PowerOverviewToMojo( const power_bookmarks::PowerOverview& power_overview, - const GURL& current_tab_url) { + const GURL& current_tab_url, + bookmarks::BookmarkModel* bookmark_model) { auto* power = power_overview.power(); DCHECK(power->power_type() == sync_pb::PowerBookmarkSpecifics::POWER_TYPE_NOTE); DCHECK(power->power_entity()->has_note_entity()); auto result = side_panel::mojom::NoteOverview::New(); result->url = power->url(); - // TODO(crbug.com/1378131): Get title from the corresponding bookmark. - result->title = power->url().spec(); + + // Set title to the first bookmark with the same URL, otherwise fall back to + // url. + std::vector<const bookmarks::BookmarkNode*> nodes; + if (bookmark_model) { + bookmark_model->GetNodesByURL(power->url(), &nodes); + } + if (nodes.size() > 0) { + result->title = base::UTF16ToUTF8(nodes[0]->GetTitle()); + } else { + result->title = power->url().spec(); + } + result->text = power->power_entity()->note_entity().plain_text(); result->num_notes = power_overview.count(); result->is_current_tab = (power->url() == current_tab_url); @@ -106,6 +120,7 @@ page_(std::move(page)), profile_(profile), service_(PowerBookmarkServiceFactory::GetForBrowserContext(profile_)), + bookmark_model_(BookmarkModelFactory::GetForBrowserContext(profile_)), browser_(browser), user_notes_ui_(user_notes_ui) { pref_change_registrar_.Init(profile_->GetPrefs()); @@ -142,16 +157,17 @@ sync_pb::PowerBookmarkSpecifics::POWER_TYPE_NOTE, base::BindOnce( [](GetNoteOverviewsCallback callback, const GURL& current_tab_url, + bookmarks::BookmarkModel* bookmark_model, std::vector<std::unique_ptr<power_bookmarks::PowerOverview>> power_overviews) { std::vector<side_panel::mojom::NoteOverviewPtr> results; for (auto& power_overview : power_overviews) { - results.push_back( - PowerOverviewToMojo(*power_overview, current_tab_url)); + results.push_back(PowerOverviewToMojo( + *power_overview, current_tab_url, bookmark_model)); } std::move(callback).Run(std::move(results)); }, - std::move(callback), current_tab_url_)); + std::move(callback), current_tab_url_, bookmark_model_)); } void UserNotesPageHandler::GetNotesForCurrentTab(
diff --git a/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler.h b/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler.h index 16a7af01..1ab5da0 100644 --- a/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler.h +++ b/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler.h
@@ -16,6 +16,10 @@ #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" +namespace bookmarks { +class BookmarkModel; +} + namespace power_bookmarks { class PowerBookmarkService; } @@ -87,6 +91,7 @@ const raw_ptr<Profile> profile_; PrefChangeRegistrar pref_change_registrar_; const raw_ptr<power_bookmarks::PowerBookmarkService> service_; + const raw_ptr<bookmarks::BookmarkModel> bookmark_model_; const raw_ptr<Browser> browser_; raw_ptr<UserNotesSidePanelUI> user_notes_ui_ = nullptr; bool start_creation_after_tab_change_ = false;
diff --git a/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler_unittest.cc b/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler_unittest.cc index a2e08a6..b06ce61f 100644 --- a/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler_unittest.cc +++ b/chrome/browser/ui/webui/side_panel/user_notes/user_notes_page_handler_unittest.cc
@@ -9,9 +9,13 @@ #include "base/memory/raw_ptr.h" #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" +#include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/ui/webui/side_panel/user_notes/user_notes.mojom-test-utils.h" #include "chrome/test/base/browser_with_test_window_test.h" #include "chrome/test/base/test_browser_window.h" +#include "components/bookmarks/browser/bookmark_model.h" +#include "components/bookmarks/browser/bookmark_node.h" +#include "components/bookmarks/test/bookmark_test_helpers.h" #include "components/power_bookmarks/core/power_bookmark_features.h" #include "testing/gmock/include/gmock/gmock.h" @@ -59,6 +63,11 @@ void SetUp() override { features_.InitAndEnableFeature(power_bookmarks::kPowerBookmarkBackend); BrowserWithTestWindowTest::SetUp(); + BookmarkModelFactory::GetInstance()->SetTestingFactory( + profile(), BookmarkModelFactory::GetDefaultFactory()); + ASSERT_TRUE(bookmark_model_ = + BookmarkModelFactory::GetForBrowserContext(profile())); + bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model_); handler_ = std::make_unique<TestUserNotesPageHandler>( page_.BindAndGetRemote(), profile(), browser()); } @@ -72,6 +81,7 @@ protected: MockUserNotesPage page_; + raw_ptr<bookmarks::BookmarkModel> bookmark_model_; private: std::unique_ptr<TestUserNotesPageHandler> handler_; @@ -123,6 +133,21 @@ ASSERT_FALSE(note_overviews[0]->is_current_tab); } +TEST_F(UserNotesPageHandlerTest, GetNoteOverviewWithBookmarkTitle) { + // Add a new bookmark with url. + side_panel::mojom::UserNotesPageHandlerAsyncWaiter waiter(handler()); + const bookmarks::BookmarkNode* bb_node = bookmark_model_->bookmark_bar_node(); + GURL url("https://google.com"); + bookmark_model_->AddNewURL(bb_node, 0, u"title", url); + + // Make sure the note overview title is read from the bookmark. + handler()->SetCurrentTabUrlForTesting(url); + ASSERT_TRUE(waiter.NewNoteFinished("note1")); + auto note_overviews = waiter.GetNoteOverviews(""); + ASSERT_EQ(1u, note_overviews.size()); + ASSERT_EQ("title", note_overviews[0]->title); +} + TEST_F(UserNotesPageHandlerTest, CreateAndDeleteNote) { EXPECT_CALL(page_, NotesChanged()).Times(2); side_panel::mojom::UserNotesPageHandlerAsyncWaiter waiter(handler());
diff --git a/chrome/browser/usb/chrome_usb_delegate.cc b/chrome/browser/usb/chrome_usb_delegate.cc index bf64b49..6e0e0f2 100644 --- a/chrome/browser/usb/chrome_usb_delegate.cc +++ b/chrome/browser/usb/chrome_usb_delegate.cc
@@ -163,9 +163,9 @@ content::RenderFrameHost* frame, std::vector<uint8_t>& classes) { // Isolated Apps have unrestricted access to any USB interface class. - if (frame && frame->GetWebExposedIsolationLevel() >= - content::RenderFrameHost::WebExposedIsolationLevel:: - kMaybeIsolatedApplication) { + if (frame && + frame->GetWebExposedIsolationLevel() >= + content::WebExposedIsolationLevel::kMaybeIsolatedApplication) { // TODO(https://crbug.com/1236706): Should the list of interface classes the // app expects to claim be encoded in the Web App Manifest? classes.clear();
diff --git a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_browsertest.cc b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_browsertest.cc index 60410e1..7951b8e0 100644 --- a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_browsertest.cc +++ b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_browsertest.cc
@@ -250,8 +250,7 @@ EXPECT_NE(app_browser, browser()); EXPECT_TRUE( AppBrowserController::IsForWebApp(app_browser, url_info.app_id())); - EXPECT_EQ(content::RenderFrameHost::WebExposedIsolationLevel:: - kMaybeIsolatedApplication, + EXPECT_EQ(content::WebExposedIsolationLevel::kMaybeIsolatedApplication, app_frame->GetWebExposedIsolationLevel()); } @@ -279,8 +278,7 @@ EXPECT_NE(app_browser, browser()); EXPECT_TRUE( AppBrowserController::IsForWebApp(app_browser, url_info.app_id())); - EXPECT_EQ(content::RenderFrameHost::WebExposedIsolationLevel:: - kMaybeIsolatedApplication, + EXPECT_EQ(content::WebExposedIsolationLevel::kMaybeIsolatedApplication, app_frame->GetWebExposedIsolationLevel()); } @@ -641,8 +639,7 @@ auto* new_storage_partition = new_app_frame->GetStoragePartition(); EXPECT_EQ(new_storage_partition, storage_partition_); EXPECT_EQ(new_app_frame->GetWebExposedIsolationLevel(), - content::RenderFrameHost::WebExposedIsolationLevel:: - kMaybeIsolatedApplication); + content::WebExposedIsolationLevel::kMaybeIsolatedApplication); EXPECT_TRUE(AppBrowserController::IsWebApp(new_app_window)); }
diff --git a/chrome/browser/window_management/window_management_printing_interactive_uitest.cc b/chrome/browser/window_management/window_management_printing_interactive_uitest.cc index 6bef9d965..347b227 100644 --- a/chrome/browser/window_management/window_management_printing_interactive_uitest.cc +++ b/chrome/browser/window_management/window_management_printing_interactive_uitest.cc
@@ -13,7 +13,6 @@ #include "content/public/test/browser_test.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "ui/display/screen_base.h" -#include "ui/display/test/scoped_screen_override.h" #include "ui/display/test/test_screen.h" #if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index a43207f0..f58058f 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1677261545-f6c43e53725ae6bae614e4e9ecb3a2d8c33f2874.profdata +chrome-linux-main-1677325687-e9ed98a1c0172f665267b0180b30b66fb5642377.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 4aa1157d..dca0653f 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1677275861-2d2542d5e3edcebab95629045106de345ec5ae33.profdata +chrome-mac-arm-main-1677338906-b9c0e5becf8509eaa629709ab75159c28529bd65.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 7f72b600..e9151f6e 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1677261545-6cc1d298a9feaf75ef9dfc5240d9ed83720cecd7.profdata +chrome-mac-main-1677325687-b4a26b2af72a0856f88475dedfd3b1d6bbedc4b2.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 438051e..acd9a31 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1677261545-38db2987eb6b45e47c40c5e7e836156e6d2dd6f7.profdata +chrome-win32-main-1677336968-237a841210a2e72d37c32a254b7ddffaaf07ade8.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 57bc17c..ebdaead 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1677261545-3d7ab441cfdab5c75845215dbf1ad736cbb942aa.profdata +chrome-win64-main-1677325687-322ee1904efb0a9e8b7f5bde4c45c12a650bd9a9.profdata
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 0c4bddf0..958d52b 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -9755,7 +9755,7 @@ "../browser/ui/views/frame/picture_in_picture_browser_frame_view_interactive_uitest.cc", "../browser/ui/views/frame/tab_strip_region_view_interactive_uitest.cc", "../browser/ui/views/fullscreen_control/fullscreen_control_view_interactive_uitest.cc", - "../browser/ui/views/keyboard_access_browsertest.cc", + "../browser/ui/views/keyboard_access_interactive_uitest.cc", "../browser/ui/views/location_bar/location_icon_view_interactive_uitest.cc", "../browser/ui/views/location_bar/selected_keyword_view_interactive_uitest.cc", "../browser/ui/views/location_bar/star_view_interactive_uitest.cc", @@ -9845,7 +9845,7 @@ # TODO(port): This times out. Attempts have been made to fix the # individual failures, but each time I disable a test from these # suites, it seems like one or another starts timing out too. - "../browser/ui/views/keyboard_access_browsertest.cc", + "../browser/ui/views/keyboard_access_interactive_uitest.cc", ] } if (is_chromeos_ash) {
diff --git a/chrome/test/data/webui/settings/chromeos/per_device_keyboard_remap_keys_test.js b/chrome/test/data/webui/settings/chromeos/per_device_keyboard_remap_keys_test.js index 37c3c81..b5dbd462 100644 --- a/chrome/test/data/webui/settings/chromeos/per_device_keyboard_remap_keys_test.js +++ b/chrome/test/data/webui/settings/chromeos/per_device_keyboard_remap_keys_test.js
@@ -161,4 +161,19 @@ assertEquals( metaKeyDropdown.shadowRoot.querySelector('select').value, metaKeyValue); }); + + /** + * Verify that if the keyboard is disconnected while the user is in + * the remapping page, it will switch back to per device keyboard page. + */ + test('re-route to back page when keyboard disconnected', async () => { + await initializeRemapKeyspage(); + // Check it's currently in the modifier remapping page. + assertEquals( + routes.PER_DEVICE_KEYBOARD_REMAP_KEYS, + Router.getInstance().currentRoute); + const updatedKeyboards = [fakeKeyboards[1], fakeKeyboards[2]]; + page.onKeyboardListUpdated(updatedKeyboards); + assertEquals(routes.PER_DEVICE_KEYBOARD, Router.getInstance().currentRoute); + }); }); \ No newline at end of file
diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipProperties.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipProperties.java index 8b9f7df..744f76c33 100644 --- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipProperties.java +++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipProperties.java
@@ -41,6 +41,10 @@ /** An icon ID to show beside the chip's text. If no icon, use {@link #INVALID_ICON_ID}. */ public static final WritableIntPropertyKey ICON = new WritableIntPropertyKey(); + /** Whether the icon should be tinted with text color. */ + public static final WritableBooleanPropertyKey APPLY_ICON_TINT = + new WritableBooleanPropertyKey(); + /** An arbitrary ID for the chip to help identify it. */ public static final ReadableIntPropertyKey ID = new ReadableIntPropertyKey(); @@ -53,6 +57,6 @@ /** The max width a chip's text should have in PX. Use {@link #SHOW_WHOLE_TEXT} for no limit. */ public static final WritableIntPropertyKey TEXT_MAX_WIDTH_PX = new WritableIntPropertyKey(); - public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {CLICK_HANDLER, + public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {APPLY_ICON_TINT, CLICK_HANDLER, CONTENT_DESCRIPTION, ENABLED, ICON, ID, SELECTED, TEXT, TEXT_MAX_WIDTH_PX}; }
diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipView.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipView.java index 750925c..df816669 100644 --- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipView.java +++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipView.java
@@ -65,6 +65,7 @@ private ViewGroup mEndIconWrapper; private AppCompatTextView mSecondaryText; private int mMaxWidth = Integer.MAX_VALUE; + private boolean mTintWithTextColor; /** Constructor for applying a theme overlay. */ public ChipView(Context context, @StyleRes int themeOverlay) { @@ -357,6 +358,7 @@ * color. If not, the tint will be cleared. */ private void setTint(boolean tintWithTextColor) { + mTintWithTextColor = tintWithTextColor; if (mPrimaryText.getTextColors() != null && tintWithTextColor) { ImageViewCompat.setImageTintList(mStartIcon, mPrimaryText.getTextColors()); } else { @@ -384,6 +386,21 @@ } /** + * Specify primary text color. + * + * This method applies a different text color, and if the caller previously installed a Tinted + * icon - updates the icon tint. + * + * TODO(crbug/1418077): This method is not intended as part of public API. It's exposed only + * temporarily until Incognito theming issue is resolved. Reduce visibility or remove the method + * once it is no longer needed. + */ + public void setTextColor(@ColorInt int color) { + mPrimaryText.setTextColor(color); + setTint(mTintWithTextColor); + } + + /** * @return The corner radius in pixels of this ChipView. */ public @Px int getCornerRadius() { @@ -440,4 +457,18 @@ MeasureSpec.makeMeasureSpec(mMaxWidth, MeasureSpec.EXACTLY), heightMeasureSpec); } } + + @Override + public boolean isFocused() { + // When the selection does not follow focus, we still want to properly reflect the user + // selection by highlighting the chip. + // An example where this happens is: the user interacts with the Omnibox, and the typed + // query triggers an Action chip to be shown. + // These chips can be navigated to using physical keyboard (arrow keys to select + // corresponding suggestion, tab to activate the chip). + // At this time the Omnibox continues to retain focus, but Chip should be highlighted, as + // pressing <Enter> on the keyboard will activate the Chip. + // Make sure the highlight is properly reflected. + return super.isFocused() || (isSelected() && !isInTouchMode()); + } }
diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipViewBinder.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipViewBinder.java index 5426c16..e79a080 100644 --- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipViewBinder.java +++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipViewBinder.java
@@ -23,12 +23,16 @@ } else if (ChipProperties.ENABLED == key) { chip.setEnabled(model.get(ChipProperties.ENABLED)); - } else if (ChipProperties.ICON == key) { + } else if (ChipProperties.ICON == key || ChipProperties.APPLY_ICON_TINT == key) { int iconId = model.get(ChipProperties.ICON); if (iconId != ChipProperties.INVALID_ICON_ID) { + // TODO: Revisit the logic below: + // - avoid overriding supplied icon, make no assumptions about how this is used. + // - override won't work if SELECTED property is applied after ICON. boolean isSelected = model.getAllSetProperties().contains(ChipProperties.SELECTED) && model.get(ChipProperties.SELECTED); - chip.setIcon(isSelected ? R.drawable.ic_check_googblue_24dp : iconId, true); + chip.setIcon(isSelected ? R.drawable.ic_check_googblue_24dp : iconId, + model.get(ChipProperties.APPLY_ICON_TINT)); } else { chip.setIcon(ChipProperties.INVALID_ICON_ID, false); }
diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipsCoordinator.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipsCoordinator.java index 6f43df7..fb19e68b 100644 --- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipsCoordinator.java +++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/chips/ChipsCoordinator.java
@@ -78,6 +78,7 @@ .with(ChipProperties.CONTENT_DESCRIPTION, text) .with(ChipProperties.CLICK_HANDLER, clickHandler) .with(ChipProperties.ICON, iconId) + .with(ChipProperties.APPLY_ICON_TINT, true) .with(ChipProperties.ENABLED, true) .with(ChipProperties.SELECTED, false) .with(ChipProperties.TEXT_MAX_WIDTH_PX, ChipProperties.SHOW_WHOLE_TEXT)
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json index 6cd81c5..0893924 100644 --- a/components/certificate_transparency/data/log_list.json +++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@ { - "version": "19.20", - "log_list_timestamp": "2023-02-23T12:55:00Z", + "version": "19.22", + "log_list_timestamp": "2023-02-25T12:56:28Z", "operators": [ { "name": "Google",
diff --git a/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client.cc b/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client.cc index af291a04..e74bfcf 100644 --- a/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client.cc +++ b/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client.cc
@@ -39,7 +39,6 @@ } // namespace SimpleDevToolsProtocolClient::SimpleDevToolsProtocolClient() = default; - SimpleDevToolsProtocolClient::SimpleDevToolsProtocolClient( const std::string& session_id) : session_id_(session_id) {} @@ -104,7 +103,7 @@ FROM_HERE, base::BindOnce( &SimpleDevToolsProtocolClient::DispatchProtocolMessageTask, - base::Unretained(it->second), std::move(message))); + it->second->GetWeakPtr(), std::move(message))); return; } } @@ -112,7 +111,7 @@ content::GetUIThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce(&SimpleDevToolsProtocolClient::DispatchProtocolMessageTask, - base::Unretained(this), std::move(message))); + GetWeakPtr(), std::move(message))); } void SimpleDevToolsProtocolClient::AgentHostClosed( @@ -254,4 +253,9 @@ return handler != handlers.cend(); } +base::WeakPtr<SimpleDevToolsProtocolClient> +SimpleDevToolsProtocolClient::GetWeakPtr() { + return weak_ptr_factory_.GetWeakPtr(); +} + } // namespace simple_devtools_protocol_client \ No newline at end of file
diff --git a/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client.h b/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client.h index 87ec119..d958d45 100644 --- a/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client.h +++ b/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client.h
@@ -14,6 +14,7 @@ #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" +#include "base/memory/weak_ptr.h" #include "base/values.h" #include "content/public/browser/devtools_agent_host.h" @@ -66,13 +67,16 @@ base::span<const uint8_t> json_message) override; void AgentHostClosed(content::DevToolsAgentHost* agent_host) override; - void DispatchProtocolMessageTask(base::Value::Dict message); + // Virtual for tests. + virtual void DispatchProtocolMessageTask(base::Value::Dict message); void SendProtocolMessage(base::Value::Dict message); bool HasEventHandler(const std::string& event_name, const EventCallback& event_callback); + base::WeakPtr<SimpleDevToolsProtocolClient> GetWeakPtr(); + const std::string session_id_; base::raw_ptr<SimpleDevToolsProtocolClient> parent_client_ = nullptr; base::flat_map<std::string, SimpleDevToolsProtocolClient*> sessions_; @@ -80,6 +84,8 @@ scoped_refptr<content::DevToolsAgentHost> agent_host_; base::flat_map<int, ResponseCallback> pending_response_map_; base::flat_map<std::string, std::vector<EventCallback>> event_handler_map_; + + base::WeakPtrFactory<SimpleDevToolsProtocolClient> weak_ptr_factory_{this}; }; } // namespace simple_devtools_protocol_client
diff --git a/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client_unittest.cc b/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client_unittest.cc index d81e2a9..6167185 100644 --- a/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client_unittest.cc +++ b/components/devtools/simple_devtools_protocol_client/simple_devtools_protocol_client_unittest.cc
@@ -7,6 +7,7 @@ #include <string> #include <vector> +#include "base/containers/span.h" #include "base/json/json_writer.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted_memory.h" @@ -22,6 +23,8 @@ namespace simple_devtools_protocol_client { +namespace { + class SimpleDevToolsProtocolClientTest : public SimpleDevToolsProtocolClient, public testing::Test { public: @@ -345,4 +348,32 @@ EXPECT_THAT(received_events_, ElementsAre("event")); } +class SelfDestructingSimpleDevToolsProtocolClient + : public SimpleDevToolsProtocolClient { + public: + void TryIt() { + std::string json_message = "{}"; + SimpleDevToolsProtocolClient::DispatchProtocolMessage( + agent_host_.get(), base::as_bytes(base::make_span(json_message))); + + // Delete self so that the task posted by the previous call has nowhere to + // go. + delete this; + } + + void DispatchProtocolMessageTask(base::Value::Dict message) override { + CHECK(false) << "use-after-free"; + } +}; + +TEST(SimpleDevToolsProtocolClientTest, DestoroyClientInFlight) { + content::BrowserTaskEnvironment task_environment; + + (new SelfDestructingSimpleDevToolsProtocolClient)->TryIt(); + + task_environment.RunUntilIdle(); +} + +} // namespace + } // namespace simple_devtools_protocol_client
diff --git a/components/history/core/browser/history_backend_unittest.cc b/components/history/core/browser/history_backend_unittest.cc index 0703245..c119429 100644 --- a/components/history/core/browser/history_backend_unittest.cc +++ b/components/history/core/browser/history_backend_unittest.cc
@@ -3160,14 +3160,10 @@ // Setup dummy index database files. const char* data = "Dummy"; - const size_t data_len = 5; - ASSERT_EQ(static_cast<int>(data_len), base::WriteFile(db1, data, data_len)); - ASSERT_EQ(static_cast<int>(data_len), - base::WriteFile(db1_journal, data, data_len)); - ASSERT_EQ(static_cast<int>(data_len), - base::WriteFile(db1_wal, data, data_len)); - ASSERT_EQ(static_cast<int>(data_len), - base::WriteFile(db2_actual, data, data_len)); + ASSERT_TRUE(base::WriteFile(db1, data)); + ASSERT_TRUE(base::WriteFile(db1_journal, data)); + ASSERT_TRUE(base::WriteFile(db1_wal, data)); + ASSERT_TRUE(base::WriteFile(db2_actual, data)); #if BUILDFLAG(IS_POSIX) EXPECT_TRUE(base::CreateSymbolicLink(db2_actual, db2_symlink)); #endif
diff --git a/components/history_clusters/core/file_clustering_backend_unittest.cc b/components/history_clusters/core/file_clustering_backend_unittest.cc index 162bef3..a69bf78 100644 --- a/components/history_clusters/core/file_clustering_backend_unittest.cc +++ b/components/history_clusters/core/file_clustering_backend_unittest.cc
@@ -104,9 +104,7 @@ })"; base::FilePath file_path = temp_dir().Append(FILE_PATH_LITERAL("clusters.json")); - ASSERT_EQ(static_cast<int32_t>(clusters_json_string.size()), - base::WriteFile(file_path, clusters_json_string.data(), - clusters_json_string.size())); + ASSERT_TRUE(base::WriteFile(file_path, clusters_json_string)); base::CommandLine::ForCurrentProcess()->AppendSwitchPath( switches::kClustersOverrideFile, file_path);
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc index ff2bac8f..517e82a4 100644 --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc
@@ -1572,6 +1572,5 @@ return web_contents_ && web_contents_->GetPrimaryMainFrame()->GetWebExposedIsolationLevel() >= - content::RenderFrameHost::WebExposedIsolationLevel:: - kMaybeIsolatedApplication; + content::WebExposedIsolationLevel::kMaybeIsolatedApplication; }
diff --git a/components/performance_manager/v8_memory/web_memory_impl.cc b/components/performance_manager/v8_memory/web_memory_impl.cc index 12fd6a4..b4eefb3 100644 --- a/components/performance_manager/v8_memory/web_memory_impl.cc +++ b/components/performance_manager/v8_memory/web_memory_impl.cc
@@ -78,7 +78,7 @@ return; } if (rfh->GetWebExposedIsolationLevel() == - content::RenderFrameHost::WebExposedIsolationLevel::kNotIsolated && + content::WebExposedIsolationLevel::kNotIsolated && !base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisableWebSecurity)) { std::move(bad_message_callback)
diff --git a/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceActivityHeartbeatCollectionRateMs.yaml b/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceActivityHeartbeatCollectionRateMs.yaml index cfa3060..e915710 100644 --- a/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceActivityHeartbeatCollectionRateMs.yaml +++ b/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceActivityHeartbeatCollectionRateMs.yaml
@@ -19,8 +19,8 @@ type: integer supported_chrome_os_management: - google_cloud -future_on: -- chrome_os +supported_on: +- chrome_os:113- tags: - admin-sharing type: int
diff --git a/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceActivityHeartbeatEnabled.yaml b/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceActivityHeartbeatEnabled.yaml index a2ff1c16..28fe77c9 100644 --- a/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceActivityHeartbeatEnabled.yaml +++ b/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceActivityHeartbeatEnabled.yaml
@@ -22,8 +22,8 @@ type: boolean supported_chrome_os_management: - google_cloud -future_on: -- chrome_os +supported_on: +- chrome_os:113- tags: - admin-sharing type: main
diff --git a/components/power_bookmarks/common/search_params.h b/components/power_bookmarks/common/search_params.h index f1f8a677..3965a2aa 100644 --- a/components/power_bookmarks/common/search_params.h +++ b/components/power_bookmarks/common/search_params.h
@@ -23,6 +23,9 @@ // Unless equal to POWER_TYPE_UNSPECIFIED, narrows the search to a single // power type. sync_pb::PowerBookmarkSpecifics::PowerType power_type; + + // Whether the search is case sensitive. + bool case_sensitive = false; }; } // namespace power_bookmarks
diff --git a/components/power_bookmarks/storage/power_bookmark_database_impl.cc b/components/power_bookmarks/storage/power_bookmark_database_impl.cc index 91ccdf5..6f78ca6 100644 --- a/components/power_bookmarks/storage/power_bookmark_database_impl.cc +++ b/components/power_bookmarks/storage/power_bookmark_database_impl.cc
@@ -68,26 +68,40 @@ return count > 0; } +bool MatchPattern(std::string field, std::string pattern, bool case_sensitive) { + if (!case_sensitive) { + field = base::ToLowerASCII(field); + pattern = base::ToLowerASCII(pattern); + } + return base::MatchPattern(field, pattern); +} + bool MatchesSearchQuery(const sync_pb::PowerBookmarkSpecifics& specifics, - const std::string& query) { + const std::string& query, + bool case_sensitive) { if (query.empty()) { return true; } std::string pattern = base::StrCat({"*", query, "*"}); - if (base::MatchPattern(specifics.url(), pattern)) - return true; + std::vector<std::string> match_fields = {}; - // A note can be matched by its contents. + // Different powers can define their own match fields. switch (specifics.power_type()) { case sync_pb::PowerBookmarkSpecifics::POWER_TYPE_NOTE: - if (base::MatchPattern( - specifics.power_entity().note_entity().plain_text(), pattern)) { - return true; - } + match_fields.push_back( + specifics.power_entity().note_entity().plain_text()); break; default: + match_fields.push_back(specifics.url()); break; } + + for (const std::string& match_field : match_fields) { + if (MatchPattern(match_field, pattern, case_sensitive)) { + return true; + } + } + return false; } @@ -98,7 +112,8 @@ search_params.power_type != specifics.power_type()) { return false; } - if (!MatchesSearchQuery(specifics, search_params.query)) { + if (!MatchesSearchQuery(specifics, search_params.query, + search_params.case_sensitive)) { return false; } return true;
diff --git a/components/power_bookmarks/storage/power_bookmark_database_impl_unittest.cc b/components/power_bookmarks/storage/power_bookmark_database_impl_unittest.cc index 8c63b1989..13b459f8 100644 --- a/components/power_bookmarks/storage/power_bookmark_database_impl_unittest.cc +++ b/components/power_bookmarks/storage/power_bookmark_database_impl_unittest.cc
@@ -632,8 +632,6 @@ EXPECT_TRUE(pbdb->CreatePower( MakePower(GURL("https://example.com/a3.html"), kMockType))); EXPECT_TRUE(pbdb->CreatePower( - MakePower(GURL("https://example.com/a3.html"), kNoteType))); - EXPECT_TRUE(pbdb->CreatePower( MakePower(GURL("https://example.com/a3.html"), kMockType))); EXPECT_TRUE(pbdb->CreatePower( MakePower(GURL("https://example.com/a1.html"), kMockType))); @@ -644,15 +642,55 @@ std::vector<std::unique_ptr<PowerOverview>> search_results = pbdb->GetPowerOverviewsForSearchParams(search_params); - EXPECT_EQ(3u, search_results.size()); + EXPECT_EQ(2u, search_results.size()); EXPECT_TRUE(ContainsPowerOverview(search_results, kMockType, GURL("https://example.com/a3.html"), 2)); - EXPECT_TRUE(ContainsPowerOverview(search_results, kNoteType, - GURL("https://example.com/a3.html"), 1)); EXPECT_TRUE(ContainsPowerOverview(search_results, kMockType, GURL("https://example.com/a1.html"), 1)); } +TEST_F(PowerBookmarkDatabaseImplTest, GetPowerOverviewsCaseSensitive) { + std::unique_ptr<PowerBookmarkDatabaseImpl> pbdb = + std::make_unique<PowerBookmarkDatabaseImpl>(db_dir()); + EXPECT_TRUE(pbdb->Init()); + + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a3.html"), kMockType))); + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a3.html"), kMockType))); + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a1.html"), kMockType))); + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a1.html"), kMockType))); + + SearchParams case_sensitive_search_params{.query = "/A", + .case_sensitive = true}; + EXPECT_EQ(0u, + pbdb->GetPowerOverviewsForSearchParams(case_sensitive_search_params) + .size()); +} + +TEST_F(PowerBookmarkDatabaseImplTest, GetPowerOverviewsIgnoreCase) { + std::unique_ptr<PowerBookmarkDatabaseImpl> pbdb = + std::make_unique<PowerBookmarkDatabaseImpl>(db_dir()); + EXPECT_TRUE(pbdb->Init()); + + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a3.html"), kMockType))); + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a3.html"), kMockType))); + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a1.html"), kMockType))); + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a1.html"), kMockType))); + + SearchParams case_insensitive_search_params{.query = "/A", + .case_sensitive = false}; + EXPECT_EQ( + 2u, pbdb->GetPowerOverviewsForSearchParams(case_insensitive_search_params) + .size()); +} + TEST_F(PowerBookmarkDatabaseImplTest, GetPowerOverviewsForSearchParamsMatchNoteText) { std::unique_ptr<PowerBookmarkDatabaseImpl> pbdb = @@ -767,6 +805,32 @@ } } +TEST_F(PowerBookmarkDatabaseImplTest, + GetPowerOverviewsForSearchParamsShouldNotMatchNoteUrl) { + std::unique_ptr<PowerBookmarkDatabaseImpl> pbdb = + std::make_unique<PowerBookmarkDatabaseImpl>(db_dir()); + EXPECT_TRUE(pbdb->Init()); + + { + std::unique_ptr<sync_pb::PowerEntity> note_specifics = + std::make_unique<sync_pb::PowerEntity>(); + note_specifics->mutable_note_entity()->set_plain_text(""); + std::unique_ptr<Power> note_power = MakePower( + GURL("https://example.com/foo"), kNoteType, std::move(note_specifics)); + EXPECT_TRUE(pbdb->CreatePower(std::move(note_power))); + } + // Test should not match URL for notes. + { + SearchParams search_params{ + .query = "foo", + }; + std::vector<std::unique_ptr<PowerOverview>> search_results = + pbdb->GetPowerOverviewsForSearchParams(search_params); + + EXPECT_EQ(0u, search_results.size()); + } +} + TEST_F(PowerBookmarkDatabaseImplTest, DeletePower) { std::unique_ptr<PowerBookmarkDatabaseImpl> pbdb = std::make_unique<PowerBookmarkDatabaseImpl>(db_dir());
diff --git a/components/rlz/rlz_tracker.cc b/components/rlz/rlz_tracker.cc index f861358..bac140c 100644 --- a/components/rlz/rlz_tracker.cc +++ b/components/rlz/rlz_tracker.cc
@@ -219,7 +219,8 @@ // static RLZTracker* RLZTracker::GetInstance() { - return tracker_ ? tracker_ : base::Singleton<RLZTracker>::get(); + static RLZTracker instance; + return tracker_ ? tracker_ : &instance; } RLZTracker::RLZTracker() @@ -234,7 +235,7 @@ app_list_used_(false), min_init_delay_(kMinInitDelay), background_task_runner_(base::ThreadPool::CreateSequencedTaskRunner( - {base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN, base::MayBlock(), + {base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN, base::MayBlock(), base::TaskPriority::BEST_EFFORT})) { DETACH_FROM_SEQUENCE(sequence_checker_); }
diff --git a/components/security_interstitials/core/https_only_mode_metrics.cc b/components/security_interstitials/core/https_only_mode_metrics.cc index 81a79554..ccf5e55 100644 --- a/components/security_interstitials/core/https_only_mode_metrics.cc +++ b/components/security_interstitials/core/https_only_mode_metrics.cc
@@ -4,10 +4,16 @@ #include "components/security_interstitials/core/https_only_mode_metrics.h" -namespace security_interstitials { -namespace https_only_mode { +#include "base/metrics/histogram_functions.h" + +namespace security_interstitials::https_only_mode { const char kEventHistogram[] = "Security.HttpsFirstMode.NavigationEvent"; +// TODO(crbug.com/1394910): Rename these metrics now that they apply to both +// HTTPS-First Mode and HTTPS Upgrades. +void RecordHttpsFirstModeNavigation(Event event) { + base::UmaHistogramEnumeration(kEventHistogram, event); } -} // namespace security_interstitials + +} // namespace security_interstitials::https_only_mode
diff --git a/components/security_interstitials/core/https_only_mode_metrics.h b/components/security_interstitials/core/https_only_mode_metrics.h index a5bc86c..1b743d9 100644 --- a/components/security_interstitials/core/https_only_mode_metrics.h +++ b/components/security_interstitials/core/https_only_mode_metrics.h
@@ -5,12 +5,13 @@ #ifndef COMPONENTS_SECURITY_INTERSTITIALS_CORE_HTTPS_ONLY_MODE_METRICS_H_ #define COMPONENTS_SECURITY_INTERSTITIALS_CORE_HTTPS_ONLY_MODE_METRICS_H_ -namespace security_interstitials { - -namespace https_only_mode { +namespace security_interstitials::https_only_mode { extern const char kEventHistogram[]; +// Recorded by HTTPS-First Mode and HTTPS-Upgrade logic when a navigation is +// upgraded, or is eligible to be upgraded but wasn't. +// // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. enum class Event { @@ -37,10 +38,16 @@ // A prerendered HTTP navigation was cancelled. kPrerenderCancelled = 6, - kMaxValue = kPrerenderCancelled, + // An upgrade would have been attempted but wasn't because neither HTTPS-First + // Mode nor HTTPS Upgrading were enabled. + kUpgradeNotAttempted = 7, + + kMaxValue = kUpgradeNotAttempted, }; -} // namespace https_only_mode -} // namespace security_interstitials +// Helper to record an HTTPS-First Mode navigation event. +void RecordHttpsFirstModeNavigation(Event event); + +} // namespace security_interstitials::https_only_mode #endif // COMPONENTS_SECURITY_INTERSTITIALS_CORE_HTTPS_ONLY_MODE_METRICS_H_
diff --git a/components/sync/test/test_sync_service.cc b/components/sync/test/test_sync_service.cc index 5f2c31f..ba19f27f 100644 --- a/components/sync/test/test_sync_service.cc +++ b/components/sync/test/test_sync_service.cc
@@ -170,6 +170,9 @@ if (auth_error_.IsPersistentError()) { return UserActionableError::kSignInNeedsUpdate; } + if (user_settings_.IsPassphraseRequiredForPreferredDataTypes()) { + return UserActionableError::kNeedsPassphrase; + } return UserActionableError::kNone; }
diff --git a/components/ui_devtools/devtools_server.cc b/components/ui_devtools/devtools_server.cc index 7ab612a..89c7170 100644 --- a/components/ui_devtools/devtools_server.cc +++ b/components/ui_devtools/devtools_server.cc
@@ -37,8 +37,7 @@ void WriteUIDevtoolsPortToFile(base::FilePath output_dir, int port) { base::FilePath path = output_dir.Append(kUIDevToolsActivePortFileName); std::string port_target_string = base::StringPrintf("%d", port); - if (base::WriteFile(path, port_target_string.c_str(), - static_cast<int>(port_target_string.length())) < 0) { + if (!base::WriteFile(path, port_target_string)) { LOG(ERROR) << "Error writing UIDevTools active port to file"; } }
diff --git a/content/browser/child_process_launcher_helper.cc b/content/browser/child_process_launcher_helper.cc index 162ef74..87e8962 100644 --- a/content/browser/child_process_launcher_helper.cc +++ b/content/browser/child_process_launcher_helper.cc
@@ -189,6 +189,13 @@ if (launch_elevated) { invitation.set_extra_flags(MOJO_SEND_INVITATION_FLAG_ELEVATED); } + +#if BUILDFLAG(IS_WIN) + if (delegate_->ShouldUseUntrustedMojoInvitation()) { + invitation.set_extra_flags(MOJO_SEND_INVITATION_FLAG_UNTRUSTED_PROCESS); + } +#endif + if (process.process.IsValid()) { #if !BUILDFLAG(IS_FUCHSIA) if (mojo_named_channel_) {
diff --git a/content/browser/renderer_host/isolated_context_util.cc b/content/browser/renderer_host/isolated_context_util.cc index c607906..3a053cf 100644 --- a/content/browser/renderer_host/isolated_context_util.cc +++ b/content/browser/renderer_host/isolated_context_util.cc
@@ -13,8 +13,7 @@ bool IsFrameSufficientlyIsolated(RenderFrameHost* frame) { if (frame->GetWebExposedIsolationLevel() >= - content::RenderFrameHost::WebExposedIsolationLevel:: - kMaybeIsolatedApplication) { + content::WebExposedIsolationLevel::kMaybeIsolatedApplication) { return true; }
diff --git a/content/browser/renderer_host/isolated_web_app_throttle_browsertest.cc b/content/browser/renderer_host/isolated_web_app_throttle_browsertest.cc index cc954f3..893e7b79 100644 --- a/content/browser/renderer_host/isolated_web_app_throttle_browsertest.cc +++ b/content/browser/renderer_host/isolated_web_app_throttle_browsertest.cc
@@ -23,11 +23,10 @@ namespace { -static constexpr RenderFrameHost::WebExposedIsolationLevel kNotIsolated = - RenderFrameHost::WebExposedIsolationLevel::kNotIsolated; -static constexpr RenderFrameHost::WebExposedIsolationLevel - kMaybeIsolatedApplication = - RenderFrameHost::WebExposedIsolationLevel::kMaybeIsolatedApplication; +static constexpr WebExposedIsolationLevel kNotIsolated = + WebExposedIsolationLevel::kNotIsolated; +static constexpr WebExposedIsolationLevel kMaybeIsolatedApplication = + WebExposedIsolationLevel::kMaybeIsolatedApplication; const char kAppHost[] = "app.com"; const char kNonAppHost[] = "other.com";
diff --git a/content/browser/renderer_host/isolated_web_app_throttle_unittest.cc b/content/browser/renderer_host/isolated_web_app_throttle_unittest.cc index cd002e1..33ca063 100644 --- a/content/browser/renderer_host/isolated_web_app_throttle_unittest.cc +++ b/content/browser/renderer_host/isolated_web_app_throttle_unittest.cc
@@ -31,11 +31,10 @@ const char kAppUrl2[] = "https://isolated.app/page"; const char kNonAppUrl[] = "https://example.com"; const char kNonAppUrl2[] = "https://example.com/page"; -static constexpr RenderFrameHost::WebExposedIsolationLevel kNotIsolated = - RenderFrameHost::WebExposedIsolationLevel::kNotIsolated; -static constexpr RenderFrameHost::WebExposedIsolationLevel - kMaybeIsolatedApplication = - RenderFrameHost::WebExposedIsolationLevel::kMaybeIsolatedApplication; +static constexpr WebExposedIsolationLevel kNotIsolated = + WebExposedIsolationLevel::kNotIsolated; +static constexpr WebExposedIsolationLevel kMaybeIsolatedApplication = + WebExposedIsolationLevel::kMaybeIsolatedApplication; class IsolatedWebAppContentBrowserClient : public ContentBrowserClient { public: @@ -155,8 +154,7 @@ return child_rfh->GetFrameTreeNodeId(); } - RenderFrameHost::WebExposedIsolationLevel GetWebExposedIsolationLevel( - int frame_tree_node_id) { + WebExposedIsolationLevel GetWebExposedIsolationLevel(int frame_tree_node_id) { return FrameTreeNode::GloballyFindByID(frame_tree_node_id) ->current_frame_host() ->GetWebExposedIsolationLevel();
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index 6731136..7108cb11 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -2315,20 +2315,19 @@ return GetSiteInstance() != parent_->GetSiteInstance(); } -RenderFrameHost::WebExposedIsolationLevel -RenderFrameHostImpl::GetWebExposedIsolationLevel() { +WebExposedIsolationLevel RenderFrameHostImpl::GetWebExposedIsolationLevel() { WebExposedIsolationInfo info = GetSiteInstance()->GetSiteInfo().web_exposed_isolation_info(); if (info.is_isolated_application()) { // TODO(crbug.com/1159832): Check the document policy once it's available to // find out if this frame is actually isolated. - return RenderFrameHost::WebExposedIsolationLevel::kMaybeIsolatedApplication; + return WebExposedIsolationLevel::kMaybeIsolatedApplication; } else if (info.is_isolated()) { // TODO(crbug.com/1159832): Check the document policy once it's available to // find out if this frame is actually isolated. - return RenderFrameHost::WebExposedIsolationLevel::kMaybeIsolated; + return WebExposedIsolationLevel::kMaybeIsolated; } - return RenderFrameHost::WebExposedIsolationLevel::kNotIsolated; + return WebExposedIsolationLevel::kNotIsolated; } const GURL& RenderFrameHostImpl::GetLastCommittedURL() const {
diff --git a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc index 5ce0f858..6c8903d7 100644 --- a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc +++ b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc
@@ -5507,7 +5507,7 @@ // Not isolated: EXPECT_TRUE( NavigateToURL(shell(), embedded_test_server()->GetURL("/empty.html"))); - EXPECT_EQ(RenderFrameHost::WebExposedIsolationLevel::kNotIsolated, + EXPECT_EQ(WebExposedIsolationLevel::kNotIsolated, root_frame_host()->GetWebExposedIsolationLevel()); // Cross-Origin Isolated: @@ -5517,11 +5517,10 @@ "Cross-Origin-Opener-Policy: same-origin&" "Cross-Origin-Embedder-Policy: require-corp"))); // Status can be kIsolated or kMaybeIsolated. - EXPECT_LT(RenderFrameHost::WebExposedIsolationLevel::kNotIsolated, + EXPECT_LT(WebExposedIsolationLevel::kNotIsolated, root_frame_host()->GetWebExposedIsolationLevel()); - EXPECT_GT( - RenderFrameHost::WebExposedIsolationLevel::kMaybeIsolatedApplication, - root_frame_host()->GetWebExposedIsolationLevel()); + EXPECT_GT(WebExposedIsolationLevel::kMaybeIsolatedApplication, + root_frame_host()->GetWebExposedIsolationLevel()); } namespace { @@ -5587,7 +5586,7 @@ navigation_observer.Wait(); EXPECT_TRUE(navigation_observer.last_navigation_succeeded()); - EXPECT_EQ(RenderFrameHost::WebExposedIsolationLevel::kNotIsolated, + EXPECT_EQ(WebExposedIsolationLevel::kNotIsolated, root_frame_host()->GetWebExposedIsolationLevel()); // Cross-Origin Isolated: @@ -5597,7 +5596,7 @@ "/set-header?" "Cross-Origin-Opener-Policy: same-origin&" "Cross-Origin-Embedder-Policy: require-corp"))); - EXPECT_EQ(RenderFrameHost::WebExposedIsolationLevel::kMaybeIsolated, + EXPECT_EQ(WebExposedIsolationLevel::kMaybeIsolated, root_frame_host()->GetWebExposedIsolationLevel()); // Isolated Application: @@ -5606,11 +5605,10 @@ /*site_instance=*/nullptr, gfx::Size()); EXPECT_TRUE(NavigateToURL(app_shell, https_server()->GetURL(kAppHost, "/empty.html"))); - EXPECT_EQ( - RenderFrameHost::WebExposedIsolationLevel::kMaybeIsolatedApplication, - app_shell->web_contents() - ->GetPrimaryMainFrame() - ->GetWebExposedIsolationLevel()); + EXPECT_EQ(WebExposedIsolationLevel::kMaybeIsolatedApplication, + app_shell->web_contents() + ->GetPrimaryMainFrame() + ->GetWebExposedIsolationLevel()); } IN_PROC_BROWSER_TEST_F(RenderFrameHostImplBrowserTest,
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index d714f76..d35ba53 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1795,7 +1795,7 @@ #if BUILDFLAG(IS_WIN) std::unique_ptr<SandboxedProcessLauncherDelegate> sandbox_delegate = std::make_unique<RendererSandboxedProcessLauncherDelegateWin>( - cmd_line.get(), IsJitDisabled()); + *cmd_line, IsJitDisabled()); #else std::unique_ptr<SandboxedProcessLauncherDelegate> sandbox_delegate = std::make_unique<RendererSandboxedProcessLauncherDelegate>(); @@ -1809,8 +1809,6 @@ // Spawn the child process asynchronously to avoid blocking the UI thread. // As long as there's no renderer prefix, we can use the zygote process // at this stage. - mojo_invitation_.set_extra_flags( - MOJO_SEND_INVITATION_FLAG_UNTRUSTED_PROCESS); child_process_launcher_ = std::make_unique<ChildProcessLauncher>( std::move(sandbox_delegate), std::move(cmd_line), GetID(), this, std::move(mojo_invitation_),
diff --git a/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.cc b/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.cc index 83f3f0d6..0cc14c2 100644 --- a/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.cc +++ b/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.cc
@@ -56,8 +56,9 @@ #if BUILDFLAG(IS_WIN) RendererSandboxedProcessLauncherDelegateWin:: - RendererSandboxedProcessLauncherDelegateWin(base::CommandLine* cmd_line, - bool is_jit_disabled) + RendererSandboxedProcessLauncherDelegateWin( + const base::CommandLine& cmd_line, + bool is_jit_disabled) : renderer_code_integrity_enabled_( GetContentClient()->browser()->IsRendererCodeIntegrityEnabled()), renderer_app_container_disabled_( @@ -66,9 +67,9 @@ dynamic_code_can_be_disabled_ = true; return; } - if (cmd_line->HasSwitch(blink::switches::kJavaScriptFlags)) { + if (cmd_line.HasSwitch(blink::switches::kJavaScriptFlags)) { std::string js_flags = - cmd_line->GetSwitchValueASCII(blink::switches::kJavaScriptFlags); + cmd_line.GetSwitchValueASCII(blink::switches::kJavaScriptFlags); std::vector<base::StringPiece> js_flag_list = base::SplitStringPiece( js_flags, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); for (const auto& js_flag : js_flag_list) { @@ -162,6 +163,11 @@ return dynamic_code_can_be_disabled_; } +bool RendererSandboxedProcessLauncherDelegateWin:: + ShouldUseUntrustedMojoInvitation() { + return true; +} + #endif // BUILDFLAG(IS_WIN) } // namespace content
diff --git a/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.h b/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.h index 8f6531e..d375125 100644 --- a/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.h +++ b/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.h
@@ -28,6 +28,7 @@ bool EnableCpuSecurityMitigations() override; #endif // BUILDFLAG(IS_MAC) + // sandbox::policy::SandboxDelegate: sandbox::mojom::Sandbox GetSandboxType() override; }; @@ -36,16 +37,17 @@ class CONTENT_EXPORT RendererSandboxedProcessLauncherDelegateWin : public RendererSandboxedProcessLauncherDelegate { public: - RendererSandboxedProcessLauncherDelegateWin(base::CommandLine* cmd_line, + RendererSandboxedProcessLauncherDelegateWin(const base::CommandLine& cmd_line, bool is_jit_disabled); - + // sandbox::policy::SandboxDelegate: std::string GetSandboxTag() override; - bool PreSpawnTarget(sandbox::TargetPolicy* policy) override; void PostSpawnTarget(base::ProcessHandle process) override; - bool CetCompatible() override; + // SandboxedProcessLauncherDelegate: + bool ShouldUseUntrustedMojoInvitation() override; + private: const bool renderer_code_integrity_enabled_; const bool renderer_app_container_disabled_;
diff --git a/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate_unittest.cc b/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate_unittest.cc index 4ba6d08..1677243 100644 --- a/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate_unittest.cc +++ b/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate_unittest.cc
@@ -63,7 +63,7 @@ auto policy = broker->CreatePolicy(); content::RendererSandboxedProcessLauncherDelegateWin test_renderer_delegate( - &cmd_line, /* is_jit_disabled */ false); + cmd_line, /*is_jit_disabled=*/false); // PreSpawn ::sandbox::ResultCode result =
diff --git a/content/browser/worker_host/worker_browsertest.cc b/content/browser/worker_host/worker_browsertest.cc index 8689c5e6..9b2c3a6f 100644 --- a/content/browser/worker_host/worker_browsertest.cc +++ b/content/browser/worker_host/worker_browsertest.cc
@@ -379,7 +379,7 @@ ProcessLock::FromSiteInfo(page_rfh->GetSiteInstance()->GetSiteInfo()); EXPECT_TRUE(page_lock.GetWebExposedIsolationInfo().is_isolated()); EXPECT_GT(page_rfh->GetWebExposedIsolationLevel(), - RenderFrameHost::WebExposedIsolationLevel::kNotIsolated); + WebExposedIsolationLevel::kNotIsolated); // Create a shared worker from the cross-origin-isolated page:
diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn index 9043efd..110cb3d 100644 --- a/content/public/browser/BUILD.gn +++ b/content/public/browser/BUILD.gn
@@ -434,6 +434,7 @@ "web_contents_view_delegate.cc", "web_contents_view_delegate.h", "web_drag_dest_delegate.h", + "web_exposed_isolation_level.h", "web_ui.h", "web_ui_browser_interface_broker_registry.h", "web_ui_controller.cc",
diff --git a/content/public/browser/render_frame_host.h b/content/public/browser/render_frame_host.h index 90c73ae..986ae0e 100644 --- a/content/public/browser/render_frame_host.h +++ b/content/public/browser/render_frame_host.h
@@ -16,6 +16,7 @@ #include "build/build_config.h" #include "content/common/content_export.h" #include "content/public/browser/back_forward_cache.h" +#include "content/public/browser/web_exposed_isolation_level.h" #include "content/public/common/extra_mojo_js_features.mojom.h" #include "content/public/common/isolated_world_ids.h" #include "ipc/ipc_listener.h" @@ -456,69 +457,6 @@ // Returns true if the frame is out of process relative to its parent. virtual bool IsCrossProcessSubframe() = 0; - // Reflects the web-exposed isolation properties of a given frame, which - // depends both on the process in which the frame lives, as well as the agent - // cluster into which it has been placed. - // - // Three broad categories are possible: - // - // 1. The frame may not be isolated in a web-facing way. - // - // 2. The frame may be "cross-origin isolated", corresponding to the value - // returned by `WorkerOrWindowGlobalScope.crossOriginIsolated`, and gating - // the set of APIs which specify [CrossOriginIsolated] attributes. The - // requirements for this level of isolation are described in [1] and [2] - // below. - // - // In practice this means that the frame is guaranteed to be hosted in a - // process that is isolated to the frame's origin. Additionally, the - // frame may embed cross-origin frames and workers only if they have - // opted in to being embedded by asserting CORS or CORP headers. - // - // 3. The frame may be an "isolated application", corresponding to a mostly - // TBD set of restrictions we're exploring in https://crbug.com/1206150, - // and which currently gate the set of APIs which specify - // [DirectSocketEnabled] attributes. - // - // The enum below is ordered from least-isolated to most-isolated. - // - // [1] - // https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/crossOriginIsolated - // [2] https://w3c.github.io/webappsec-permissions-policy/ - // - // NOTE: some of the information needed to fully determine a frame's - // isolation status is currently not available in the browser process. - // Access to web platform API's must be checked in the renderer, with the - // WebExposedIsolationLevel on the browser side only used as a backup to - // catch misbehaving renderers. - enum class WebExposedIsolationLevel { - // The frame is not in a cross-origin isolated agent cluster. It may not - // meet the requirements for such isolation in itself, or it may be - // hosted in a process capable of supporting cross-origin isolation or - // application isolation, but barred from using those capabilities by - // its embedder. - kNotIsolated, - - // The frame is in a cross-origin isolated process and agent cluster, - // allowed to access web platform APIs gated on [CrossOriginIsolated]. - // - // TODO(clamy): Remove this "maybe" status once it is possible to determine - // conclusively whether the document is capable of calling cross-origin - // isolated APIs by examining the active document policy. - kMaybeIsolated, - kIsolated, - - // The frame is in a cross-origin isolated process and agent cluster that - // supports application isolation, allowing access to web platform APIs - // gated on both [CrossOriginIsolated] and [DirectSocketEnabled]. - // - // TODO(clamy): Remove this "maybe" status once it is possible to determine - // conclusively whether the document is capable of calling cross-origin - // isolated APIs by examining the active document policy. - kMaybeIsolatedApplication, - kIsolatedApplication - }; - // Returns the web-exposed isolation level of a frame's agent cluster. // // Note that this is a property of the document so can change as the frame
diff --git a/content/public/browser/web_exposed_isolation_level.h b/content/public/browser/web_exposed_isolation_level.h new file mode 100644 index 0000000..7554e85 --- /dev/null +++ b/content/public/browser/web_exposed_isolation_level.h
@@ -0,0 +1,77 @@ +// 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 CONTENT_PUBLIC_BROWSER_WEB_EXPOSED_ISOLATION_LEVEL_H_ +#define CONTENT_PUBLIC_BROWSER_WEB_EXPOSED_ISOLATION_LEVEL_H_ + +namespace content { + +// Reflects the web-exposed isolation properties of a given frame or worker. +// For the frame, this depends both on the process in which the frame lives, as +// well as the agent cluster into which it has been placed. For a worker, this +// depends on the process in which the worker lives. +// +// Three broad categories are possible: +// +// 1. The frame or worker may not be isolated in a web-facing way. +// +// 2. The frame or worker may be "cross-origin isolated", corresponding to the +// value returned by `WorkerOrWindowGlobalScope.crossOriginIsolated`, and +// gating the set of APIs which specify [CrossOriginIsolated] attributes. +// The requirements for this level of isolation are described in [1] and [2] +// below. +// +// In practice this means that the frame or worker are guaranteed to be +// hosted in a process that is isolated to the frame or worker's origin. +// Additionally for frames, the frame may embed cross-origin frames and +// workers only if they have opted in to being embedded by asserting CORS or +// CORP headers. +// +// 3. The frame or worker may be an "isolated application", corresponding to a +// mostly TBD set of restrictions we're exploring in +// https://crbug.com/1206150, and which currently gate the set of APIs +// which specify [DirectSocketEnabled] attributes. +// +// The enum below is ordered from least-isolated to most-isolated. +// +// [1] +// https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/crossOriginIsolated +// [2] https://w3c.github.io/webappsec-permissions-policy/ +// +// NOTE: some of the information needed to fully determine a frame or worker's +// isolation status is currently not available in the browser process. +// Access to web platform API's must be checked in the renderer, with the +// WebExposedIsolationLevel on the browser side only used as a backup to +// catch misbehaving renderers. +enum class WebExposedIsolationLevel { + // The frame or worker is not in a cross-origin isolated agent cluster. It may + // not meet the requirements for such isolation in itself, or it may be hosted + // in a process capable of supporting cross-origin isolation or application + // isolation, but barred from using those capabilities by its embedder. + kNotIsolated, + + // The frame or worker is in a cross-origin isolated process and agent + // cluster, allowed to access web platform APIs gated on + // [CrossOriginIsolated]. + // + // TODO(clamy): Remove this "maybe" status once it is possible to determine + // conclusively whether the document is capable of calling cross-origin + // isolated APIs by examining the active document policy. + kMaybeIsolated, + kIsolated, + + // The frame or worker is in a cross-origin isolated process and agent cluster + // that supports application isolation, allowing access to web platform APIs + // gated on both [CrossOriginIsolated] and [DirectSocketEnabled]. + // + // TODO(clamy): Remove this "maybe" status once it is possible to determine + // conclusively whether the document is capable of calling cross-origin + // isolated APIs by examining the active document policy. + kMaybeIsolatedApplication, + kIsolatedApplication +}; + +} // namespace content + +#endif // CONTENT_PUBLIC_BROWSER_WEB_EXPOSED_ISOLATION_LEVEL_H_
diff --git a/content/public/common/sandboxed_process_launcher_delegate.cc b/content/public/common/sandboxed_process_launcher_delegate.cc index 422613b7..e6753a2 100644 --- a/content/public/common/sandboxed_process_launcher_delegate.cc +++ b/content/public/common/sandboxed_process_launcher_delegate.cc
@@ -32,10 +32,6 @@ void SandboxedProcessLauncherDelegate::PostSpawnTarget( base::ProcessHandle process) {} -bool SandboxedProcessLauncherDelegate::ShouldLaunchElevated() { - return false; -} - bool SandboxedProcessLauncherDelegate::ShouldUnsandboxedRunInJob() { return false; } @@ -45,6 +41,16 @@ } #endif // BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_WIN) +bool SandboxedProcessLauncherDelegate::ShouldLaunchElevated() { + return false; +} + +bool SandboxedProcessLauncherDelegate::ShouldUseUntrustedMojoInvitation() { + return false; +} +#endif // BUILDFLAG(IS_WIN) + #if BUILDFLAG(USE_ZYGOTE) ZygoteCommunication* SandboxedProcessLauncherDelegate::GetZygote() { // Default to the sandboxed zygote. If a more lax sandbox is needed, then the
diff --git a/content/public/common/sandboxed_process_launcher_delegate.h b/content/public/common/sandboxed_process_launcher_delegate.h index ea53423..1dba166f 100644 --- a/content/public/common/sandboxed_process_launcher_delegate.h +++ b/content/public/common/sandboxed_process_launcher_delegate.h
@@ -29,7 +29,7 @@ ~SandboxedProcessLauncherDelegate() override {} #if BUILDFLAG(IS_WIN) - // SandboxDelegate: + // sandbox::policy::SandboxDelegate: std::string GetSandboxTag() override; bool DisableDefaultPolicy() override; bool GetAppContainerId(std::string* appcontainer_id) override; @@ -37,10 +37,17 @@ void PostSpawnTarget(base::ProcessHandle process) override; bool ShouldUnsandboxedRunInJob() override; bool CetCompatible() override; +#endif // BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_WIN) // Override to return true if the process should be launched as an elevated // process (which implies no sandbox). virtual bool ShouldLaunchElevated(); + + // Whether or not to use the MOJO_SEND_INVITATION_FLAG_UNTRUSTED_PROCESS flag + // on the outgoing invitation used to create the mojo connection to this + // process. + virtual bool ShouldUseUntrustedMojoInvitation(); #endif // BUILDFLAG(IS_WIN) #if BUILDFLAG(USE_ZYGOTE)
diff --git a/content/renderer/sandbox_mac_v2_unittest.mm b/content/renderer/sandbox_mac_v2_unittest.mm index 99aecb6..3290f30 100644 --- a/content/renderer/sandbox_mac_v2_unittest.mm +++ b/content/renderer/sandbox_mac_v2_unittest.mm
@@ -109,10 +109,10 @@ CHECK(result) << error; // Test the properties of the sandbox profile. - const char log_msg[] = "logged"; - CHECK_NE(-1, base::WriteFile(log_file, log_msg, sizeof(log_msg))); + constexpr base::StringPiece log_msg = "logged"; + CHECK(base::WriteFile(log_file, base::StringPiece(log_msg))); // Log file is write only. - char read_buf[sizeof(log_msg)]; + char read_buf[log_msg.size()]; CHECK_EQ(-1, base::ReadFile(log_file, read_buf, sizeof(read_buf))); // Try executing the blessed binary.
diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn index c446c329..fcb7b0a 100644 --- a/content/shell/BUILD.gn +++ b/content/shell/BUILD.gn
@@ -114,6 +114,13 @@ "app/shell_main_delegate_mac.mm", ] } + if (is_ios) { + sources += [ + "app/ios/shell_application_ios.h", + "app/ios/shell_application_ios.mm", + ] + configs += [ "//build/config/compiler:enable_arc" ] + } defines = [ "CONTENT_SHELL_VERSION=\"$content_shell_version\"", "CONTENT_SHELL_MAJOR_VERSION=\"$content_shell_major_version\"", @@ -204,8 +211,6 @@ if (is_ios) { sources += [ - "browser/shell_application_ios.h", - "browser/shell_application_ios.mm", "browser/shell_platform_delegate_ios.mm", "browser/shell_web_contents_view_delegate_ios.mm", ]
diff --git a/content/shell/browser/shell_application_ios.h b/content/shell/app/ios/shell_application_ios.h similarity index 72% rename from content/shell/browser/shell_application_ios.h rename to content/shell/app/ios/shell_application_ios.h index a8e0380f..2a4b6f2 100644 --- a/content/shell/browser/shell_application_ios.h +++ b/content/shell/app/ios/shell_application_ios.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_SHELL_BROWSER_SHELL_APPLICATION_IOS_H_ -#define CONTENT_SHELL_BROWSER_SHELL_APPLICATION_IOS_H_ +#ifndef CONTENT_SHELL_APP_IOS_SHELL_APPLICATION_IOS_H_ +#define CONTENT_SHELL_APP_IOS_SHELL_APPLICATION_IOS_H_ #ifdef __OBJC__ #import <UIKit/UIKit.h> @@ -20,4 +20,4 @@ int RunShellApplication(int argc, const char* _Nullable* _Nullable argv); -#endif // CONTENT_SHELL_BROWSER_SHELL_APPLICATION_IOS_H_ +#endif // CONTENT_SHELL_APP_IOS_SHELL_APPLICATION_IOS_H_
diff --git a/content/shell/browser/shell_application_ios.mm b/content/shell/app/ios/shell_application_ios.mm similarity index 65% rename from content/shell/browser/shell_application_ios.mm rename to content/shell/app/ios/shell_application_ios.mm index 363d7df6..38b0d55 100644 --- a/content/shell/browser/shell_application_ios.mm +++ b/content/shell/app/ios/shell_application_ios.mm
@@ -2,33 +2,45 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "content/shell/browser/shell_application_ios.h" +#import "content/shell/app/ios/shell_application_ios.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." #endif #include "base/command_line.h" +#include "content/public/app/content_main.h" +#include "content/public/app/content_main_runner.h" +#include "content/shell/app/shell_main_delegate.h" #include "content/shell/browser/shell.h" #include "content/shell/browser/shell_browser_context.h" #include "content/shell/browser/shell_content_browser_client.h" #include "ui/gfx/geometry/size.h" +static int g_argc = 0; +static const char** g_argv = nullptr; +static std::unique_ptr<content::ContentMainRunner> g_main_runner; +static std::unique_ptr<content::ShellMainDelegate> g_main_delegate; + @interface ShellAppSceneDelegate : UIResponder <UIWindowSceneDelegate> @end @implementation ShellAppSceneDelegate -@synthesize window = _window; - - (void)scene:(UIScene*)scene willConnectToSession:(UISceneSession*)session options:(UISceneConnectionOptions*)connectionOptions { CHECK_EQ(1u, content::Shell::windows().size()); UIWindow* window = content::Shell::windows()[0]->window(); + + // The rootViewController must be added after a windowScene is set + // so stash it in a temp variable and then reattach it. If we don't + // do this the safe area gets screwed up on orientation changes. + UIViewController* controller = window.rootViewController; + window.rootViewController = nil; window.windowScene = (UIWindowScene*)scene; - self.window = window; - [self.window makeKeyAndVisible]; + window.rootViewController = controller; + [window makeKeyAndVisible]; } @end @@ -39,13 +51,21 @@ configurationForConnectingSceneSession: (UISceneSession*)connectingSceneSession options:(UISceneConnectionOptions*)options { - UISceneConfiguration* configuration = [[UISceneConfiguration alloc] init]; + UISceneConfiguration* configuration = + [[UISceneConfiguration alloc] initWithName:nil + sessionRole:connectingSceneSession.role]; configuration.delegateClass = ShellAppSceneDelegate.class; return configuration; } - (BOOL)application:(UIApplication*)application willFinishLaunchingWithOptions:(NSDictionary*)launchOptions { + g_main_delegate = std::make_unique<content::ShellMainDelegate>(); + content::ContentMainParams params(g_main_delegate.get()); + params.argc = g_argc; + params.argv = g_argv; + g_main_runner = content::ContentMainRunner::Create(); + content::RunContentProcess(std::move(params), g_main_runner.get()); return YES; } @@ -83,6 +103,8 @@ @end int RunShellApplication(int argc, const char** argv) { + g_argc = argc; + g_argv = argv; @autoreleasepool { return UIApplicationMain(argc, const_cast<char**>(argv), nil, NSStringFromClass([ShellAppDelegate class]));
diff --git a/content/shell/app/shell_main.cc b/content/shell/app/shell_main.cc index 26b7fd9..352dc26 100644 --- a/content/shell/app/shell_main.cc +++ b/content/shell/app/shell_main.cc
@@ -15,8 +15,7 @@ #if BUILDFLAG(IS_IOS) #include "base/at_exit.h" // nogncheck -#include "content/public/app/content_main_runner.h" // nogncheck -#include "content/shell/browser/shell_application_ios.h" // nogncheck +#include "content/shell/app/ios/shell_application_ios.h" #endif #if BUILDFLAG(IS_WIN) @@ -49,15 +48,7 @@ // Create this here since it's needed to start the crash handler. base::AtExitManager at_exit; - content::ShellMainDelegate delegate; - content::ContentMainParams params(&delegate); - params.argc = argc; - params.argv = argv; - auto runner = content::ContentMainRunner::Create(); - int res = content::RunContentProcess(std::move(params), runner.get()); - if (res != 0) { - return res; - } + // We will create the ContentMainRunner once the UIApplication is ready. return RunShellApplication(argc, argv); }
diff --git a/content/shell/app/shell_main_delegate.cc b/content/shell/app/shell_main_delegate.cc index cc5b8f3..89aa942a 100644 --- a/content/shell/app/shell_main_delegate.cc +++ b/content/shell/app/shell_main_delegate.cc
@@ -85,7 +85,7 @@ #endif #if BUILDFLAG(IS_IOS) -#include "content/shell/browser/shell_application_ios.h" +#include "content/shell/app/ios/shell_application_ios.h" #endif namespace {
diff --git a/courgette/courgette_tool.cc b/courgette/courgette_tool.cc index 17fd2ff..169d160b8 100644 --- a/courgette/courgette_tool.cc +++ b/courgette/courgette_tool.cc
@@ -101,13 +101,11 @@ void WriteSinkToFile(const courgette::SinkStream* sink, const base::FilePath& output_file) { - int count = base::WriteFile(output_file, - reinterpret_cast<const char*>(sink->Buffer()), - static_cast<int>(sink->Length())); - if (count == -1) + bool success = base::WriteFile( + output_file, base::make_span(sink->Buffer(), sink->Length())); + if (!success) { Problem("Can't write output."); - if (static_cast<size_t>(count) != sink->Length()) - Problem("Incomplete write."); + } } bool Supported(const base::FilePath& input_file) {
diff --git a/extensions/browser/api/declarative/rules_cache_delegate.cc b/extensions/browser/api/declarative/rules_cache_delegate.cc index be71c1c5..26615a0 100644 --- a/extensions/browser/api/declarative/rules_cache_delegate.cc +++ b/extensions/browser/api/declarative/rules_cache_delegate.cc
@@ -252,9 +252,8 @@ DCHECK_EQ(Type::kPersistent, type_); ExtensionPrefs* extension_prefs = ExtensionPrefs::Get(browser_context_); - extension_prefs->UpdateExtensionPref( - extension_id, rules_stored_key_, - std::make_unique<base::Value>(rules_stored)); + extension_prefs->UpdateExtensionPref(extension_id, rules_stored_key_, + base::Value(rules_stored)); } } // namespace extensions
diff --git a/extensions/browser/api/device_permissions_manager.cc b/extensions/browser/api/device_permissions_manager.cc index 8e118e7..7ab2831 100644 --- a/extensions/browser/api/device_permissions_manager.cc +++ b/extensions/browser/api/device_permissions_manager.cc
@@ -168,7 +168,7 @@ // Clears all DevicePermissionEntries for the app from ExtensionPrefs. void ClearDevicePermissionEntries(ExtensionPrefs* prefs, const std::string& extension_id) { - prefs->UpdateExtensionPref(extension_id, kDevices, nullptr); + prefs->UpdateExtensionPref(extension_id, kDevices, absl::nullopt); } scoped_refptr<DevicePermissionEntry> ReadDevicePermissionEntry(
diff --git a/extensions/browser/api/file_system/file_system_api.cc b/extensions/browser/api/file_system/file_system_api.cc index ce0ad1a0..21855c54 100644 --- a/extensions/browser/api/file_system/file_system_api.cc +++ b/extensions/browser/api/file_system/file_system_api.cc
@@ -276,9 +276,8 @@ void SetLastChooseEntryDirectory(ExtensionPrefs* prefs, const std::string& extension_id, const base::FilePath& path) { - prefs->UpdateExtensionPref( - extension_id, kLastChooseEntryDirectory, - base::Value::ToUniquePtrValue(::base::FilePathToValue(path))); + prefs->UpdateExtensionPref(extension_id, kLastChooseEntryDirectory, + ::base::FilePathToValue(path)); } } // namespace file_system_api
diff --git a/extensions/browser/api/runtime/runtime_api.cc b/extensions/browser/api/runtime/runtime_api.cc index eff2ce77..7c45ff6d 100644 --- a/extensions/browser/api/runtime/runtime_api.cc +++ b/extensions/browser/api/runtime/runtime_api.cc
@@ -632,9 +632,8 @@ } ExtensionPrefs::Get(browser_context()) - ->UpdateExtensionPref( - extension_id(), kUninstallUrl, - std::make_unique<base::Value>(std::move(params->url))); + ->UpdateExtensionPref(extension_id(), kUninstallUrl, + base::Value(std::move(params->url))); return RespondNow(NoArguments()); }
diff --git a/extensions/browser/api/scripting/scripting_utils.cc b/extensions/browser/api/scripting/scripting_utils.cc index b4265cf..360d3018 100644 --- a/extensions/browser/api/scripting/scripting_utils.cc +++ b/extensions/browser/api/scripting/scripting_utils.cc
@@ -8,6 +8,7 @@ #include "extensions/browser/api/scripting/scripting_constants.h" #include "extensions/browser/extension_prefs.h" #include "extensions/common/user_script.h" +#include "third_party/abseil-cpp/absl/types/optional.h" namespace extensions { namespace scripting { @@ -36,7 +37,7 @@ const ExtensionId& extension_id) { ExtensionPrefs::Get(browser_context) ->UpdateExtensionPref(extension_id, kPrefPersistentScriptURLPatterns, - nullptr); + absl::nullopt); } } // namespace scripting
diff --git a/extensions/browser/blocklist_extension_prefs.cc b/extensions/browser/blocklist_extension_prefs.cc index 6423587..dabfb07 100644 --- a/extensions/browser/blocklist_extension_prefs.cc +++ b/extensions/browser/blocklist_extension_prefs.cc
@@ -6,6 +6,7 @@ #include "extensions/browser/blocklist_state.h" #include "extensions/browser/extension_prefs.h" +#include "third_party/abseil-cpp/absl/types/optional.h" namespace extensions { @@ -196,12 +197,12 @@ ExtensionPrefs* extension_prefs) { if (bitmap_blocklist_state == BitMapBlocklistState::NOT_BLOCKLISTED) { extension_prefs->UpdateExtensionPref(extension_id, kPrefBlocklistState, - nullptr); + absl::nullopt); extension_prefs->DeleteExtensionPrefsIfPrefEmpty(extension_id); } else { extension_prefs->UpdateExtensionPref( extension_id, kPrefBlocklistState, - std::make_unique<base::Value>( + base::Value( BitMapBlocklistStateToBlocklistState(bitmap_blocklist_state))); } }
diff --git a/extensions/browser/browser_context_data.cc b/extensions/browser/browser_context_data.cc index a62a3de..b7011b6 100644 --- a/extensions/browser/browser_context_data.cc +++ b/extensions/browser/browser_context_data.cc
@@ -16,9 +16,9 @@ } bool BrowserContextData::IsIsolatedApplication() const { - return frame_ && frame_->GetWebExposedIsolationLevel() >= - content::RenderFrameHost::WebExposedIsolationLevel:: - kMaybeIsolatedApplication; + return frame_ && + frame_->GetWebExposedIsolationLevel() >= + content::WebExposedIsolationLevel::kMaybeIsolatedApplication; } std::unique_ptr<ContextData> BrowserContextData::GetLocalParentOrOpener()
diff --git a/extensions/browser/event_router.cc b/extensions/browser/event_router.cc index 8f6d7c54..97c9240 100644 --- a/extensions/browser/event_router.cc +++ b/extensions/browser/event_router.cc
@@ -1262,9 +1262,8 @@ const char* pref_key = type == RegisteredEventType::kLazy ? kRegisteredLazyEvents : kRegisteredServiceWorkerEvents; - extension_prefs_->UpdateExtensionPref( - extension_id, pref_key, - std::make_unique<base::Value>(std::move(events_list))); + extension_prefs_->UpdateExtensionPref(extension_id, pref_key, + base::Value(std::move(events_list))); } void EventRouter::AddFilterToEvent(const std::string& event_name,
diff --git a/extensions/browser/events/lazy_event_dispatch_util.cc b/extensions/browser/events/lazy_event_dispatch_util.cc index 7d1fb90..4cf5f2ec 100644 --- a/extensions/browser/events/lazy_event_dispatch_util.cc +++ b/extensions/browser/events/lazy_event_dispatch_util.cc
@@ -9,6 +9,7 @@ #include "content/public/browser/browser_context.h" #include "extensions/browser/event_router.h" #include "extensions/browser/extension_prefs.h" +#include "third_party/abseil-cpp/absl/types/optional.h" namespace extensions { @@ -95,8 +96,8 @@ ExtensionPrefs* prefs = ExtensionPrefs::Get(browser_context_); DCHECK(prefs); - prefs->UpdateExtensionPref(extension_id, - kPrefPendingOnInstalledEventDispatchInfo, nullptr); + prefs->UpdateExtensionPref( + extension_id, kPrefPendingOnInstalledEventDispatchInfo, absl::nullopt); } void LazyEventDispatchUtil::StorePendingOnInstallInfoToPref( @@ -114,9 +115,9 @@ previous_version.IsValid() ? previous_version.GetString() : std::string()); - prefs->UpdateExtensionPref( - extension->id(), kPrefPendingOnInstalledEventDispatchInfo, - std::make_unique<base::Value>(std::move(pending_on_install_info))); + prefs->UpdateExtensionPref(extension->id(), + kPrefPendingOnInstalledEventDispatchInfo, + base::Value(std::move(pending_on_install_info))); } } // namespace extensions
diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc index 7e400467..6b5f2ac 100644 --- a/extensions/browser/extension_prefs.cc +++ b/extensions/browser/extension_prefs.cc
@@ -568,16 +568,17 @@ void ExtensionPrefs::UpdateExtensionPref( const std::string& extension_id, base::StringPiece key, - std::unique_ptr<base::Value> data_value) { + absl::optional<base::Value> data_value) { if (!crx_file::id_util::IdIsValid(extension_id)) { NOTREACHED() << "Invalid extension_id " << extension_id; return; } ScopedExtensionPrefUpdate update(prefs_, extension_id); - if (data_value) - update->Set(key, base::Value::FromUniquePtrValue(std::move(data_value))); - else + if (data_value) { + update->Set(key, *std::move(data_value)); + } else { update->Remove(key); + } } void ExtensionPrefs::DeleteExtensionPrefs(const std::string& extension_id) { @@ -778,10 +779,7 @@ const std::string& extension_id, base::StringPiece pref_key, const URLPatternSet& set) { - // Clear the |pref_key| in case |set| is empty. - std::unique_ptr<base::Value> value = - std::make_unique<base::Value>(set.ToValue()); - UpdateExtensionPref(extension_id, pref_key, std::move(value)); + UpdateExtensionPref(extension_id, pref_key, base::Value(set.ToValue())); } bool ExtensionPrefs::ReadPrefAsBooleanAndReturn( @@ -837,6 +835,8 @@ std::move(explicit_hosts), std::move(scriptable_hosts)); } +namespace { + // Set the API or Manifest permissions. // The format of api_values is: // [ "permission_name1", // permissions do not support detail. @@ -846,7 +846,7 @@ // ... // ] template <typename T> -static std::unique_ptr<base::Value> CreatePermissionList(const T& permissions) { +base::Value CreatePermissionList(const T& permissions) { base::Value::List values; for (const auto* permission : permissions) { std::unique_ptr<base::Value> detail(permission->ToValue()); @@ -859,9 +859,11 @@ values.Append(permission->name()); } } - return std::make_unique<base::Value>(std::move(values)); + return base::Value(std::move(values)); } +} // anonymous namespace + void ExtensionPrefs::SetExtensionPrefPermissionSet( const std::string& extension_id, base::StringPiece pref_key, @@ -926,7 +928,7 @@ ReadPrefAsInteger(extension_id, kPrefAcknowledgePromptCount, &count); ++count; UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, - std::make_unique<base::Value>(count)); + base::Value(count)); return count; } @@ -939,8 +941,8 @@ const std::string& extension_id) { DCHECK(crx_file::id_util::IdIsValid(extension_id)); UpdateExtensionPref(extension_id, kPrefExternalAcknowledged, - std::make_unique<base::Value>(true)); - UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, nullptr); + base::Value(true)); + UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, absl::nullopt); } bool ExtensionPrefs::IsBlocklistedExtensionAcknowledged( @@ -954,7 +956,7 @@ DCHECK(crx_file::id_util::IdIsValid(extension_id)); blocklist_prefs::AddAcknowledgedBlocklistState( extension_id, BitMapBlocklistState::BLOCKLISTED_MALWARE, this); - UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, nullptr); + UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, absl::nullopt); } bool ExtensionPrefs::IsExternalInstallFirstRun( @@ -966,7 +968,7 @@ const std::string& extension_id) { DCHECK(crx_file::id_util::IdIsValid(extension_id)); UpdateExtensionPref(extension_id, kPrefExternalInstallFirstRun, - std::make_unique<base::Value>(true)); + base::Value(true)); } bool ExtensionPrefs::SetAlertSystemFirstRun() { @@ -1094,10 +1096,9 @@ return; if (new_value == default_bit) { - UpdateExtensionPref(extension_id, pref_key, nullptr); + UpdateExtensionPref(extension_id, pref_key, absl::nullopt); } else { - UpdateExtensionPref(extension_id, pref_key, - std::make_unique<base::Value>(new_value)); + UpdateExtensionPref(extension_id, pref_key, base::Value(new_value)); } } @@ -1144,8 +1145,7 @@ void ExtensionPrefs::SetActiveBit(const std::string& extension_id, bool active) { - UpdateExtensionPref(extension_id, kActiveBit, - std::make_unique<base::Value>(active)); + UpdateExtensionPref(extension_id, kActiveBit, base::Value(active)); } std::unique_ptr<PermissionSet> ExtensionPrefs::GetGrantedPermissions( @@ -1196,7 +1196,7 @@ void ExtensionPrefs::SetWithholdingPermissions(const ExtensionId& extension_id, bool should_withhold) { UpdateExtensionPref(extension_id, kPrefWithholdingPermissions, - std::make_unique<base::Value>(should_withhold)); + base::Value(should_withhold)); } bool ExtensionPrefs::GetWithholdingPermissions( @@ -1243,8 +1243,7 @@ void ExtensionPrefs::SetExtensionRunning(const std::string& extension_id, bool is_running) { - UpdateExtensionPref(extension_id, kPrefRunning, - std::make_unique<base::Value>(is_running)); + UpdateExtensionPref(extension_id, kPrefRunning, base::Value(is_running)); } bool ExtensionPrefs::IsExtensionRunning(const std::string& extension_id) const { @@ -1256,8 +1255,7 @@ void ExtensionPrefs::SetIsActive(const std::string& extension_id, bool is_active) { - UpdateExtensionPref(extension_id, kIsActive, - std::make_unique<base::Value>(is_active)); + UpdateExtensionPref(extension_id, kIsActive, base::Value(is_active)); } bool ExtensionPrefs::IsActive(const std::string& extension_id) const { @@ -1274,7 +1272,7 @@ void ExtensionPrefs::SetIsIncognitoEnabled(const std::string& extension_id, bool enabled) { UpdateExtensionPref(extension_id, kPrefIncognitoEnabled, - std::make_unique<base::Value>(enabled)); + base::Value(enabled)); extension_pref_value_map_->SetExtensionIncognitoState(extension_id, enabled); } @@ -1284,8 +1282,7 @@ void ExtensionPrefs::SetAllowFileAccess(const std::string& extension_id, bool allow) { - UpdateExtensionPref(extension_id, kPrefAllowFileAccess, - std::make_unique<base::Value>(allow)); + UpdateExtensionPref(extension_id, kPrefAllowFileAccess, base::Value(allow)); } bool ExtensionPrefs::HasAllowFileAccessSetting( @@ -1394,9 +1391,9 @@ void ExtensionPrefs::SetExtensionEnabled(const std::string& extension_id) { UpdateExtensionPref(extension_id, kPrefState, - std::make_unique<base::Value>(Extension::ENABLED)); + base::Value(Extension::ENABLED)); extension_pref_value_map_->SetExtensionState(extension_id, true); - UpdateExtensionPref(extension_id, kPrefDisableReasons, nullptr); + UpdateExtensionPref(extension_id, kPrefDisableReasons, absl::nullopt); for (auto& observer : observer_list_) observer.OnExtensionStateChanged(extension_id, true); } @@ -1404,10 +1401,10 @@ void ExtensionPrefs::SetExtensionDisabled(const std::string& extension_id, int disable_reasons) { UpdateExtensionPref(extension_id, kPrefState, - std::make_unique<base::Value>(Extension::DISABLED)); + base::Value(Extension::DISABLED)); extension_pref_value_map_->SetExtensionState(extension_id, false); UpdateExtensionPref(extension_id, kPrefDisableReasons, - std::make_unique<base::Value>(disable_reasons)); + base::Value(disable_reasons)); for (auto& observer : observer_list_) observer.OnExtensionStateChanged(extension_id, false); } @@ -1434,17 +1431,15 @@ !old_manifest || *extension->manifest()->value() != *old_manifest; if (update_required) { UpdateExtensionPref(extension->id(), kPrefManifest, - std::make_unique<base::Value>( - extension->manifest()->value()->Clone())); + base::Value(extension->manifest()->value()->Clone())); } } } void ExtensionPrefs::SetInstallLocation(const std::string& extension_id, ManifestLocation location) { - UpdateExtensionPref( - extension_id, kPrefLocation, - std::make_unique<base::Value>(static_cast<int>(location))); + UpdateExtensionPref(extension_id, kPrefLocation, + base::Value(static_cast<int>(location))); } std::unique_ptr<ExtensionInfo> ExtensionPrefs::GetInstalledInfoHelper( @@ -1948,9 +1943,8 @@ void ExtensionPrefs::SetGeometryCache(const std::string& extension_id, base::Value::Dict cache) { - UpdateExtensionPref( - extension_id, kPrefGeometryCache, - base::Value::ToUniquePtrValue(base::Value(std::move(cache)))); + UpdateExtensionPref(extension_id, kPrefGeometryCache, + base::Value(std::move(cache))); } const base::Value::Dict& ExtensionPrefs::GetInstallSignature() const { @@ -1984,7 +1978,7 @@ void ExtensionPrefs::SetInstallParam(const std::string& extension_id, const std::string& install_parameter) { UpdateExtensionPref(extension_id, kPrefInstallParam, - std::make_unique<base::Value>(install_parameter)); + base::Value(install_parameter)); } bool ExtensionPrefs::NeedsSync(const std::string& extension_id) const { @@ -1993,9 +1987,11 @@ void ExtensionPrefs::SetNeedsSync(const std::string& extension_id, bool needs_sync) { - UpdateExtensionPref( - extension_id, kPrefNeedsSync, - needs_sync ? std::make_unique<base::Value>(true) : nullptr); + absl::optional<base::Value> value; + if (needs_sync) { + value = base::Value(true); + } + UpdateExtensionPref(extension_id, kPrefNeedsSync, std::move(value)); } bool ExtensionPrefs::GetDNRStaticRulesetChecksum( @@ -2015,8 +2011,7 @@ std::string pref = JoinPrefs({kDNRStaticRulesetPref, base::NumberToString(ruleset_id.value()), kDNRChecksumKey}); - UpdateExtensionPref(extension_id, pref, - std::make_unique<base::Value>(checksum)); + UpdateExtensionPref(extension_id, pref, base::Value(checksum)); } bool ExtensionPrefs::GetDNRDynamicRulesetChecksum( @@ -2030,8 +2025,7 @@ const ExtensionId& extension_id, int checksum) { std::string pref = JoinPrefs({kDNRDynamicRulesetPref, kDNRChecksumKey}); - UpdateExtensionPref(extension_id, pref, - std::make_unique<base::Value>(checksum)); + UpdateExtensionPref(extension_id, pref, base::Value(checksum)); } absl::optional<std::set<declarative_net_request::RulesetID>> @@ -2061,7 +2055,7 @@ ids_list.Append(id.value()); UpdateExtensionPref(extension_id, kDNREnabledStaticRulesetIDs, - std::make_unique<base::Value>(std::move(ids_list))); + base::Value(std::move(ids_list))); } bool ExtensionPrefs::GetDNRUseActionCountAsBadgeText( @@ -2073,9 +2067,8 @@ void ExtensionPrefs::SetDNRUseActionCountAsBadgeText( const ExtensionId& extension_id, bool use_action_count_as_badge_text) { - UpdateExtensionPref( - extension_id, kPrefDNRUseActionCountAsBadgeText, - std::make_unique<base::Value>(use_action_count_as_badge_text)); + UpdateExtensionPref(extension_id, kPrefDNRUseActionCountAsBadgeText, + base::Value(use_action_count_as_badge_text)); } bool ExtensionPrefs::ShouldIgnoreDNRRuleset( @@ -2109,10 +2102,10 @@ static_cast<size_t>(declarative_net_request::GetGlobalStaticRuleLimit())); // Clear the pref entry if the extension has a global allocation of 0. - std::unique_ptr<base::Value> pref_value = - rule_count > 0 - ? std::make_unique<base::Value>(static_cast<int>(rule_count)) - : nullptr; + absl::optional<base::Value> pref_value; + if (rule_count > 0) { + pref_value = base::Value(static_cast<int>(rule_count)); + } UpdateExtensionPref(extension_id, kDNRExtensionRulesAllocated, std::move(pref_value)); } @@ -2126,9 +2119,10 @@ bool keep_excess_allocation) { // Clear the pref entry if the extension will not keep its excess global rules // allocation. - std::unique_ptr<base::Value> pref_value = - keep_excess_allocation ? std::make_unique<base::Value>(true) : nullptr; - + absl::optional<base::Value> pref_value; + if (keep_excess_allocation) { + pref_value = base::Value(true); + } UpdateExtensionPref(extension_id, kPrefDNRKeepExcessAllocation, std::move(pref_value)); } @@ -2587,7 +2581,7 @@ } UpdateExtensionPref(extension_id, kPrefWithholdingPermissions, - std::make_unique<base::Value>(new_pref_value)); + base::Value(new_pref_value)); } }
diff --git a/extensions/browser/extension_prefs.h b/extensions/browser/extension_prefs.h index 484b3ad7..ed54bf8 100644 --- a/extensions/browser/extension_prefs.h +++ b/extensions/browser/extension_prefs.h
@@ -309,7 +309,7 @@ void UpdateExtensionPref(const std::string& id, base::StringPiece key, - std::unique_ptr<base::Value> value); + absl::optional<base::Value> value); void DeleteExtensionPrefs(const std::string& id);
diff --git a/extensions/browser/service_worker_task_queue.cc b/extensions/browser/service_worker_task_queue.cc index 5afd0990..c396ed0e 100644 --- a/extensions/browser/service_worker_task_queue.cc +++ b/extensions/browser/service_worker_task_queue.cc
@@ -36,6 +36,7 @@ #include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_handlers/background_info.h" #include "extensions/common/manifest_handlers/incognito_info.h" +#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/common/storage_key/storage_key.h" #include "third_party/blink/public/mojom/service_worker/service_worker_registration_options.mojom.h" #include "url/origin.h" @@ -605,7 +606,7 @@ info.Set(kServiceWorkerVersion, version.GetString()); ExtensionPrefs::Get(browser_context_) ->UpdateExtensionPref(extension_id, kPrefServiceWorkerRegistrationInfo, - std::make_unique<base::Value>(std::move(info))); + base::Value(std::move(info))); } } @@ -616,7 +617,7 @@ } else { ExtensionPrefs::Get(browser_context_) ->UpdateExtensionPref(extension_id, kPrefServiceWorkerRegistrationInfo, - nullptr); + absl::nullopt); } }
diff --git a/fuchsia_web/webengine/context_provider_impl_unittest.cc b/fuchsia_web/webengine/context_provider_impl_unittest.cc index ae783280..0d03a3722 100644 --- a/fuchsia_web/webengine/context_provider_impl_unittest.cc +++ b/fuchsia_web/webengine/context_provider_impl_unittest.cc
@@ -611,10 +611,9 @@ // Setup data dir. ASSERT_TRUE(profile_temp_dir.CreateUniqueTempDir()); - ASSERT_EQ( + ASSERT_TRUE( base::WriteFile(profile_temp_dir.GetPath().AppendASCII(kTestDataFileIn), - nullptr, 0), - 0); + base::StringPiece())); fidl::InterfaceRequest<fuchsia::component::Binder> binder_request; fidl::InterfaceRequest<fuchsia::web::Context> context_request; @@ -651,8 +650,8 @@ ASSERT_PRED1(base::PathExists, data_dir.AppendASCII(kTestDataFileIn)); // Make sure that the mapped dir can be written to. - ASSERT_EQ(base::WriteFile(data_dir.AppendASCII(kTestDataFileOut), nullptr, 0), - 0); + ASSERT_TRUE(base::WriteFile(data_dir.AppendASCII(kTestDataFileOut), + base::StringPiece())); ASSERT_PRED1(base::PathExists, profile_temp_dir.GetPath().AppendASCII(kTestDataFileOut)); }
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd index 9f8278a..d2d44013b1 100644 --- a/ios/chrome/app/strings/ios_strings.grd +++ b/ios/chrome/app/strings/ios_strings.grd
@@ -4139,6 +4139,12 @@ =1 {{count} saved profile available above your keyboard.} other {{count} saved profiles available above your keyboard.}} </message> + <message name="IDS_IOS_ACCOUNT_TABLE_ENTER_PASSPHRASE_BUTTON" desc="Label for the button to open the passphrase dialog from the accounts table. [iOS only]"> + Enter Passphrase… + </message> + <message name="IDS_IOS_ACCOUNT_TABLE_ENTER_PASSPHRASE_MESSAGE" desc="The error message to show in the account table when there is a passphrase error. [iOS only]"> + Sync is not working. To start sync enter your passphrase. + </message> </messages> </release> </grit>
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_ACCOUNT_TABLE_ENTER_PASSPHRASE_BUTTON.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_ACCOUNT_TABLE_ENTER_PASSPHRASE_BUTTON.png.sha1 new file mode 100644 index 0000000..bb9e416 --- /dev/null +++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_ACCOUNT_TABLE_ENTER_PASSPHRASE_BUTTON.png.sha1
@@ -0,0 +1 @@ +17d889f72c7231125e533098e0a16fd53bf02e23 \ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_ACCOUNT_TABLE_ENTER_PASSPHRASE_MESSAGE.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_ACCOUNT_TABLE_ENTER_PASSPHRASE_MESSAGE.png.sha1 new file mode 100644 index 0000000..cdf58b8b --- /dev/null +++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_ACCOUNT_TABLE_ENTER_PASSPHRASE_MESSAGE.png.sha1
@@ -0,0 +1 @@ +ca21bc8e3c90a56ce1816ddd6ccca51ece4811ea \ No newline at end of file
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm index 826b14d..06b5cc8 100644 --- a/ios/chrome/browser/flags/about_flags.mm +++ b/ios/chrome/browser/flags/about_flags.mm
@@ -1387,6 +1387,11 @@ FEATURE_WITH_PARAMS_VALUE_TYPE(kAddToHomeScreen, kAddToHomeScreenVariations, "IOSEditMenuPartialTranslate")}, + {"indicate-account-storage-error-in-account-cell", + flag_descriptions::kIndicateAccountStorageErrorInAccountCellName, + flag_descriptions::kIndicateAccountStorageErrorInAccountCellDescription, + flags_ui::kOsIos, + FEATURE_VALUE_TYPE(kIndicateAccountStorageErrorInAccountCell)}, }; bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc index 1a3f995c..aaa7f89 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -446,6 +446,12 @@ const char kIncognitoNtpRevampDescription[] = "When enabled, Incognito new tab page will have an updated UI."; +const char kIndicateAccountStorageErrorInAccountCellName[] = + "Indicate Account Storage Error in Account Cell"; +const char kIndicateAccountStorageErrorInAccountCellDescription[] = + "When enabled, the Account Cell indicates the Account" + " Storage error when Sync is turned OFF"; + const char kInProductHelpDemoModeName[] = "In-Product Help Demo Mode"; const char kInProductHelpDemoModeDescription[] = "When enabled, in-product help promotions occur exactly once per cold "
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h index b73e6207..fd1894c 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -387,6 +387,11 @@ extern const char kIncognitoNtpRevampName[]; extern const char kIncognitoNtpRevampDescription[]; +// Title and description for the flag to indicate the Account Storage error in +// the account cell when Sync is turned OFF. +extern const char kIndicateAccountStorageErrorInAccountCellName[]; +extern const char kIndicateAccountStorageErrorInAccountCellDescription[]; + // Title and description for the flag to enable feature_engagement::Tracker // demo mode. extern const char kInProductHelpDemoModeName[];
diff --git a/ios/chrome/browser/ui/authentication/cells/BUILD.gn b/ios/chrome/browser/ui/authentication/cells/BUILD.gn index 45bc4b0..865fee33 100644 --- a/ios/chrome/browser/ui/authentication/cells/BUILD.gn +++ b/ios/chrome/browser/ui/authentication/cells/BUILD.gn
@@ -32,6 +32,7 @@ "//ios/chrome/browser/ui/authentication/views", "//ios/chrome/browser/ui/collection_view/cells", "//ios/chrome/browser/ui/commands", + "//ios/chrome/browser/ui/icons:symbols", "//ios/chrome/browser/ui/ntp", "//ios/chrome/browser/ui/settings/cells:public", "//ios/chrome/browser/ui/table_view:styler",
diff --git a/ios/chrome/browser/ui/authentication/cells/table_view_account_item.mm b/ios/chrome/browser/ui/authentication/cells/table_view_account_item.mm index c307ea7..5cfd11d 100644 --- a/ios/chrome/browser/ui/authentication/cells/table_view_account_item.mm +++ b/ios/chrome/browser/ui/authentication/cells/table_view_account_item.mm
@@ -5,6 +5,7 @@ #import "ios/chrome/browser/ui/authentication/cells/table_view_account_item.h" #import "base/mac/foundation_util.h" +#import "ios/chrome/browser/ui/icons/symbols.h" #import "ios/chrome/browser/ui/settings/cells/settings_cells_constants.h" #import "ios/chrome/browser/ui/util/uikit_ui_util.h" #import "ios/chrome/common/ui/colors/semantic_color_names.h" @@ -17,10 +18,10 @@ namespace { // Padding used between the text and error icon. -const CGFloat kHorizontalPaddingBetweenTextAndError = 5; +constexpr CGFloat kHorizontalPaddingBetweenTextAndError = 5; // Size of the error icon image. -const CGFloat KErrorIconImageSize = 18; +constexpr CGFloat KErrorIconImageSize = 22.; } // namespace @@ -46,10 +47,9 @@ cell.textLabel.text = self.text; cell.detailTextLabel.text = self.detailText; if (self.shouldDisplayError) { - cell.errorIcon.image = [[UIImage imageNamed:@"settings_error"] - imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; + cell.errorIcon.image = + DefaultSymbolWithPointSize(kErrorCircleFillSymbol, KErrorIconImageSize); cell.errorIcon.tintColor = [UIColor colorNamed:kRedColor]; - cell.detailTextLabel.textColor = [UIColor colorNamed:kRedColor]; } else { cell.errorIcon.image = nil; cell.detailTextLabel.textColor = [UIColor colorNamed:kTextSecondaryColor];
diff --git a/ios/chrome/browser/ui/settings/BUILD.gn b/ios/chrome/browser/ui/settings/BUILD.gn index e3e6f9f..722e5c9 100644 --- a/ios/chrome/browser/ui/settings/BUILD.gn +++ b/ios/chrome/browser/ui/settings/BUILD.gn
@@ -357,6 +357,7 @@ "//ios/chrome/browser/sync", "//ios/chrome/browser/sync:test_support", "//ios/chrome/browser/translate", + "//ios/chrome/browser/ui:feature_flags", "//ios/chrome/browser/ui/authentication/cells", "//ios/chrome/browser/ui/commands", "//ios/chrome/browser/ui/icons",
diff --git a/ios/chrome/browser/ui/settings/google_services/BUILD.gn b/ios/chrome/browser/ui/settings/google_services/BUILD.gn index a29de69..b0577844 100644 --- a/ios/chrome/browser/ui/settings/google_services/BUILD.gn +++ b/ios/chrome/browser/ui/settings/google_services/BUILD.gn
@@ -44,6 +44,7 @@ "//components/signin/public/identity_manager/objc", "//components/strings", "//components/sync", + "//components/sync/driver", "//components/unified_consent", "//ios/chrome/app/strings", "//ios/chrome/browser/application_context", @@ -188,9 +189,12 @@ "//components/autofill/core/common", "//components/prefs", "//components/prefs:test_support", + "//components/signin/public/identity_manager", + "//components/sync", "//components/sync:test_support", "//components/sync/driver", "//components/variations:test_support", + "//google_apis", "//ios/chrome/app/strings", "//ios/chrome/browser/application_context", "//ios/chrome/browser/browser_state:test_support", @@ -201,6 +205,7 @@ "//ios/chrome/browser/signin:test_support", "//ios/chrome/browser/sync", "//ios/chrome/browser/sync:test_support", + "//ios/chrome/browser/ui:feature_flags", "//ios/chrome/browser/ui/commands", "//ios/chrome/browser/ui/settings/cells", "//ios/chrome/browser/ui/settings/google_services:constants", @@ -209,7 +214,6 @@ "//ios/chrome/browser/ui/table_view/cells", "//ios/chrome/test:test_support", "//ios/web/public/test", - "//ios/web/public/test", "//testing/gtest", "//third_party/ocmock:ocmock", "//ui/base",
diff --git a/ios/chrome/browser/ui/settings/google_services/accounts_table_view_controller.mm b/ios/chrome/browser/ui/settings/google_services/accounts_table_view_controller.mm index 9f53220..0162c9f0 100644 --- a/ios/chrome/browser/ui/settings/google_services/accounts_table_view_controller.mm +++ b/ios/chrome/browser/ui/settings/google_services/accounts_table_view_controller.mm
@@ -25,6 +25,8 @@ #import "ios/chrome/browser/signin/identity_manager_factory.h" #import "ios/chrome/browser/signin/system_identity.h" #import "ios/chrome/browser/signin/system_identity_manager.h" +#import "ios/chrome/browser/sync/sync_observer_bridge.h" +#import "ios/chrome/browser/sync/sync_service_factory.h" #import "ios/chrome/browser/ui/alert_coordinator/action_sheet_coordinator.h" #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h" #import "ios/chrome/browser/ui/authentication/authentication_ui_util.h" @@ -32,11 +34,18 @@ #import "ios/chrome/browser/ui/authentication/enterprise/enterprise_utils.h" #import "ios/chrome/browser/ui/authentication/signout_action_sheet_coordinator.h" #import "ios/chrome/browser/ui/commands/application_commands.h" +#import "ios/chrome/browser/ui/commands/browser_commands.h" +#import "ios/chrome/browser/ui/commands/browsing_data_commands.h" +#import "ios/chrome/browser/ui/commands/command_dispatcher.h" #import "ios/chrome/browser/ui/commands/open_new_tab_command.h" #import "ios/chrome/browser/ui/commands/show_signin_command.h" #import "ios/chrome/browser/ui/icons/chrome_icon.h" #import "ios/chrome/browser/ui/icons/symbols.h" +#import "ios/chrome/browser/ui/settings/cells/settings_image_detail_text_item.h" #import "ios/chrome/browser/ui/settings/google_services/accounts_table_view_controller_constants.h" +#import "ios/chrome/browser/ui/settings/settings_root_view_controlling.h" +#import "ios/chrome/browser/ui/settings/sync/sync_encryption_passphrase_table_view_controller.h" +#import "ios/chrome/browser/ui/settings/sync/utils/account_error_ui_info.h" #import "ios/chrome/browser/ui/settings/sync/utils/sync_util.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_detail_text_item.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_link_header_footer_item.h" @@ -68,7 +77,7 @@ typedef NS_ENUM(NSInteger, SectionIdentifier) { SectionIdentifierAccounts = kSectionIdentifierEnumZero, - SectionIdentifierSync, + SectionIdentifierError, SectionIdentifierSignOut, }; @@ -84,14 +93,23 @@ // Detailed description of the actions taken by sign out, e.g. turning off // sync. ItemTypeSignOutSyncingFooter, + // Indicates the errors related to the signed in account. + ItemTypeAccountErrorMessage, + // Button to resolve the account error. + ItemTypeAccountErrorButton, + }; +// Size of the symbols. +constexpr CGFloat kSymbolSize = 15.; + } // namespace @interface AccountsTableViewController () < ChromeAccountManagerServiceObserver, IdentityManagerObserverBridgeDelegate, - SignoutActionSheetCoordinatorDelegate> { + SignoutActionSheetCoordinatorDelegate, + SyncObserverModelBridge> { Browser* _browser; BOOL _closeSettingsOnAddAccount; std::unique_ptr<ChromeAccountManagerServiceObserverBridge> @@ -107,6 +125,15 @@ // Enable lookup of item corresponding to a given identity GAIA ID string. NSDictionary<NSString*, TableViewItem*>* _identityMap; + + std::unique_ptr<SyncObserverBridge> _syncObserver; + + // The type of account error that is being displayed in the error section. + // Is set to kNone when there is no error section. + syncer::SyncService::UserActionableError _diplayedAccountErrorType; + + // The type of actionable the user needs to take to resolve the error. + AccountErrorUserActionableType _accountErrorUserActionableType; } // Modal alert to choose between remove an identity and show MyGoogle UI. @@ -156,6 +183,12 @@ _accountManagerServiceObserver = std::make_unique<ChromeAccountManagerServiceObserverBridge>( self, _accountManagerService); + syncer::SyncService* syncService = + SyncServiceFactory::GetForBrowserState(_browser->GetBrowserState()); + DCHECK(syncService); + _syncObserver = std::make_unique<SyncObserverBridge>(self, syncService); + _diplayedAccountErrorType = syncer::SyncService::UserActionableError::kNone; + _accountErrorUserActionableType = AccountErrorUserActionableType::kNoAction; } return self; @@ -191,6 +224,7 @@ self.removeAccountCoordinator = nil; [self stopBrowserStateServiceObservers]; _accountManagerServiceObserver.reset(); + _syncObserver.reset(); _browser = nullptr; _accountManagerService = nullptr; @@ -280,6 +314,9 @@ forSectionWithIdentifier:SectionIdentifierAccounts]; } + // Account Storage errors section. + [self updateErrorSectionModelAndReloadViewIfNeeded:NO]; + // Sign out section. [model addSectionWithIdentifier:SectionIdentifierSignOut]; [model addItem:[self signOutItem] @@ -394,6 +431,103 @@ return item; } +// Initializes the passphrase error message item. +- (TableViewItem*)accountErrorMessageItemWithMessageID:(int)messageID { + SettingsImageDetailTextItem* item = [[SettingsImageDetailTextItem alloc] + initWithType:ItemTypeAccountErrorMessage]; + item.detailText = l10n_util::GetNSString(messageID); + item.image = DefaultSymbolWithPointSize(kErrorCircleFillSymbol, kSymbolSize); + item.imageViewTintColor = [UIColor colorNamed:kRedColor]; + return item; +} + +// Initializes the passphrase error button to open the passphrase dialog. +- (TableViewItem*)accountErrorButtonItemWithLabelID:(int)labelID { + TableViewTextItem* item = + [[TableViewTextItem alloc] initWithType:ItemTypeAccountErrorButton]; + item.text = l10n_util::GetNSString(labelID); + item.textColor = [UIColor colorNamed:kBlueColor]; + item.accessibilityTraits = UIAccessibilityTraitButton; + return item; +} + +// Updates the error section in the table view model to indicate the latest +// account error if the states of the account error and the table view model +// don't match. If `reloadViewIfNeeded` is NO, only the model will be +// updated without reloading the view. Can refresh, add or remove the error +// section when an update is needed. +- (void)updateErrorSectionModelAndReloadViewIfNeeded:(BOOL)reloadViewIfNeeded { + AccountErrorUIInfo* errorInfo = + GetAccountErrorUIInfo(_browser->GetBrowserState()); + BOOL hadErrorSection = [self.tableViewModel + hasSectionForSectionIdentifier:SectionIdentifierError]; + syncer::SyncService::UserActionableError newErrorType = + errorInfo ? errorInfo.errorType + : syncer::SyncService::UserActionableError::kNone; + + if (newErrorType == syncer::SyncService::UserActionableError::kNone && + _diplayedAccountErrorType == + syncer::SyncService::UserActionableError::kNone) { + DCHECK(!hadErrorSection); + // Don't update if there is no error to indicate or to remove. + return; + } + + if (reloadViewIfNeeded && newErrorType == _diplayedAccountErrorType) { + DCHECK(hadErrorSection); + // Don't update if there is already a model and a view, and the state of + // the model already matches the error that has to be indicated. + return; + } + + _diplayedAccountErrorType = newErrorType; + _accountErrorUserActionableType = errorInfo.userActionableType; + + if (hadErrorSection) { + // Remove the section from the model to either clear the error section when + // there is no error or to update the type of error to indicate. + NSUInteger index = [self.tableViewModel + sectionForSectionIdentifier:SectionIdentifierError]; + [self.tableViewModel removeSectionWithIdentifier:SectionIdentifierError]; + + if (errorInfo == nil) { + // Delete the error section in the view when there is an error section + // while there is no account error to indicate. + if (reloadViewIfNeeded) { + [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:index] + withRowAnimation:UITableViewRowAnimationAutomatic]; + } + return; + } + } + + // Update the error section in the model to indicate the latest account error. + NSInteger sectionIndex = + [self.tableViewModel + sectionForSectionIdentifier:SectionIdentifierAccounts] + + 1; + [self.tableViewModel insertSectionWithIdentifier:SectionIdentifierError + atIndex:sectionIndex]; + [self.tableViewModel addItem:[self accountErrorMessageItemWithMessageID: + errorInfo.messageID] + toSectionWithIdentifier:SectionIdentifierError]; + [self.tableViewModel addItem:[self accountErrorButtonItemWithLabelID: + errorInfo.buttonLabelID] + toSectionWithIdentifier:SectionIdentifierError]; + + if (reloadViewIfNeeded) { + if (hadErrorSection) { + // Only refresh the section if there was already an error section, where + // there was a change in the type of error to indicate (excluding kNone). + [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:sectionIndex] + withRowAnimation:UITableViewRowAnimationAutomatic]; + } else { + [self.tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] + withRowAnimation:UITableViewRowAnimationAutomatic]; + } + } +} + #pragma mark - UITableViewDataSource - (UIView*)tableView:(UITableView*)tableView @@ -410,8 +544,6 @@ linkView.delegate = self; break; } - case SectionIdentifierSync: - break; } return view; } @@ -452,6 +584,15 @@ [self showSignOutWithItemView:itemView]; break; } + case ItemTypeAccountErrorButton: { + [self handleAccountErrorUserActionable]; + break; + } + case ItemTypeAccountErrorMessage: + // Do not handle row selection on the account error message item because + // its selection is disabled. The only purpose of the item is to show a + // message that gives details on the error. + break; case ItemTypeSignInHeader: case ItemTypeSignOutSyncingFooter: case ItemTypeRestrictedAccountsFooter: @@ -462,6 +603,12 @@ [self.tableView deselectRowAtIndexPath:indexPath animated:YES]; } +#pragma mark - SyncObserverModelBridge + +- (void)onSyncStateChanged { + [self updateErrorSectionModelAndReloadViewIfNeeded:YES]; +} + #pragma mark - IdentityManagerObserverBridgeDelegate - (void)onEndBatchOfRefreshTokenStateChanges { @@ -772,4 +919,34 @@ [self.applicationCommandsHandler closeSettingsUIAndOpenURL:command]; } +#pragma mark - Internal + +- (void)handleAccountErrorUserActionable { + switch (_accountErrorUserActionableType) { + case AccountErrorUserActionableType::kEnterPassphrase: { + [self openPassphraseDialog]; + break; + } + case AccountErrorUserActionableType::kNoAction: + break; + } +} + +// Opens the passphrase dialog. +- (void)openPassphraseDialog { + UIViewController<SettingsRootViewControlling>* controllerToPush = + [[SyncEncryptionPassphraseTableViewController alloc] + initWithBrowser:_browser]; + + // Verify that the accounts table is displayed from a navigation controller. + DCHECK(self.navigationController); + + // TODO(crbug.com/1045047): Use HandlerForProtocol after commands protocol + // clean up. + controllerToPush.dispatcher = static_cast< + id<ApplicationCommands, BrowserCommands, BrowsingDataCommands>>( + _browser->GetCommandDispatcher()); + [self.navigationController pushViewController:controllerToPush animated:YES]; +} + @end
diff --git a/ios/chrome/browser/ui/settings/google_services/accounts_table_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/google_services/accounts_table_view_controller_unittest.mm index 616651b..b441538 100644 --- a/ios/chrome/browser/ui/settings/google_services/accounts_table_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/settings/google_services/accounts_table_view_controller_unittest.mm
@@ -7,7 +7,13 @@ #import "base/functional/callback_helpers.h" #import "base/mac/foundation_util.h" #import "base/run_loop.h" +#import "base/strings/sys_string_conversions.h" +#import "base/test/scoped_feature_list.h" +#import "components/signin/public/identity_manager/account_info.h" +#import "components/sync/driver/sync_service.h" +#import "components/sync/test/test_sync_service.h" #import "components/variations/scoped_variations_ids_provider.h" +#import "google_apis/gaia/core_account_id.h" #import "ios/chrome/browser/application_context/application_context.h" #import "ios/chrome/browser/browser_state/test_chrome_browser_state.h" #import "ios/chrome/browser/main/test_browser.h" @@ -17,11 +23,17 @@ #import "ios/chrome/browser/signin/fake_system_identity.h" #import "ios/chrome/browser/signin/fake_system_identity_manager.h" #import "ios/chrome/browser/signin/identity_manager_factory.h" +#import "ios/chrome/browser/sync/sync_service_factory.h" +#import "ios/chrome/browser/sync/sync_setup_service_factory.h" +#import "ios/chrome/browser/sync/sync_setup_service_mock.h" #import "ios/chrome/browser/ui/commands/application_commands.h" #import "ios/chrome/browser/ui/commands/command_dispatcher.h" #import "ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.h" +#import "ios/chrome/browser/ui/ui_feature_flags.h" #import "ios/chrome/test/ios_chrome_scoped_testing_local_state.h" +#import "ios/web/public/browser_state.h" #import "ios/web/public/test/web_task_environment.h" +#import "testing/gmock/include/gmock/gmock.h" #import "testing/gtest/include/gtest/gtest.h" #import "third_party/ocmock/OCMock/OCMock.h" #import "third_party/ocmock/gtest_support.h" @@ -30,6 +42,35 @@ #error "This file requires ARC support." #endif +namespace { + +std::unique_ptr<KeyedService> CreateTestSyncService( + web::BrowserState* context) { + return std::make_unique<syncer::TestSyncService>(); +} + +void SetSyncStateFeatureActive(const CoreAccountInfo& account, + syncer::TestSyncService* sync_service) { + sync_service->SetAccountInfo(account); + sync_service->SetHasSyncConsent(true); + sync_service->SetTransportState(syncer::SyncService::TransportState::ACTIVE); + sync_service->SetDisableReasons({}); + sync_service->SetFirstSetupComplete(true); + ASSERT_TRUE(sync_service->IsSyncFeatureEnabled()); +} + +void SetSyncStateTransportActive(const CoreAccountInfo& account, + syncer::TestSyncService* sync_service) { + sync_service->SetAccountInfo(account); + sync_service->SetHasSyncConsent(false); + sync_service->SetTransportState(syncer::SyncService::TransportState::ACTIVE); + sync_service->SetDisableReasons( + {syncer::SyncService::DisableReason::DISABLE_REASON_USER_CHOICE}); + ASSERT_FALSE(sync_service->IsSyncFeatureEnabled()); +} + +} // namespace + class AccountsTableViewControllerTest : public ChromeTableViewControllerTest { public: AccountsTableViewControllerTest() @@ -38,6 +79,11 @@ builder.AddTestingFactory( AuthenticationServiceFactory::GetInstance(), AuthenticationServiceFactory::GetDefaultFactory()); + builder.AddTestingFactory( + SyncSetupServiceFactory::GetInstance(), + base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService)); + builder.AddTestingFactory(SyncServiceFactory::GetInstance(), + base::BindRepeating(&CreateTestSyncService)); browser_state_ = builder.Build(); browser_ = std::make_unique<TestBrowser>(browser_state_.get()); @@ -90,6 +136,16 @@ GetApplicationContext()->GetSystemIdentityManager()); } + SyncSetupServiceMock* sync_setup_service_mock() { + return static_cast<SyncSetupServiceMock*>( + SyncSetupServiceFactory::GetForBrowserState(browser_state_.get())); + } + + syncer::TestSyncService* test_sync_service() { + return static_cast<syncer::TestSyncService*>( + SyncServiceFactory::GetForBrowserState(browser_state_.get())); + } + private: web::WebTaskEnvironment task_environment_; IOSChromeScopedTestingLocalState local_state_; @@ -157,3 +213,155 @@ EXPECT_EQ(2, NumberOfSections()); EXPECT_EQ(2, NumberOfItemsInSection(0)); } + +// Tests that when eligible the account model holds the passphrase error and +// clears the error when the error is resolved. +TEST_F(AccountsTableViewControllerTest, HoldPassphraseErrorWhenEligible) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + kIndicateAccountStorageErrorInAccountCell); + + const std::string email = "foo@gmail.com"; + const std::string gaia_id = "fooID"; + + FakeSystemIdentity* identity = + [FakeSystemIdentity identityWithEmail:base::SysUTF8ToNSString(email) + gaiaID:base::SysUTF8ToNSString(gaia_id) + name:@"Fake Foo"]; + fake_system_identity_manager()->AddIdentity(identity); + + // Simulate a credential reload. + authentication_service()->SignIn(identity); + fake_system_identity_manager()->FireSystemIdentityReloaded(); + base::RunLoop().RunUntilIdle(); + + CoreAccountInfo account; + account.email = email; + account.gaia = gaia_id; + account.account_id = CoreAccountId::FromGaiaId(account.gaia); + SetSyncStateTransportActive(account, test_sync_service()); + test_sync_service()->SetPassphraseRequiredForPreferredDataTypes(true); + + CreateController(); + CheckController(); + + EXPECT_EQ(3, NumberOfSections()); + EXPECT_EQ(2, NumberOfItemsInSection(1)); +} + +// Tests that the Account Storage error is removed from the account model when +// the error is resolved. Triggers the model update by firing a Sync State +// change. +TEST_F(AccountsTableViewControllerTest, ClearPassphraseErrorWhenResolved) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + kIndicateAccountStorageErrorInAccountCell); + + const std::string email = "foo@gmail.com"; + const std::string gaia_id = "fooID"; + + FakeSystemIdentity* identity = + [FakeSystemIdentity identityWithEmail:base::SysUTF8ToNSString(email) + gaiaID:base::SysUTF8ToNSString(gaia_id) + name:@"Fake Foo"]; + fake_system_identity_manager()->AddIdentity(identity); + + // Simulate a credential reload. + authentication_service()->SignIn(identity); + fake_system_identity_manager()->FireSystemIdentityReloaded(); + base::RunLoop().RunUntilIdle(); + + CoreAccountInfo account; + account.email = email; + account.gaia = gaia_id; + account.account_id = CoreAccountId::FromGaiaId(account.gaia); + SetSyncStateTransportActive(account, test_sync_service()); + test_sync_service()->SetPassphraseRequiredForPreferredDataTypes(true); + + CreateController(); + CheckController(); + + ASSERT_EQ(3, NumberOfSections()); + ASSERT_EQ(2, NumberOfItemsInSection(1)); + + // Dismiss the error section when the account error is resolved. + test_sync_service()->SetPassphraseRequiredForPreferredDataTypes(false); + + test_sync_service()->FireStateChanged(); + EXPECT_EQ(2, NumberOfSections()); + + // Don't update the table model when the states of the account error and the + // error section are aligned. + test_sync_service()->FireStateChanged(); + EXPECT_EQ(2, NumberOfSections()); +} + +// Tests that when ineligible the account model doesn't hold the Account Storage +// error. +TEST_F(AccountsTableViewControllerTest, DontHoldPassphraseErrorWhenIneligible) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + kIndicateAccountStorageErrorInAccountCell); + + const std::string email = "foo@gmail.com"; + const std::string gaia_id = "fooID"; + + FakeSystemIdentity* identity = + [FakeSystemIdentity identityWithEmail:base::SysUTF8ToNSString(email) + gaiaID:base::SysUTF8ToNSString(gaia_id) + name:@"Fake Foo"]; + fake_system_identity_manager()->AddIdentity(identity); + + // Simulate a credential reload. + authentication_service()->SignIn(identity); + fake_system_identity_manager()->FireSystemIdentityReloaded(); + base::RunLoop().RunUntilIdle(); + + CoreAccountInfo account; + account.email = email; + account.gaia = gaia_id; + account.account_id = CoreAccountId::FromGaiaId(account.gaia); + SetSyncStateFeatureActive(account, test_sync_service()); + test_sync_service()->SetPassphraseRequiredForPreferredDataTypes(true); + + CreateController(); + CheckController(); + + EXPECT_EQ(2, NumberOfSections()); +} + +// Tests that when eligible the account model doesn't have the Account Storage +// error when there is no error. +TEST_F(AccountsTableViewControllerTest, + DontHoldPassphraseErrorWhenEligibleNoError) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + kIndicateAccountStorageErrorInAccountCell); + + const std::string email = "foo@gmail.com"; + const std::string gaia_id = "fooID"; + + FakeSystemIdentity* identity = + [FakeSystemIdentity identityWithEmail:base::SysUTF8ToNSString(email) + gaiaID:base::SysUTF8ToNSString(gaia_id) + name:@"Fake Foo"]; + fake_system_identity_manager()->AddIdentity(identity); + + // Simulate a credential reload. + authentication_service()->SignIn(identity); + fake_system_identity_manager()->FireSystemIdentityReloaded(); + base::RunLoop().RunUntilIdle(); + + CoreAccountInfo account; + account.email = email; + account.gaia = gaia_id; + account.account_id = CoreAccountId::FromGaiaId(account.gaia); + SetSyncStateFeatureActive(account, test_sync_service()); + test_sync_service()->SetPassphraseRequiredForPreferredDataTypes(false); + + CreateController(); + CheckController(); + + // Verify that there are only 2 sections, exluding the error section. + EXPECT_EQ(2, NumberOfSections()); +}
diff --git a/ios/chrome/browser/ui/settings/password/password_details/BUILD.gn b/ios/chrome/browser/ui/settings/password/password_details/BUILD.gn index e958c4e..d2fe7e2 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/BUILD.gn +++ b/ios/chrome/browser/ui/settings/password/password_details/BUILD.gn
@@ -26,6 +26,7 @@ "//components/strings", "//components/url_formatter", "//ios/chrome/app/strings", + "//ios/chrome/browser/browser_state", "//ios/chrome/browser/credential_provider_promo:features", "//ios/chrome/browser/main:public", "//ios/chrome/browser/passwords",
diff --git a/ios/chrome/browser/ui/settings/password/password_details/add_password_coordinator.mm b/ios/chrome/browser/ui/settings/password/password_details/add_password_coordinator.mm index 87e91ca..48648df 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/add_password_coordinator.mm +++ b/ios/chrome/browser/ui/settings/password/password_details/add_password_coordinator.mm
@@ -8,11 +8,9 @@ #import "base/metrics/histogram_functions.h" #import "base/strings/sys_string_conversions.h" #import "components/strings/grit/components_strings.h" +#import "ios/chrome/browser/browser_state/chrome_browser_state.h" #import "ios/chrome/browser/main/browser.h" -#import "ios/chrome/browser/signin/authentication_service.h" -#import "ios/chrome/browser/signin/authentication_service_factory.h" -#import "ios/chrome/browser/sync/sync_setup_service.h" -#import "ios/chrome/browser/sync/sync_setup_service_factory.h" +#import "ios/chrome/browser/sync/sync_service_factory.h" #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h" #import "ios/chrome/browser/ui/commands/application_commands.h" #import "ios/chrome/browser/ui/commands/command_dispatcher.h" @@ -79,27 +77,15 @@ } - (void)start { - AuthenticationService* authenticationService = - AuthenticationServiceFactory::GetForBrowserState( - self.browser->GetBrowserState()); - DCHECK(authenticationService); - NSString* syncingUserEmail = nil; - id<SystemIdentity> identity = - authenticationService->GetPrimaryIdentity(signin::ConsentLevel::kSync); - if (identity) { - SyncSetupService* syncSetupService = - SyncSetupServiceFactory::GetForBrowserState( - self.browser->GetBrowserState()); - if (syncSetupService->IsDataTypeActive(syncer::PASSWORDS)) { - syncingUserEmail = identity.userEmail; - } - } + ChromeBrowserState* browserState = self.browser->GetBrowserState(); + self.viewController = [[AddPasswordViewController alloc] init]; - self.viewController = [[AddPasswordViewController alloc] - initWithSyncingUserEmail:syncingUserEmail]; - - self.mediator = [[AddPasswordMediator alloc] initWithDelegate:self - passwordCheckManager:_manager]; + self.mediator = [[AddPasswordMediator alloc] + initWithDelegate:self + passwordCheckManager:_manager + prefService:browserState->GetPrefs() + syncService:SyncServiceFactory::GetForBrowserState( + browserState)]; self.mediator.consumer = self.viewController; self.viewController.delegate = self.mediator; self.viewController.addPasswordHandler = self;
diff --git a/ios/chrome/browser/ui/settings/password/password_details/add_password_details_consumer.h b/ios/chrome/browser/ui/settings/password/password_details/add_password_details_consumer.h index 60e46c9..4668f6b8 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/add_password_details_consumer.h +++ b/ios/chrome/browser/ui/settings/password/password_details/add_password_details_consumer.h
@@ -10,6 +10,10 @@ // Sets the Add Password details for consumer. @protocol AddPasswordDetailsConsumer <NSObject> +// Sets the account where passwords are being saved to, or nil if passwords are +// only being saved locally. +- (void)setAccountSavingPasswords:(NSString*)email; + // Called when the validation to find duplicate existing credentials has been // completed. - (void)onDuplicateCheckCompletion:(BOOL)duplicateFound;
diff --git a/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.h b/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.h index 148db5e..a3f1100 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.h +++ b/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.h
@@ -12,12 +12,19 @@ @protocol AddPasswordDetailsConsumer; @protocol AddPasswordMediatorDelegate; class IOSChromePasswordCheckManager; +class PrefService; + +namespace syncer { +class SyncService; +} // namespace syncer // This mediator stores logic for adding new password credentials. @interface AddPasswordMediator : NSObject <AddPasswordViewControllerDelegate> - (instancetype)initWithDelegate:(id<AddPasswordMediatorDelegate>)delegate passwordCheckManager:(IOSChromePasswordCheckManager*)manager + prefService:(PrefService*)prefService + syncService:(syncer::SyncService*)syncService NS_DESIGNATED_INITIALIZER; - (instancetype)init NS_UNAVAILABLE;
diff --git a/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.mm b/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.mm index 39b38a0..fcee366c 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.mm +++ b/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.mm
@@ -4,7 +4,10 @@ #import "ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.h" +#import "base/check.h" +#import "base/containers/flat_set.h" #import "base/functional/bind.h" +#import "base/memory/raw_ptr.h" #import "base/ranges/algorithm.h" #import "base/strings/sys_string_conversions.h" #import "base/task/cancelable_task_tracker.h" @@ -12,8 +15,11 @@ #import "base/task/thread_pool.h" #import "components/password_manager/core/browser/form_parsing/form_parser.h" #import "components/password_manager/core/browser/password_form.h" +#import "components/password_manager/core/browser/password_manager_features_util.h" #import "components/password_manager/core/browser/password_manager_util.h" +#import "components/password_manager/core/browser/password_sync_util.h" #import "components/password_manager/core/browser/ui/credential_ui_entry.h" +#import "components/signin/public/identity_manager/account_info.h" #import "components/sync/base/features.h" #import "ios/chrome/browser/passwords/password_check_observer_bridge.h" #import "ios/chrome/browser/ui/settings/password/password_details/add_password_details_consumer.h" @@ -52,17 +58,15 @@ @interface AddPasswordMediator () <AddPasswordViewControllerDelegate> { // Password Check manager. - IOSChromePasswordCheckManager* _manager; + raw_ptr<IOSChromePasswordCheckManager> _manager; + // Pref service. + raw_ptr<PrefService> _prefService; + // Sync service. + raw_ptr<syncer::SyncService> _syncService; // Used to create and run validation tasks. std::unique_ptr<base::CancelableTaskTracker> _validationTaskTracker; } -// Caches the password form data submitted by the user. This value is set only -// when the user tries to save a credential which has username and site similar -// to an existing credential. -@property(nonatomic, readonly) absl::optional<password_manager::PasswordForm> - cachedPasswordForm; - // Delegate for this mediator. @property(nonatomic, weak) id<AddPasswordMediatorDelegate> delegate; @@ -78,11 +82,15 @@ @implementation AddPasswordMediator - (instancetype)initWithDelegate:(id<AddPasswordMediatorDelegate>)delegate - passwordCheckManager:(IOSChromePasswordCheckManager*)manager { + passwordCheckManager:(IOSChromePasswordCheckManager*)manager + prefService:(PrefService*)prefService + syncService:(syncer::SyncService*)syncService { self = [super init]; if (self) { _delegate = delegate; _manager = manager; + _prefService = prefService; + _syncService = syncService; _sequencedTaskRunner = base::ThreadPool::CreateSequencedTaskRunner( {base::MayBlock(), base::TaskPriority::BEST_EFFORT}); _validationTaskTracker = std::make_unique<base::CancelableTaskTracker>(); @@ -94,6 +102,18 @@ if (_consumer == consumer) return; _consumer = consumer; + // TODO(crbug.com/1392699): This logic keeps showing up, there should be a + // helper IsSavingPasswordsToAccount(), or GetAccountSavingPasswords(). + if (password_manager::sync_util::IsPasswordSyncEnabled(_syncService) || + password_manager::features_util::IsOptedInForAccountStorage( + _prefService, _syncService)) { + CoreAccountInfo account = _syncService->GetAccountInfo(); + DCHECK(!account.IsEmpty()); + [_consumer + setAccountSavingPasswords:base::SysUTF8ToNSString(account.email)]; + } else { + [_consumer setAccountSavingPasswords:nil]; + } } - (void)dealloc { @@ -101,12 +121,7 @@ _validationTaskTracker.reset(); } -#pragma mark - AddPasswordTableViewControllerDelegate - -- (void)addPasswordViewController:(AddPasswordViewController*)viewController - didEditPasswordDetails:(PasswordDetails*)password { - NOTREACHED(); -} +#pragma mark - AddPasswordViewControllerDelegate - (void)addPasswordViewController:(AddPasswordViewController*)viewController didAddPasswordDetails:(NSString*)username @@ -127,7 +142,9 @@ if (base::FeatureList::IsEnabled(syncer::kPasswordNotesWithBackup)) { credential.note = SysNSStringToUTF16(note); } - credential.stored_in = {password_manager::PasswordForm::Store::kProfileStore}; + credential.stored_in = { + password_manager::features_util::GetDefaultPasswordStore(_prefService, + _syncService)}; password_manager::CredentialFacet facet; facet.url = self.URL;
diff --git a/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller.h b/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller.h index e3b0479..85355d3 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller.h +++ b/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller.h
@@ -21,10 +21,7 @@ : AutofillEditTableViewController <AddPasswordDetailsConsumer> // The designated initializer. -// `syncingUserEmail` stores the user email if the user is authenticated amd -// syncing passwords. -- (instancetype)initWithSyncingUserEmail:(NSString*)syncingUserEmail - NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_DESIGNATED_INITIALIZER; - (instancetype)initWithStyle:(UITableViewStyle)style NS_UNAVAILABLE;
diff --git a/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller.mm b/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller.mm index 9889b9d..32b1dd9 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller.mm +++ b/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller.mm
@@ -121,8 +121,9 @@ // If YES, the password details are shown without requiring any authentication. @property(nonatomic, assign) BOOL showPasswordWithoutAuth; -// Stores the user email if the user is authenticated amd syncing passwords. -@property(nonatomic, readonly) NSString* syncingUserEmail; +// The account where passwords are being saved to, or nil if passwords are only +// being saved locally. +@property(nonatomic, strong) NSString* accountSavingPasswords; // Stores the user current typed password. (Used for testing). @property(nonatomic, strong) NSString* passwordForTesting; @@ -133,7 +134,7 @@ #pragma mark - ViewController Life Cycle. -- (instancetype)initWithSyncingUserEmail:(NSString*)syncingUserEmail { +- (instancetype)init { self = [super initWithStyle:ChromeTableViewStyle()]; if (self) { _isDuplicatedCredential = NO; @@ -142,7 +143,6 @@ _isTLDMissingMessageShown = NO; _isNoteFooterShown = NO; _isNoteValid = YES; - _syncingUserEmail = syncingUserEmail; } return self; } @@ -378,10 +378,10 @@ } - (NSString*)footerText { - if (self.syncingUserEmail) { + if (self.accountSavingPasswords) { return l10n_util::GetNSStringF( IDS_IOS_SETTINGS_ADD_PASSWORD_FOOTER_BRANDED, - base::SysNSStringToUTF16(self.syncingUserEmail)); + base::SysNSStringToUTF16(self.accountSavingPasswords)); } return l10n_util::GetNSString(IDS_IOS_SAVE_PASSWORD_FOOTER_NOT_SYNCING); @@ -512,6 +512,10 @@ #pragma mark - AddPasswordDetailsConsumer +- (void)setAccountSavingPasswords:(NSString*)accountSavingPasswords { + _accountSavingPasswords = accountSavingPasswords; +} + - (void)onDuplicateCheckCompletion:(BOOL)duplicateFound { if (duplicateFound == self.isDuplicatedCredential) { return;
diff --git a/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller_unittest.mm index e7db8ca..c942b82 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/settings/password/password_details/add_password_view_controller_unittest.mm
@@ -98,8 +98,8 @@ } ChromeTableViewController* InstantiateController() override { - AddPasswordViewController* controller = [[AddPasswordViewController alloc] - initWithSyncingUserEmail:syncing_user_email_]; + AddPasswordViewController* controller = + [[AddPasswordViewController alloc] init]; controller.delegate = delegate_; return controller; } @@ -135,13 +135,8 @@ FakeAddPasswordDelegate* delegate() { return delegate_; } - void SetUserSyncingEmail(NSString* syncing_user_email) { - syncing_user_email_ = syncing_user_email; - } - private: FakeAddPasswordDelegate* delegate_ = nil; - NSString* syncing_user_email_ = nil; }; // Tests that password is shown/hidden. @@ -257,12 +252,11 @@ } // Tests the footer text of the view controller when adding a new credential and -// the user syncing email address is provided. -TEST_F(AddPasswordViewControllerTest, TestFooterTextWithSyncingEmail) { - SetUserSyncingEmail(@"example@gmail.com"); - +// the user email address is provided. +TEST_F(AddPasswordViewControllerTest, TestFooterTextWithEmail) { AddPasswordViewController* passwords_controller = static_cast<AddPasswordViewController*>(controller()); + [passwords_controller setAccountSavingPasswords:@"example@gmail.com"]; [passwords_controller loadModel]; CheckSectionFooter(
diff --git a/ios/chrome/browser/ui/settings/settings_table_view_controller.mm b/ios/chrome/browser/ui/settings/settings_table_view_controller.mm index 0a9fe041..f0f366c 100644 --- a/ios/chrome/browser/ui/settings/settings_table_view_controller.mm +++ b/ios/chrome/browser/ui/settings/settings_table_view_controller.mm
@@ -1896,6 +1896,8 @@ _identity, IdentityAvatarSize::TableViewIcon); identityAccountItem.text = _identity.userFullName; identityAccountItem.detailText = _identity.userEmail; + identityAccountItem.shouldDisplayError = + GetAccountErrorUIInfo(_browserState) != nil; } - (void)reloadAccountCell {
diff --git a/ios/chrome/browser/ui/settings/settings_table_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/settings_table_view_controller_unittest.mm index 413de37f..53ac3e7 100644 --- a/ios/chrome/browser/ui/settings/settings_table_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/settings/settings_table_view_controller_unittest.mm
@@ -4,7 +4,9 @@ #import "ios/chrome/browser/ui/settings/settings_table_view_controller.h" +#import "base/mac/foundation_util.h" #import "base/strings/sys_string_conversions.h" +#import "base/test/scoped_feature_list.h" #import "base/test/task_environment.h" #import "components/keyed_service/core/service_access_type.h" #import "components/password_manager/core/browser/password_manager_test_utils.h" @@ -27,6 +29,7 @@ #import "ios/chrome/browser/signin/fake_system_identity_manager.h" #import "ios/chrome/browser/sync/mock_sync_service_utils.h" #import "ios/chrome/browser/sync/sync_service_factory.h" +#import "ios/chrome/browser/ui/authentication/cells/table_view_account_item.h" #import "ios/chrome/browser/ui/commands/application_commands.h" #import "ios/chrome/browser/ui/commands/browsing_data_commands.h" #import "ios/chrome/browser/ui/commands/command_dispatcher.h" @@ -38,6 +41,7 @@ #import "ios/chrome/browser/ui/table_view/cells/table_view_image_item.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_info_button_item.h" #import "ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.h" +#import "ios/chrome/browser/ui/ui_feature_flags.h" #import "ios/chrome/grit/ios_chromium_strings.h" #import "ios/chrome/grit/ios_strings.h" #import "ios/chrome/test/ios_chrome_scoped_testing_local_state.h" @@ -246,6 +250,12 @@ l10n_util::GetNSString(IDS_IOS_SYNC_ENCRYPTION_DESCRIPTION)); ASSERT_EQ(UILayoutConstraintAxisVertical, sync_item.textLayoutConstraintAxis); + // Verify that the account item does not hold the error when done through the + // sync item. + TableViewAccountItem* identityAccountItem = + base::mac::ObjCCast<TableViewAccountItem>(account_items[0]); + EXPECT_FALSE(identityAccountItem.shouldDisplayError); + // Check that there is no sign-in promo when there is a sync error. ASSERT_FALSE([controller().tableViewModel hasSectionForSectionIdentifier:SettingsSectionIdentifier:: @@ -365,3 +375,135 @@ ASSERT_NSEQ(signin_item.statusText, l10n_util::GetNSString(IDS_IOS_SETTING_OFF)); } + +// Verifies that when eligible the account item model holds the Account Storage +// error. +TEST_F(SettingsTableViewControllerTest, HoldAccountStorageErrorWhenEligible) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + kIndicateAccountStorageErrorInAccountCell); + + // Set account error. + ON_CALL(*sync_service_mock_, GetUserActionableError()) + .WillByDefault( + Return(syncer::SyncService::UserActionableError::kNeedsPassphrase)); + + auth_service_->SignIn(fake_identity_); + + CreateController(); + CheckController(); + + NSArray* account_items = [controller().tableViewModel + itemsInSectionWithIdentifier:SettingsSectionIdentifier:: + SettingsSectionIdentifierAccount]; + ASSERT_EQ(3U, account_items.count); + + // Verify that the account item is in an error state. + TableViewAccountItem* identityAccountItem = + base::mac::ObjCCast<TableViewAccountItem>(account_items[0]); + EXPECT_TRUE(identityAccountItem.shouldDisplayError); +} + +// Verifies that the error is removed from the model when the Account Storage +// error is resolved. Triggers the model update by firing a Sync State change. +TEST_F(SettingsTableViewControllerTest, ClearAccountStorageErrorWhenResolved) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + kIndicateAccountStorageErrorInAccountCell); + + // Set account error to resolve. + ON_CALL(*sync_service_mock_, GetUserActionableError()) + .WillByDefault( + Return(syncer::SyncService::UserActionableError::kNeedsPassphrase)); + + auth_service_->SignIn(fake_identity_); + + CreateController(); + CheckController(); + + NSArray* account_items = [controller().tableViewModel + itemsInSectionWithIdentifier:SettingsSectionIdentifier:: + SettingsSectionIdentifierAccount]; + ASSERT_EQ(3U, account_items.count); + + // Verify that the account item is in an error state. + TableViewAccountItem* identityAccountItem = + base::mac::ObjCCast<TableViewAccountItem>(account_items[0]); + ASSERT_TRUE(identityAccountItem.shouldDisplayError); + + // Resolve the account error. + ON_CALL(*sync_service_mock_, GetUserActionableError()) + .WillByDefault(Return(syncer::SyncService::UserActionableError::kNone)); + + // Verify that the account item is not in an error state when the error was + // resolved and the data model reloaded. + [controller() loadModel]; + account_items = [controller().tableViewModel + itemsInSectionWithIdentifier:SettingsSectionIdentifier:: + SettingsSectionIdentifierAccount]; + ASSERT_EQ(3U, account_items.count); + identityAccountItem = + base::mac::ObjCCast<TableViewAccountItem>(account_items[0]); + ASSERT_TRUE(identityAccountItem != nil); + EXPECT_FALSE(identityAccountItem.shouldDisplayError); +} + +// Verifies that when ineligible the account item model doesn't hold the Account +// Storage error. +TEST_F(SettingsTableViewControllerTest, DontHoldAccountErrorWhenIneligible) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + kIndicateAccountStorageErrorInAccountCell); + + // Enable Sync to make the account item ineligible to indicate errors. + SetupSyncServiceEnabledExpectations(); + + // Set account error that would be in the model when eligible. + ON_CALL(*sync_service_mock_, GetUserActionableError()) + .WillByDefault( + Return(syncer::SyncService::UserActionableError::kNeedsPassphrase)); + + auth_service_->SignIn(fake_identity_); + + CreateController(); + CheckController(); + + NSArray* account_items = [controller().tableViewModel + itemsInSectionWithIdentifier:SettingsSectionIdentifier:: + SettingsSectionIdentifierAccount]; + ASSERT_EQ(3U, account_items.count); + + // Verify that the account item is not in an error state. + TableViewAccountItem* identityAccountItem = + base::mac::ObjCCast<TableViewAccountItem>(account_items[0]); + ASSERT_TRUE(identityAccountItem != nil); + EXPECT_FALSE(identityAccountItem.shouldDisplayError); +} + +// Verifies that when eligible the account item model doesn't have the Account +// Storage error when there is no error. +TEST_F(SettingsTableViewControllerTest, DontHoldAccountErrorWhenNoError) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + kIndicateAccountStorageErrorInAccountCell); + + // Set no account error state. + ON_CALL(*sync_service_mock_, GetUserActionableError()) + .WillByDefault(Return(syncer::SyncService::UserActionableError::kNone)); + + auth_service_->SignIn(fake_identity_); + + CreateController(); + CheckController(); + + NSArray* account_items = [controller().tableViewModel + itemsInSectionWithIdentifier:SettingsSectionIdentifier:: + SettingsSectionIdentifierAccount]; + ASSERT_EQ(3U, account_items.count); + + // Verify that the account item is not in an error state. + TableViewAccountItem* identityAccountItem = + base::mac::ObjCCast<TableViewAccountItem>(account_items[0]); + ASSERT_TRUE(identityAccountItem != nil); + EXPECT_FALSE(identityAccountItem.shouldDisplayError); +}
diff --git a/ios/chrome/browser/ui/settings/sync/utils/BUILD.gn b/ios/chrome/browser/ui/settings/sync/utils/BUILD.gn index b96ee1b..9f7acb4 100644 --- a/ios/chrome/browser/ui/settings/sync/utils/BUILD.gn +++ b/ios/chrome/browser/ui/settings/sync/utils/BUILD.gn
@@ -7,6 +7,8 @@ source_set("utils") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ + "account_error_ui_info.h", + "account_error_ui_info.mm", "sync_error_infobar_delegate.h", "sync_error_infobar_delegate.mm", "sync_presenter.h", @@ -19,16 +21,21 @@ "//components/infobars/core", "//components/strings", "//components/sync", + "//components/sync/driver", "//google_apis", "//ios/chrome/app/strings", "//ios/chrome/browser/browser_state", "//ios/chrome/browser/infobars", "//ios/chrome/browser/infobars:public", + "//ios/chrome/browser/main:public", "//ios/chrome/browser/signin", "//ios/chrome/browser/sync", "//ios/chrome/browser/tabs", + "//ios/chrome/browser/ui:feature_flags", "//ios/chrome/browser/ui/commands", "//ios/chrome/browser/ui/icons:symbols", + "//ios/chrome/browser/ui/settings:constants", + "//ios/chrome/browser/ui/settings:settings_root", "//ios/chrome/browser/ui/settings/google_services/resources:google_services_sync_error", "//ios/chrome/common/ui/colors", "//ui/base",
diff --git a/ios/chrome/browser/ui/settings/sync/utils/account_error_ui_info.h b/ios/chrome/browser/ui/settings/sync/utils/account_error_ui_info.h new file mode 100644 index 0000000..48ce51d --- /dev/null +++ b/ios/chrome/browser/ui/settings/sync/utils/account_error_ui_info.h
@@ -0,0 +1,46 @@ +// 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 IOS_CHROME_BROWSER_UI_SETTINGS_SYNC_UTILS_ACCOUNT_ERROR_UI_INFO_H_ +#define IOS_CHROME_BROWSER_UI_SETTINGS_SYNC_UTILS_ACCOUNT_ERROR_UI_INFO_H_ + +#import <Foundation/Foundation.h> + +#import "components/sync/driver/sync_service.h" + +enum class AccountErrorUserActionableType { + // No action to take. + kNoAction, + // User needs to enter their passphrase. + kEnterPassphrase, +}; + +// Contains the information of the account error UI item. +@interface AccountErrorUIInfo : NSObject + +- (instancetype) + initWithErrorType:(syncer::SyncService::UserActionableError)errorType + userActionableType:(AccountErrorUserActionableType)userActionableType + messageID:(int)messageID + buttonLabelID:(int)buttonLabelID NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +// Type of the error to display. +@property(nonatomic, assign, readonly) + syncer::SyncService::UserActionableError errorType; + +// Type of user actionable to resolve the error. +@property(nonatomic, assign, readonly) + AccountErrorUserActionableType userActionableType; + +// ID of the message localized string that gives details on the account error. +@property(nonatomic, assign, readonly) int messageID; + +// ID of the button label localized string that gives details on the action to +// resolve the account error. +@property(nonatomic, assign, readonly) int buttonLabelID; + +@end + +#endif // IOS_CHROME_BROWSER_UI_SETTINGS_SYNC_UTILS_ACCOUNT_ERROR_UI_INFO_H_
diff --git a/ios/chrome/browser/ui/settings/sync/utils/account_error_ui_info.mm b/ios/chrome/browser/ui/settings/sync/utils/account_error_ui_info.mm new file mode 100644 index 0000000..e8689642 --- /dev/null +++ b/ios/chrome/browser/ui/settings/sync/utils/account_error_ui_info.mm
@@ -0,0 +1,27 @@ +// 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/ui/settings/sync/utils/account_error_ui_info.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +@implementation AccountErrorUIInfo + +- (instancetype) + initWithErrorType:(syncer::SyncService::UserActionableError)errorType + userActionableType:(AccountErrorUserActionableType)userActionableType + messageID:(int)messageID + buttonLabelID:(int)buttonLabelID { + if (self = [super init]) { + _errorType = errorType; + _userActionableType = userActionableType; + _messageID = messageID; + _buttonLabelID = buttonLabelID; + } + return self; +} + +@end
diff --git a/ios/chrome/browser/ui/settings/sync/utils/sync_util.h b/ios/chrome/browser/ui/settings/sync/utils/sync_util.h index 23d0a465..9c889c4 100644 --- a/ios/chrome/browser/ui/settings/sync/utils/sync_util.h +++ b/ios/chrome/browser/ui/settings/sync/utils/sync_util.h
@@ -7,8 +7,10 @@ #import <Foundation/Foundation.h> -#include "components/sync/driver/sync_service.h" +#import "components/sync/driver/sync_service.h" +#import "google_apis/gaia/google_service_auth_error.h" +@class AccountErrorUIInfo; class ChromeBrowserState; @protocol SyncPresenter; @@ -41,4 +43,8 @@ web::WebState* web_state, id<SyncPresenter> presenter); +// Returns a data object with the needed information and handlers to display the +// account error UI. Returns nil if there is no account error to display. +AccountErrorUIInfo* GetAccountErrorUIInfo(ChromeBrowserState* browserState); + #endif // IOS_CHROME_BROWSER_UI_SETTINGS_SYNC_UTILS_SYNC_UTIL_H_
diff --git a/ios/chrome/browser/ui/settings/sync/utils/sync_util.mm b/ios/chrome/browser/ui/settings/sync/utils/sync_util.mm index e30873e4..0a5e663 100644 --- a/ios/chrome/browser/ui/settings/sync/utils/sync_util.mm +++ b/ios/chrome/browser/ui/settings/sync/utils/sync_util.mm
@@ -4,16 +4,26 @@ #import "ios/chrome/browser/ui/settings/sync/utils/sync_util.h" +#import <UIKit/UIKit.h> + #import "base/metrics/histogram_macros.h" #import "components/infobars/core/infobar_manager.h" #import "components/signin/public/identity_manager/identity_manager.h" #import "components/strings/grit/components_strings.h" +#import "components/sync/driver/sync_service.h" #import "ios/chrome/browser/browser_state/chrome_browser_state.h" #import "ios/chrome/browser/infobars/infobar_manager_impl.h" +#import "ios/chrome/browser/main/browser.h" #import "ios/chrome/browser/signin/identity_manager_factory.h" #import "ios/chrome/browser/sync/sync_service_factory.h" +#import "ios/chrome/browser/ui/commands/application_commands.h" +#import "ios/chrome/browser/ui/commands/browser_commands.h" +#import "ios/chrome/browser/ui/commands/browsing_data_commands.h" #import "ios/chrome/browser/ui/commands/show_signin_command.h" +#import "ios/chrome/browser/ui/settings/settings_root_view_controlling.h" +#import "ios/chrome/browser/ui/settings/sync/utils/account_error_ui_info.h" #import "ios/chrome/browser/ui/settings/sync/utils/sync_error_infobar_delegate.h" +#import "ios/chrome/browser/ui/ui_feature_flags.h" #import "ios/chrome/grit/ios_chromium_strings.h" #import "ios/chrome/grit/ios_strings.h" #import "ui/base/l10n/l10n_util.h" @@ -23,6 +33,7 @@ #endif namespace { + // Enumerated constants for logging when a sign-in error infobar was shown // to the user. This was added for crbug/265352 to quantify how often this // bug shows up in the wild. The logged histogram count should be interpreted @@ -41,6 +52,17 @@ kMaxValue = SYNC_TRUSTED_VAULT_RECOVERABILITY_DEGRADED, }; +AccountErrorUIInfo* GetAccountErrorUIInfoForPassphraseError() { + AccountErrorUIInfo* errorInfo = [[AccountErrorUIInfo alloc] + initWithErrorType:syncer::SyncService::UserActionableError:: + kNeedsPassphrase + userActionableType:AccountErrorUserActionableType::kEnterPassphrase + messageID:IDS_IOS_ACCOUNT_TABLE_ENTER_PASSPHRASE_MESSAGE + buttonLabelID:IDS_IOS_ACCOUNT_TABLE_ENTER_PASSPHRASE_BUTTON]; + + return errorInfo; +} + } // namespace NSString* GetSyncErrorDescriptionForSyncService( @@ -209,3 +231,36 @@ return SyncErrorInfoBarDelegate::Create(infoBarManager, browser_state, presenter); } + +AccountErrorUIInfo* GetAccountErrorUIInfo(ChromeBrowserState* browserState) { + if (!IsIndicateAccountStorageErrorInAccountCellEnabled()) { + return nil; + } + + syncer::SyncService* syncService = + SyncServiceFactory::GetForBrowserState(browserState); + DCHECK(syncService); + if (syncService->IsSyncFeatureEnabled()) { + // Don't indicate account errors when Sync is enabled. + return nil; + } + + switch (syncService->GetUserActionableError()) { + case syncer::SyncService::UserActionableError::kNeedsPassphrase: + return GetAccountErrorUIInfoForPassphraseError(); + case syncer::SyncService::UserActionableError::kNone: + case syncer::SyncService::UserActionableError::kSignInNeedsUpdate: + case syncer::SyncService::UserActionableError:: + kNeedsTrustedVaultKeyForPasswords: + case syncer::SyncService::UserActionableError:: + kNeedsTrustedVaultKeyForEverything: + case syncer::SyncService::UserActionableError:: + kTrustedVaultRecoverabilityDegradedForPasswords: + case syncer::SyncService::UserActionableError:: + kTrustedVaultRecoverabilityDegradedForEverything: + case syncer::SyncService::UserActionableError::kGenericUnrecoverableError: + break; + } + + return nil; +}
diff --git a/ios/chrome/browser/ui/ui_feature_flags.cc b/ios/chrome/browser/ui/ui_feature_flags.cc index a7ad863..5dd64513 100644 --- a/ios/chrome/browser/ui/ui_feature_flags.cc +++ b/ios/chrome/browser/ui/ui_feature_flags.cc
@@ -185,3 +185,12 @@ kIOSEditMenuPartialTranslate, kIOSEditMenuPartialTranslateNoIncognitoParam, false); } + +BASE_FEATURE(kIndicateAccountStorageErrorInAccountCell, + "IndicatePassphraseErrorForSignedInUser", + base::FEATURE_DISABLED_BY_DEFAULT); + +bool IsIndicateAccountStorageErrorInAccountCellEnabled() { + return base::FeatureList::IsEnabled( + kIndicateAccountStorageErrorInAccountCell); +}
diff --git a/ios/chrome/browser/ui/ui_feature_flags.h b/ios/chrome/browser/ui/ui_feature_flags.h index 1e1832b26..e14950b 100644 --- a/ios/chrome/browser/ui/ui_feature_flags.h +++ b/ios/chrome/browser/ui/ui_feature_flags.h
@@ -144,9 +144,19 @@ // Feature flag to enable add to home screen in share menu. BASE_DECLARE_FEATURE(kAddToHomeScreen); + // Param to disable the feature in incognito. extern const char kAddToHomeScreenDisableIncognitoParam[]; + // Helper function to check the feature add to home screen. bool ShouldAddToHomeScreen(bool in_incognito); +// Feature flag to enable indicating the Account Storage error in the Account +// Cell when Sync is turned OFF. +BASE_DECLARE_FEATURE(kIndicateAccountStorageErrorInAccountCell); + +// Returns true if the `kIndicateAccountStorageErrorInAccountCell` feature is +// enabled. +bool IsIndicateAccountStorageErrorInAccountCellEnabled(); + #endif // IOS_CHROME_BROWSER_UI_UI_FEATURE_FLAGS_H_
diff --git a/ios/chrome/browser/ui/whats_new/whats_new_coordinator.mm b/ios/chrome/browser/ui/whats_new/whats_new_coordinator.mm index 4f696155..532632d4 100644 --- a/ios/chrome/browser/ui/whats_new/whats_new_coordinator.mm +++ b/ios/chrome/browser/ui/whats_new/whats_new_coordinator.mm
@@ -110,7 +110,7 @@ #pragma mark - UINavigationControllerDelegate - (void)navigationController:(UINavigationController*)navigationController - willShowViewController:(UIViewController*)viewController + didShowViewController:(UIViewController*)viewController animated:(BOOL)animated { // No-op if the previous view controller is not the detail view. if (!self.whatsNewDetailCoordinator) {
diff --git a/ios/chrome/browser/ui/whats_new/whats_new_detail_coordinator.mm b/ios/chrome/browser/ui/whats_new/whats_new_detail_coordinator.mm index 7097917..a7534db 100644 --- a/ios/chrome/browser/ui/whats_new/whats_new_detail_coordinator.mm +++ b/ios/chrome/browser/ui/whats_new/whats_new_detail_coordinator.mm
@@ -67,8 +67,12 @@ } - (void)stop { - [self.baseNavigationController popToViewController:self.viewController - animated:NO]; + // Pop the detail view controller if it is at the top of the navigation stack. + if (self.baseNavigationController.topViewController == self.viewController) { + [self.baseNavigationController popViewControllerAnimated:NO]; + self.viewController = nil; + } + [super stop]; }
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 index 62c46e34..858e0a7 100644 --- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -5ff6bb8e66f26060c1c56033471b588d7e7b906e \ No newline at end of file +cabd0d44e79f4dfb83ae0d8269e9738e4f1f71bc \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 index 86daf325..46b27454 100644 --- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -1f4d0378ca5e3c897031df040c0be80ee1e532ec \ No newline at end of file +d6587c6797bbe643ebe2f754ff9ea2e113b845d9 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 index ce8bcfec..6beae87 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -629fd46b8d067d495e5a27eced353c9e285e556e \ No newline at end of file +50c57f5b5ca591dbf08c79bb42f104321f7d78d1 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 index c5921bb..fadf6de 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -569296ee560406c8bb80f0c68d862a7986b1f358 \ No newline at end of file +d22756691e95609c53c9fc0a14fcec741626c810 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 index cf36a9f..d00545d 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -b801afc93385353f049917af9d8a01d8fed325cc \ No newline at end of file +1ad14f5c3d261b778975f777e6779c4b67fbcbca \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 index b315493..83454c6f 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -c4f40dfed2e418fa0a8d3923012f603971c807c2 \ No newline at end of file +826a642c3812164042fb79c8d1ff6a2bb85cf4c3 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 index f74f0bc..9396706 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -f00af7d83bff7ad1eed9a00328e96857451f78a2 \ No newline at end of file +ed4fad8107412ee37be0c9813a1a74fbf945c483 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 index 9507f79..fc9eae1 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -e52de08761a6c06735e7ab18461fcfee59dcddc6 \ No newline at end of file +44f40462231c20f846c4c5c8328e87bea1d32acd \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 index 4a2ee6af..7f76cf3d 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -1e865cf2da3113382532d8d0421443b585b32c14 \ No newline at end of file +18788b0aa059d18d50abeb481505a56c58a226b5 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 index b404791..4750b55 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -5be0491dc50ee02b5c5d133242289e3a9ebb1d1c \ No newline at end of file +1eeb7e5f8107e121bc280e2d6c6dec009fcedc32 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 index b0009c2..c0fa1ea 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -f80a645bf4d7f5c3519090a785ff631c35e10295 \ No newline at end of file +4ddb88a74ecc22cdbd697e2ad8c380008ca2cc4f \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 index b9230e18..d166286 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -c4e06498071d9aa5105da0c75dc7e91fef81a4a4 \ No newline at end of file +4bad42f04164f3561bacb57071d3bfec93c5abb1 \ No newline at end of file
diff --git a/media/gpu/test/video_frame_file_writer.cc b/media/gpu/test/video_frame_file_writer.cc index b87513f..38a73f0d 100644 --- a/media/gpu/test/video_frame_file_writer.cc +++ b/media/gpu/test/video_frame_file_writer.cc
@@ -236,10 +236,7 @@ // Write the PNG data to file. base::FilePath file_path( output_folder_.Append(filename).AddExtension(FILE_PATH_LITERAL(".png"))); - const int size = base::checked_cast<int>(png_output.size()); - const int bytes_written = base::WriteFile( - file_path, reinterpret_cast<char*>(png_output.data()), size); - ASSERT_TRUE(bytes_written == size); + ASSERT_TRUE(base::WriteFile(file_path, png_output)); } void VideoFrameFileWriter::WriteVideoFrameYUV(
diff --git a/net/base/isolation_info_unittest.cc b/net/base/isolation_info_unittest.cc index 3b8e1db..13b0cf0e 100644 --- a/net/base/isolation_info_unittest.cc +++ b/net/base/isolation_info_unittest.cc
@@ -138,10 +138,7 @@ EXPECT_EQ(isolation_info.DebugString(), base::StrCat(parts)); } -// TODO(crbug.com/1419563): Disabled as it was causing consistent failures -// across multiple builders -TEST_P(IsolationInfoTest, - DISABLED_CreateNetworkAnonymizationKeyForIsolationInfo) { +TEST_P(IsolationInfoTest, CreateNetworkAnonymizationKeyForIsolationInfo) { IsolationInfo isolation_info = IsolationInfo::Create( IsolationInfo::RequestType::kMainFrame, kOrigin1, kOrigin2, SiteForCookies::FromOrigin(kOrigin1), kPartyContextEmpty, &kNonce1); @@ -182,7 +179,10 @@ // A 2.5-keyed NAK created with two identical opaque origins should be // same-site. -TEST_P(IsolationInfoTest, CreateNetworkAnonymizationKeyForIsolationInfoOpaque) { +// TODO(crbug.com/1419563): Disabled as it was causing consistent failures +// across multiple builders +TEST_P(IsolationInfoTest, + DISABLED_CreateNetworkAnonymizationKeyForIsolationInfoOpaque) { url::Origin opaque; IsolationInfo isolation_info = IsolationInfo::Create( IsolationInfo::RequestType::kMainFrame, opaque, opaque,
diff --git a/net/cert/internal/trust_store_nss.cc b/net/cert/internal/trust_store_nss.cc index 9d27ea0..6822a21b 100644 --- a/net/cert/internal/trust_store_nss.cc +++ b/net/cert/internal/trust_store_nss.cc
@@ -6,9 +6,21 @@ #include <cert.h> #include <certdb.h> +#include <certt.h> +#include <pk11pub.h> +#include <pkcs11n.h> +#include <pkcs11t.h> +#include <seccomon.h> +#include <secmod.h> +#include <secmodt.h> +#include "base/hash/sha1.h" #include "base/logging.h" +#include "base/notreached.h" +#include "base/strings/string_number_conversions.h" #include "crypto/nss_util.h" +#include "crypto/nss_util_internal.h" +#include "crypto/scoped_nss_types.h" #include "net/base/features.h" #include "net/cert/internal/trust_store_features.h" #include "net/cert/known_roots_nss.h" @@ -21,10 +33,64 @@ namespace net { +namespace { + +struct FreePK11GenericObjects { + void operator()(PK11GenericObject* x) const { + if (x) { + PK11_DestroyGenericObjects(x); + } + } +}; +using ScopedPK11GenericObjects = + std::unique_ptr<PK11GenericObject, FreePK11GenericObjects>; + +// Get the list of all slots `nss_cert` is present in, along with the object +// handle of the cert in each of those slots. +// +// (Note that there is a PK11_GetAllSlotsForCert function that *seems* like it +// would be useful here, however it does not actually return all relevant +// slots.) +std::vector<std::pair<crypto::ScopedPK11Slot, CK_OBJECT_HANDLE>> +GetAllSlotsAndHandlesForCert(CERTCertificate* nss_cert) { + std::vector<std::pair<crypto::ScopedPK11Slot, CK_OBJECT_HANDLE>> r; + crypto::AutoSECMODListReadLock lock_id; + for (const SECMODModuleList* item = SECMOD_GetDefaultModuleList(); + item != nullptr; item = item->next) { + for (int i = 0; i < item->module->slotCount; ++i) { + PK11SlotInfo* slot = item->module->slots[i]; + if (PK11_IsPresent(slot)) { + CK_OBJECT_HANDLE handle = PK11_FindCertInSlot(slot, nss_cert, nullptr); + if (handle != CK_INVALID_HANDLE) { + r.emplace_back(PK11_ReferenceSlot(slot), handle); + } + } + } + } + return r; +} + +CK_ATTRIBUTE_TYPE SecTrustTypeToAttributeType(SECTrustType trust_type) { + switch (trust_type) { + case trustSSL: + return CKA_TRUST_SERVER_AUTH; + case trustEmail: + return CKA_TRUST_EMAIL_PROTECTION; + case trustObjectSigning: + return CKA_TRUST_CODE_SIGNING; + case trustTypeNone: + NOTREACHED(); + return 0; + } +} + +} // namespace + TrustStoreNSS::TrustStoreNSS(SECTrustType trust_type, SystemTrustSetting system_trust_setting, UserSlotTrustSetting user_slot_trust_setting) : trust_type_(trust_type), + trust_attr_type_(SecTrustTypeToAttributeType(trust_type)), ignore_system_trust_settings_(system_trust_setting == kIgnoreSystemTrust), user_slot_trust_setting_(std::move(user_slot_trust_setting)) {} @@ -72,7 +138,256 @@ CertificateTrust TrustStoreNSS::GetTrust(const ParsedCertificate* cert, base::SupportsUserData* debug_data) { crypto::EnsureNSSInit(); + // In theory we could also do better multi-profile slot filtering using a + // similar approach as GetTrustIgnoringSystemTrust, however it makes the + // logic more complicated and isn't really worth doing since we'll be + // removing the old path entirely. Also keeping the old path unmodified is + // better for ensuring that the temporary fallback policy actually falls back + // to the same old behavior. + if (ignore_system_trust_settings_) { + return GetTrustIgnoringSystemTrust(cert, debug_data); + } else { + return GetTrustWithSystemTrust(cert, debug_data); + } +} +// TODO(https://crbug.com/1340420): add histograms? (how often hits fast vs +// medium vs slow path, timing of fast/medium/slow path/all, etc?) + +// TODO(https://crbug.com/1340420): NSS also seemingly has some magical +// trusting of any self-signed cert with CKA_ID=0, if it doesn't have a +// matching trust object. Do we need to do that too? (this pk11_isID0 thing: +// https://searchfox.org/nss/source/lib/pk11wrap/pk11cert.c#357) + +CertificateTrust TrustStoreNSS::GetTrustIgnoringSystemTrust( + const ParsedCertificate* cert, + base::SupportsUserData* debug_data) const { + // If trust settings are only being used from a specified slot, and that slot + // is nullptr, there's nothing to do. This corresponds to the case where we + // wanted to get the builtin roots from NSS still but not user-added roots. + // Since the built-in roots are now coming from Chrome Root Store in this + // case, there is nothing to do here. + // + // (This ignores slots that would have been allowed by the "read-only + // internal slots" part of IsCertAllowedForTrust, I don't think that actually + // matters though.) + // + // TODO(https://crbug.com/1412591): once the non-CRS paths have been removed, + // perhaps remove this entirely and just have the caller not create a + // TrustStoreNSS at all in this case (or does it still need the + // SyncGetIssuersOf to find NSS temp certs in that case?) + if (absl::holds_alternative<crypto::ScopedPK11Slot>( + user_slot_trust_setting_) && + absl::get<crypto::ScopedPK11Slot>(user_slot_trust_setting_) == nullptr) { + return CertificateTrust::ForUnspecified(); + } + + SECItem der_cert; + der_cert.data = const_cast<uint8_t*>(cert->der_cert().UnsafeData()); + der_cert.len = base::checked_cast<unsigned>(cert->der_cert().Length()); + der_cert.type = siDERCertBuffer; + + // Find a matching NSS certificate object, if any. Note that NSS trust + // objects can also be keyed on issuer+serial and match any such cert. This + // is only used for distrust and apparently only in the NSS builtin roots + // certs module. Therefore, it should be safe to use the more efficient + // CERT_FindCertByDERCert to avoid having to have NSS parse the certificate + // and create a structure for it if the cert doesn't already exist in any of + // the loaded NSS databases. + ScopedCERTCertificate nss_cert( + CERT_FindCertByDERCert(CERT_GetDefaultCertDB(), &der_cert)); + if (!nss_cert) { + DVLOG(1) << "skipped cert that has no CERTCertificate already"; + return CertificateTrust::ForUnspecified(); + } + + // See if NSS has any trust settings for the certificate at all. If not, + // there is no point in doing further work. + CERTCertTrust nss_cert_trust; + if (CERT_GetCertTrust(nss_cert.get(), &nss_cert_trust) != SECSuccess) { + DVLOG(1) << "skipped cert that has no trust settings"; + return CertificateTrust::ForUnspecified(); + } + + // If there were trust settings, we may not be able to use the NSS calculated + // trust settings directly, since we don't know which slot those settings + // came from. Do a more careful check to only honor trust settings from slots + // we care about. + + std::vector<std::pair<crypto::ScopedPK11Slot, CK_OBJECT_HANDLE>> + slots_and_handles_for_cert = GetAllSlotsAndHandlesForCert(nss_cert.get()); + + // Generally this shouldn't happen, though it is possible (ex, a builtin + // distrust record with no matching cert in the builtin trust store could + // match a NSS temporary cert that doesn't exist in any slot. Ignoring that + // is okay. Theoretically there maybe could be trust records with no matching + // cert in user slots? I don't know how that can actually happen though.) + if (slots_and_handles_for_cert.empty()) { + DVLOG(1) << "skipped cert that has no slots"; + return CertificateTrust::ForUnspecified(); + } + + // List of trustOrder, slot pairs. + std::vector<std::pair<int, PK11SlotInfo*>> slots_to_check; + + for (const auto& [slotref, handle] : slots_and_handles_for_cert) { + PK11SlotInfo* slot = slotref.get(); + DVLOG(1) << "found cert in slot:" << PK11_GetSlotName(slot) + << " token:" << PK11_GetTokenName(slot) + << " module trustOrder: " << PK11_GetModule(slot)->trustOrder; + if (absl::holds_alternative<crypto::ScopedPK11Slot>( + user_slot_trust_setting_) && + slot != + absl::get<crypto::ScopedPK11Slot>(user_slot_trust_setting_).get()) { + DVLOG(1) << "skipping slot " << PK11_GetSlotName(slot) + << ", it's not user_slot_trust_setting_"; + continue; + } + if (PK11_HasRootCerts(slot) && + PK11_HasAttributeSet(slot, handle, CKA_NSS_MOZILLA_CA_POLICY, + PR_FALSE) == CK_TRUE) { + DVLOG(1) << "skipping slot " << PK11_GetSlotName(slot) + << ", this is mozilla ca policy provided"; + continue; + } + int trust_order = PK11_GetModule(slot)->trustOrder; + slots_to_check.emplace_back(trust_order, slot); + } + if (slots_to_check.size() == slots_and_handles_for_cert.size()) { + DVLOG(1) << "cert is only in allowed slots, using NSS calculated trust"; + return GetTrustForNSSTrust(nss_cert_trust); + } + if (slots_to_check.empty()) { + DVLOG(1) << "cert is only in disallowed slots, skipping"; + return CertificateTrust::ForUnspecified(); + } + + DVLOG(1) << "cert is in both allowed and disallowed slots, doing manual " + "trust calculation"; + + // Use PK11_FindGenericObjects + PK11_ReadRawAttribute to calculate the trust + // using only the slots we care about. (Some example code: + // https://searchfox.org/nss/source/gtests/pk11_gtest/pk11_import_unittest.cc#131) + // + // TODO(https://crbug.com/1340420): consider adding caching here if metrics + // show a need. If caching is added, note that NSS has no change notification + // APIs so we'd at least want to listen for CertDatabase notifications to + // clear the cache. (There are multiple approaches possible, could cache the + // hash->trust mappings on a per-slot basis, or just cache the end result for + // each cert, etc.) + base::SHA1Digest cert_sha1 = base::SHA1HashSpan(cert->der_cert().AsSpan()); + + // Check the slots in trustOrder ordering. Lower trustOrder values are higher + // priority, so we can return as soon as we find a matching trust object. + std::sort(slots_to_check.begin(), slots_to_check.end()); + + for (const auto& [_, slot] : slots_to_check) { + DVLOG(1) << "looking for trust in slot " << PK11_GetSlotName(slot) + << " token " << PK11_GetTokenName(slot); + + ScopedPK11GenericObjects objs(PK11_FindGenericObjects(slot, CKO_NSS_TRUST)); + if (!objs) { + DVLOG(1) << "no trust objects in slot"; + continue; + } + for (PK11GenericObject* obj = objs.get(); obj != nullptr; + obj = PK11_GetNextGenericObject(obj)) { + crypto::ScopedSECItem sha1_hash_attr(SECITEM_AllocItem(/*arena=*/nullptr, + /*item=*/nullptr, + /*len=*/0)); + SECStatus rv = PK11_ReadRawAttribute( + PK11_TypeGeneric, obj, CKA_CERT_SHA1_HASH, sha1_hash_attr.get()); + if (rv != SECSuccess) { + DVLOG(1) << "trust object has no CKA_CERT_SHA1_HASH attr"; + continue; + } + base::span<const uint8_t> trust_obj_sha1 = base::make_span( + sha1_hash_attr->data, sha1_hash_attr->data + sha1_hash_attr->len); + DVLOG(1) << "found trust object for sha1 " + << base::HexEncode(trust_obj_sha1); + + if (!std::equal(trust_obj_sha1.begin(), trust_obj_sha1.end(), + cert_sha1.begin(), cert_sha1.end())) { + DVLOG(1) << "trust object does not match target cert hash, skipping"; + continue; + } + DVLOG(1) << "trust object matches target cert hash"; + + crypto::ScopedSECItem trust_attr(SECITEM_AllocItem(/*arena=*/nullptr, + /*item=*/nullptr, + /*len=*/0)); + rv = PK11_ReadRawAttribute(PK11_TypeGeneric, obj, trust_attr_type_, + trust_attr.get()); + if (rv != SECSuccess) { + DVLOG(1) << "trust object for " << base::HexEncode(trust_obj_sha1) + << "has no CKA_TRUST_x attr"; + continue; + } + DVLOG(1) << "trust " + << base::HexEncode(base::make_span( + trust_attr->data, trust_attr->data + trust_attr->len)) + << " for sha1 " << base::HexEncode(trust_obj_sha1); + + CK_TRUST trust; + if (trust_attr->len != sizeof(trust)) { + DVLOG(1) << "trust is wrong size? skipping"; + continue; + } + + // This matches how pk11_GetTrustField in NSS converts the raw trust + // object to a CK_TRUST (actually an unsigned long). + // https://searchfox.org/nss/source/lib/pk11wrap/pk11nobj.c#37 + memcpy(&trust, trust_attr->data, trust_attr->len); + + // This doesn't handle the "TrustAnchorOrLeaf" combination, it's unclear + // how that is represented. But it doesn't really matter since the only + // case that would come up is if someone took one of the NSS builtin + // roots and then also locally marked it as trusted as both a CA and a + // leaf, which is non-sensical. Testing shows that will end up marked as + // CKT_NSS_TRUSTED_DELEGATOR, which is fine. + switch (trust) { + case CKT_NSS_TRUSTED: + if (base::FeatureList::IsEnabled( + features::kTrustStoreTrustedLeafSupport)) { + DVLOG(1) << "CKT_NSS_TRUSTED -> trusted leaf"; + return CertificateTrust::ForTrustedLeaf(); + } else { + DVLOG(1) << "CKT_NSS_TRUSTED -> unspecified"; + return CertificateTrust::ForUnspecified(); + } + case CKT_NSS_TRUSTED_DELEGATOR: { + DVLOG(1) << "CKT_NSS_TRUSTED_DELEGATOR -> trust anchor"; + const bool enforce_anchor_constraints = + IsLocalAnchorConstraintsEnforcementEnabled(); + return CertificateTrust::ForTrustAnchor() + .WithEnforceAnchorConstraints(enforce_anchor_constraints) + .WithEnforceAnchorExpiry(enforce_anchor_constraints); + } + case CKT_NSS_MUST_VERIFY_TRUST: + case CKT_NSS_VALID_DELEGATOR: + DVLOG(1) << "CKT_NSS_MUST_VERIFY_TRUST or CKT_NSS_VALID_DELEGATOR -> " + "unspecified"; + return CertificateTrust::ForUnspecified(); + case CKT_NSS_NOT_TRUSTED: + DVLOG(1) << "CKT_NSS_NOT_TRUSTED -> distrusted"; + return CertificateTrust::ForDistrusted(); + case CKT_NSS_TRUST_UNKNOWN: + DVLOG(1) << "CKT_NSS_TRUST_UNKNOWN trust value - skip"; + break; + default: + DVLOG(1) << "unhandled trust value - skip"; + break; + } + } + } + + DVLOG(1) << "no suitable NSS trust record found"; + return CertificateTrust::ForUnspecified(); +} + +CertificateTrust TrustStoreNSS::GetTrustWithSystemTrust( + const ParsedCertificate* cert, + base::SupportsUserData* debug_data) const { // TODO(eroman): Inefficient -- path building will convert between // CERTCertificate and ParsedCertificate representations multiple times // (when getting the issuers, and again here). @@ -93,11 +408,21 @@ } // Determine the trustedness of the matched certificate. - CERTCertTrust trust; - if (CERT_GetCertTrust(nss_cert.get(), &trust) != SECSuccess) { + CERTCertTrust nss_trust; + if (CERT_GetCertTrust(nss_cert.get(), &nss_trust) != SECSuccess) { return CertificateTrust::ForUnspecified(); } + CertificateTrust trust = GetTrustForNSSTrust(nss_trust); + if (trust.enforce_anchor_constraints && IsKnownRoot(nss_cert.get())) { + trust.enforce_anchor_constraints = false; + trust.enforce_anchor_expiry = false; + } + return trust; +} + +CertificateTrust TrustStoreNSS::GetTrustForNSSTrust( + const CERTCertTrust& trust) const { unsigned int trust_flags = SEC_GET_TRUST_FLAGS(&trust, trust_type_); // Determine if the certificate is distrusted. @@ -108,38 +433,12 @@ bool is_trusted_ca = false; bool is_trusted_leaf = false; - bool enforce_anchor_constraints = + const bool enforce_anchor_constraints = IsLocalAnchorConstraintsEnforcementEnabled(); // Determine if the certificate is a trust anchor. - // - // We may not use the result of this if it is a known root and we're ignoring - // system certs. if ((trust_flags & CERTDB_TRUSTED_CA) == CERTDB_TRUSTED_CA) { - // If its a user root, or its a system root and we're not ignoring system - // roots than return root as trusted. - // - // TODO(hchao, sleevi): CERT_GetCertTrust combines the trust settings from - // all tokens and slots, meaning it doesn't allow us to distinguish between - // CKO_NSS_TRUST objects the user manually configured versus CKO_NSS_TRUST - // objects from the builtin token (system trust settings). Properly - // handling this may require iterating all the slots and manually computing - // the trust settings directly, rather than CERT_GetCertTrust. - if (ignore_system_trust_settings_) { - // Only trust the user roots, and apply the value of - // enforce_anchor_constraints. - if (!IsKnownRoot(nss_cert.get())) { - is_trusted_ca = true; - } - } else { - is_trusted_ca = true; - if (enforce_anchor_constraints && IsKnownRoot(nss_cert.get())) { - // Don't enforce anchor constraints on the builtin roots. Needing to - // check IsKnownRoot for this condition isn't ideal, but this should be - // good enough for now. - enforce_anchor_constraints = false; - } - } + is_trusted_ca = true; } if (base::FeatureList::IsEnabled(features::kTrustStoreTrustedLeafSupport)) {
diff --git a/net/cert/internal/trust_store_nss.h b/net/cert/internal/trust_store_nss.h index f5aa56e..67d2fc3 100644 --- a/net/cert/internal/trust_store_nss.h +++ b/net/cert/internal/trust_store_nss.h
@@ -58,14 +58,20 @@ private: bool IsCertAllowedForTrust(CERTCertificate* cert) const; + CertificateTrust GetTrustForNSSTrust(const CERTCertTrust& trust) const; - SECTrustType trust_type_; + CertificateTrust GetTrustIgnoringSystemTrust( + const ParsedCertificate* cert, + base::SupportsUserData* debug_data) const; + CertificateTrust GetTrustWithSystemTrust( + const ParsedCertificate* cert, + base::SupportsUserData* debug_data) const; + + const SECTrustType trust_type_; + const CK_ATTRIBUTE_TYPE trust_attr_type_; // |ignore_system_certs_trust_settings_| specifies if the system trust // settings should be considered when determining a cert's trustworthiness. - // - // TODO(hchao, sleevi): Figure out how to ignore built-in trust settings, - // while respecting user-configured trust settings, for these certificates. const bool ignore_system_trust_settings_ = false; // |user_slot_trust_setting_| specifies which slots certificates must be
diff --git a/net/cert/internal/trust_store_nss_unittest.cc b/net/cert/internal/trust_store_nss_unittest.cc index a45a032..bb1218c 100644 --- a/net/cert/internal/trust_store_nss_unittest.cc +++ b/net/cert/internal/trust_store_nss_unittest.cc
@@ -6,10 +6,13 @@ #include <cert.h> #include <certdb.h> +#include <pkcs11n.h> +#include <prtypes.h> #include <secmod.h> #include <memory> +#include "base/strings/strcat.h" #include "base/strings/string_number_conversions.h" #include "base/test/scoped_feature_list.h" #include "crypto/nss_util_internal.h" @@ -22,7 +25,6 @@ #include "net/cert/pki/test_helpers.h" #include "net/cert/pki/trust_store.h" #include "net/cert/scoped_nss_types.h" -#include "net/cert/test_root_certs.h" #include "net/cert/x509_util.h" #include "net/cert/x509_util_nss.h" #include "testing/gtest/include/gtest/gtest.h" @@ -32,6 +34,32 @@ namespace { +std::string SystemTrustSettingToString( + TrustStoreNSS::SystemTrustSetting system_trust_setting) { + switch (system_trust_setting) { + case TrustStoreNSS::SystemTrustSetting::kUseSystemTrust: + return "UseSystemTrust"; + case TrustStoreNSS::SystemTrustSetting::kIgnoreSystemTrust: + return "IgnoreSystemTrust"; + }; +} + +unsigned TrustTypeToNSSTrust(CertificateTrustType trust) { + switch (trust) { + case CertificateTrustType::DISTRUSTED: + return CERTDB_TERMINAL_RECORD; + case CertificateTrustType::UNSPECIFIED: + return 0; + case CertificateTrustType::TRUSTED_ANCHOR: + return CERTDB_TRUSTED_CA | CERTDB_VALID_CA; + case CertificateTrustType::TRUSTED_LEAF: + return CERTDB_TRUSTED | CERTDB_TERMINAL_RECORD; + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: + return CERTDB_TRUSTED_CA | CERTDB_VALID_CA | CERTDB_TRUSTED | + CERTDB_TERMINAL_RECORD; + } +} + // Returns true if the provided slot looks like a built-in root. bool IsBuiltInRootSlot(PK11SlotInfo* slot) { if (!PK11_IsPresent(slot) || !PK11_HasRootCerts(slot)) @@ -100,6 +128,25 @@ &parsing_errors); } +absl::optional<unsigned> GetNSSTrustForCert(const ParsedCertificate* cert) { + SECItem der_cert; + der_cert.data = const_cast<uint8_t*>(cert->der_cert().UnsafeData()); + der_cert.len = base::checked_cast<unsigned>(cert->der_cert().Length()); + der_cert.type = siDERCertBuffer; + ScopedCERTCertificate nss_cert( + CERT_FindCertByDERCert(CERT_GetDefaultCertDB(), &der_cert)); + if (!nss_cert) { + return absl::nullopt; + } + + CERTCertTrust nss_cert_trust; + if (CERT_GetCertTrust(nss_cert.get(), &nss_cert_trust) != SECSuccess) { + return absl::nullopt; + } + + return SEC_GET_TRUST_FLAGS(&nss_cert_trust, trustSSL); +} + class TrustStoreNSSTestBase : public ::testing::Test { public: explicit TrustStoreNSSTestBase(bool trusted_leaf_support, @@ -161,6 +208,7 @@ } void SetUp() override { + ASSERT_TRUE(first_test_nssdb_.is_open()); ASSERT_TRUE(test_nssdb_.is_open()); ASSERT_TRUE(other_test_nssdb_.is_open()); ParsedCertificateList chain; @@ -211,6 +259,18 @@ ASSERT_EQ(SECSuccess, srv); } + // Import `cert` into `slot` and create a trust record with `trust` type. + // Tries to ensure that the created trust record ends up in the same `slot`. + // (That isn't always the case if `cert` exists in multiple slots and + // CERT_ChangeCertTrust was just used on an arbitrary CERTCertificate handle + // for `cert`.) + void AddCertToNSSSlotWithTrust(const ParsedCertificate* cert, + PK11SlotInfo* slot, + CertificateTrustType trust) { + AddCertToNSSSlot(cert, slot); + ChangeCertTrustInSlot(cert, slot, trust); + } + void AddCertsToNSS() { AddCertToNSSSlot(target_.get(), test_nssdb_.slot()); AddCertToNSSSlot(oldintermediate_.get(), test_nssdb_.slot()); @@ -275,6 +335,40 @@ ASSERT_EQ(SECSuccess, srv); } + // Change the trust for `cert` in `slot` to `trust`. + // `cert` must already exist in `slot'. + // Tries to ensure that the created trust record ends up in the same `slot`. + // (That isn't always the case if `cert` exists in multiple slots and + // CERT_ChangeCertTrust was just used on an arbitrary CERTCertificate handle + // for `cert`.) + // (An alternative approach would be to create the CKO_NSS_TRUST object + // directly using PK11_CreateManagedGenericObject, which has the advantage of + // being able to specify the slot directly, but the disadvantage that there's + // no guarantee the way the test creates the trust object matches what NSS + // actually does. See + // https://crrev.com/c/3732801/9/net/cert/internal/trust_store_nss_unittest.cc#412 + // for some example code if that's ever needed.) + void ChangeCertTrustInSlot(const ParsedCertificate* cert, + PK11SlotInfo* slot, + CertificateTrustType trust) { + crypto::ScopedCERTCertList cert_list(PK11_ListCertsInSlot(slot)); + ASSERT_TRUE(cert_list); + + for (CERTCertListNode* node = CERT_LIST_HEAD(cert_list); + !CERT_LIST_END(node, cert_list); node = CERT_LIST_NEXT(node)) { + if (x509_util::IsSameCertificate(node->cert, cert->cert_buffer())) { + CERTCertTrust nss_trust = {0}; + nss_trust.sslFlags = TrustTypeToNSSTrust(trust); + if (CERT_ChangeCertTrust(CERT_GetDefaultCertDB(), node->cert, + &nss_trust) != SECSuccess) { + ADD_FAILURE() << "CERT_ChangeCertTrust failed: " << PORT_GetError(); + } + return; + } + } + ADD_FAILURE() << "cert not found in slot"; + } + protected: bool TrustStoreContains(std::shared_ptr<const ParsedCertificate> cert, ParsedCertificateList expected_matches) { @@ -348,6 +442,7 @@ std::shared_ptr<const ParsedCertificate> oldintermediate_; std::shared_ptr<const ParsedCertificate> newintermediate_; std::shared_ptr<const ParsedCertificate> newrootrollover_; + crypto::ScopedTestNSSDB first_test_nssdb_; crypto::ScopedTestNSSDB test_nssdb_; crypto::ScopedTestNSSDB other_test_nssdb_; std::unique_ptr<TrustStoreNSS> trust_store_nss_; @@ -361,29 +456,46 @@ kDoNotAllowUserSlots, kAllowSpecifiedUserSlot }; +std::string SlotFilterTypeToString(SlotFilterType slot_filter_type) { + switch (slot_filter_type) { + case SlotFilterType::kDontFilter: + return "DontFilter"; + case SlotFilterType::kDoNotAllowUserSlots: + return "DoNotAllowUserSlots"; + case SlotFilterType::kAllowSpecifiedUserSlot: + return "AllowSpecifiedUserSlot"; + } +} // Used for testing a TrustStoreNSS with the slot filter type specified by the -// test parameter. +// test parameter. These tests are cases that are expected to be the same +// regardless of the slot filter type. class TrustStoreNSSTestWithSlotFilterType : public TrustStoreNSSTestBase, - public testing::WithParamInterface<SlotFilterType> { + public testing::WithParamInterface< + std::tuple<TrustStoreNSS::SystemTrustSetting, SlotFilterType>> { public: TrustStoreNSSTestWithSlotFilterType() = default; ~TrustStoreNSSTestWithSlotFilterType() override = default; + TrustStoreNSS::SystemTrustSetting system_trust_setting() const { + return std::get<0>(GetParam()); + } + SlotFilterType slot_filter_type() const { return std::get<1>(GetParam()); } + std::unique_ptr<TrustStoreNSS> CreateTrustStoreNSS() override { - switch (GetParam()) { + switch (slot_filter_type()) { case SlotFilterType::kDontFilter: return std::make_unique<TrustStoreNSS>( - trustSSL, TrustStoreNSS::kUseSystemTrust, + trustSSL, system_trust_setting(), TrustStoreNSS::UseTrustFromAllUserSlots()); case SlotFilterType::kDoNotAllowUserSlots: return std::make_unique<TrustStoreNSS>( - trustSSL, TrustStoreNSS::kUseSystemTrust, + trustSSL, system_trust_setting(), /*user_slot_trust_setting=*/nullptr); case SlotFilterType::kAllowSpecifiedUserSlot: return std::make_unique<TrustStoreNSS>( - trustSSL, TrustStoreNSS::kUseSystemTrust, + trustSSL, system_trust_setting(), crypto::ScopedPK11Slot(PK11_ReferenceSlot(test_nssdb_.slot()))); } } @@ -395,6 +507,9 @@ EXPECT_TRUE(TrustStoreContains(target_, ParsedCertificateList())); EXPECT_TRUE(TrustStoreContains(newintermediate_, ParsedCertificateList())); EXPECT_TRUE(TrustStoreContains(newroot_, ParsedCertificateList())); + EXPECT_TRUE(HasTrust({target_}, CertificateTrust::ForUnspecified())); + EXPECT_TRUE(HasTrust({newintermediate_}, CertificateTrust::ForUnspecified())); + EXPECT_TRUE(HasTrust({newroot_}, CertificateTrust::ForUnspecified())); } // TrustStoreNSS should return temporary certs on Chrome OS, because on Chrome @@ -406,22 +521,42 @@ newintermediate_->der_cert().UnsafeData(), newintermediate_->der_cert().Length())); EXPECT_TRUE(TrustStoreContains(target_, {newintermediate_})); + EXPECT_TRUE(HasTrust({target_}, CertificateTrust::ForUnspecified())); } // Independent of the specified slot-based filtering mode, built-in root certs -// should always be trusted. +// should always be trusted if kUseSystemTrust, otherwise they always should +// not. TEST_P(TrustStoreNSSTestWithSlotFilterType, TrustAllowedForBuiltinRootCerts) { auto builtin_root_cert = GetASSLTrustedBuiltinRoot(); ASSERT_TRUE(builtin_root_cert); - EXPECT_TRUE(HasTrust({builtin_root_cert}, ExpectedTrustForBuiltinAnchor())); + switch (system_trust_setting()) { + case TrustStoreNSS::SystemTrustSetting::kUseSystemTrust: + EXPECT_TRUE( + HasTrust({builtin_root_cert}, ExpectedTrustForBuiltinAnchor())); + break; + case TrustStoreNSS::SystemTrustSetting::kIgnoreSystemTrust: + EXPECT_TRUE( + HasTrust({builtin_root_cert}, CertificateTrust::ForUnspecified())); + break; + } } INSTANTIATE_TEST_SUITE_P( - TrustStoreNSSTest_AllSlotFilterTypes, + All, TrustStoreNSSTestWithSlotFilterType, - ::testing::Values(SlotFilterType::kDontFilter, - SlotFilterType::kDoNotAllowUserSlots, - SlotFilterType::kAllowSpecifiedUserSlot)); + ::testing::Combine( + ::testing::Values( + TrustStoreNSS::SystemTrustSetting::kUseSystemTrust, + TrustStoreNSS::SystemTrustSetting::kIgnoreSystemTrust), + ::testing::Values(SlotFilterType::kDontFilter, + SlotFilterType::kDoNotAllowUserSlots, + SlotFilterType::kAllowSpecifiedUserSlot)), + [](const testing::TestParamInfo< + TrustStoreNSSTestWithSlotFilterType::ParamType>& info) { + return base::StrCat({SystemTrustSettingToString(std::get<0>(info.param)), + SlotFilterTypeToString(std::get<1>(info.param))}); + }); // Tests a TrustStoreNSS that ignores system root certs. class TrustStoreNSSTestIgnoreSystemCerts @@ -440,6 +575,25 @@ } }; +TEST_P(TrustStoreNSSTestIgnoreSystemCerts, UnknownCertIgnored) { + EXPECT_TRUE(HasTrust({newroot_}, CertificateTrust::ForUnspecified())); +} + +// An NSS CERTCertificate object exists for the cert, but it is not +// imported into any DB. Should be unspecified trust. +TEST_P(TrustStoreNSSTestIgnoreSystemCerts, TemporaryCertIgnored) { + ScopedCERTCertificate nss_cert(x509_util::CreateCERTCertificateFromBytes( + newroot_->der_cert().UnsafeData(), newroot_->der_cert().Length())); + EXPECT_TRUE(HasTrust({newroot_}, CertificateTrust::ForUnspecified())); +} + +// Cert is added to user DB, but without explicitly calling +// CERT_ChangeCertTrust. Should be unspecified trust. +TEST_P(TrustStoreNSSTestIgnoreSystemCerts, UserCertWithNoTrust) { + AddCertsToNSS(); + EXPECT_TRUE(HasTrust({newroot_}, CertificateTrust::ForUnspecified())); +} + TEST_P(TrustStoreNSSTestIgnoreSystemCerts, UserRootTrusted) { AddCertsToNSS(); TrustCert(newroot_.get()); @@ -452,13 +606,6 @@ EXPECT_TRUE(HasTrust({newroot_}, CertificateTrust::ForDistrusted())); } -TEST_P(TrustStoreNSSTestIgnoreSystemCerts, SystemRootCertsIgnored) { - std::shared_ptr<const ParsedCertificate> system_root = - GetASSLTrustedBuiltinRoot(); - ASSERT_TRUE(system_root); - EXPECT_TRUE(HasTrust({system_root}, CertificateTrust::ForUnspecified())); -} - TEST_P(TrustStoreNSSTestIgnoreSystemCerts, UserTrustedServer) { AddCertsToNSS(); TrustServerCert(target_.get()); @@ -471,6 +618,140 @@ EXPECT_TRUE(HasTrust({target_}, ExpectedTrustForAnchorOrLeaf())); } +TEST_P(TrustStoreNSSTestIgnoreSystemCerts, SystemRootCertIgnored) { + std::shared_ptr<const ParsedCertificate> system_root = + GetASSLTrustedBuiltinRoot(); + ASSERT_TRUE(system_root); + EXPECT_TRUE(HasTrust({system_root}, CertificateTrust::ForUnspecified())); +} + +// A system trusted root is also present in a user DB, but without any trust +// settings in the user DB. The system trust settings should not be used. +TEST_P(TrustStoreNSSTestIgnoreSystemCerts, + SystemRootCertIgnoredWhenPresentInUserDb) { + std::shared_ptr<const ParsedCertificate> system_root = + GetASSLTrustedBuiltinRoot(); + ASSERT_TRUE(system_root); + + AddCertToNSSSlot(system_root.get(), test_nssdb_.slot()); + + // TrustStoreNSS should see an Unspecified since we are ignoring the system + // slot. + EXPECT_TRUE(HasTrust({system_root}, CertificateTrust::ForUnspecified())); +} + +// A system trusted root is also present in a user DB, with TRUSTED_CA settings +// in the user DB. The system trust settings should not be used, but the trust +// from the user DB should be honored. +TEST_P(TrustStoreNSSTestIgnoreSystemCerts, UserDbTrustForSystemRootHonored) { + std::shared_ptr<const ParsedCertificate> system_root = + GetASSLTrustedBuiltinRoot(); + ASSERT_TRUE(system_root); + + AddCertToNSSSlotWithTrust(system_root.get(), test_nssdb_.slot(), + CertificateTrustType::TRUSTED_ANCHOR); + // NSS should see the cert as trusted. + EXPECT_EQ(CERTDB_TRUSTED_CA | CERTDB_VALID_CA, + GetNSSTrustForCert(system_root.get())); + + // TrustStoreNSS should see as TrustAnchor since the cert was trusted in the + // user slot. + EXPECT_TRUE(HasTrust({system_root}, ExpectedTrustForAnchor())); +} + +// A system trusted root is also present in a user DB, with leaf trust in the +// user DB. The system trust settings should not be used, but the trust from +// the user DB should be honored. +TEST_P(TrustStoreNSSTestIgnoreSystemCerts, + UserDbLeafTrustForSystemRootHonored) { + std::shared_ptr<const ParsedCertificate> system_root = + GetASSLTrustedBuiltinRoot(); + ASSERT_TRUE(system_root); + + // Add unrelated trust record to test that we find the correct one. + AddCertToNSSSlotWithTrust(newroot_.get(), test_nssdb_.slot(), + CertificateTrustType::TRUSTED_ANCHOR); + + // Trust the system cert as a leaf. + AddCertToNSSSlotWithTrust(system_root.get(), test_nssdb_.slot(), + CertificateTrustType::TRUSTED_LEAF); + + // Add unrelated trust record to test that we find the correct one. + AddCertToNSSSlotWithTrust(newintermediate_.get(), test_nssdb_.slot(), + CertificateTrustType::DISTRUSTED); + + // NSS should see the cert as a trusted leaf. + EXPECT_EQ(CERTDB_TRUSTED | CERTDB_TERMINAL_RECORD, + GetNSSTrustForCert(system_root.get())); + + // TrustStoreNSS should see as TrustedLeaf since the cert was trusted in the + // user slot. + EXPECT_TRUE(HasTrust({system_root}, ExpectedTrustForLeaf())); +} + +// A system trusted root is also present in a user DB, with both CA and leaf +// trust in the user DB. The system trust settings should not be used, but the +// trust from the user DB should be honored. +TEST_P(TrustStoreNSSTestIgnoreSystemCerts, + UserDbAnchorAndLeafTrustForSystemRootHonored) { + std::shared_ptr<const ParsedCertificate> system_root = + GetASSLTrustedBuiltinRoot(); + ASSERT_TRUE(system_root); + + AddCertToNSSSlotWithTrust(system_root.get(), test_nssdb_.slot(), + CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF); + + // NSS should see the cert as both trusted leaf and CA. + EXPECT_EQ(CERTDB_TRUSTED_CA | CERTDB_VALID_CA | CERTDB_TRUSTED | + CERTDB_TERMINAL_RECORD, + GetNSSTrustForCert(system_root.get())); + + // TrustStoreNSS should see as TrustAnchor since the cert was trusted in the + // user slot. The TrustStoreNSS implementation isn't able to pick up both the + // CA and Leaf trust in this case, but we don't really care. + EXPECT_TRUE(HasTrust({system_root}, ExpectedTrustForAnchor())); +} + +// A system trusted root is also present in a user DB, with TERMINAL_RECORD +// settings in the user DB. The system trust settings should not be used, and +// the distrust from the user DB should be honored. +TEST_P(TrustStoreNSSTestIgnoreSystemCerts, UserDbDistrustForSystemRootHonored) { + std::shared_ptr<const ParsedCertificate> system_root = + GetASSLTrustedBuiltinRoot(); + ASSERT_TRUE(system_root); + + AddCertToNSSSlotWithTrust(system_root.get(), test_nssdb_.slot(), + CertificateTrustType::DISTRUSTED); + + // NSS should see the cert as distrusted. + EXPECT_EQ(CERTDB_TERMINAL_RECORD, GetNSSTrustForCert(system_root.get())); + + // TrustStoreNSS should see as Distrusted since the cert was distrusted in + // the user slot. + EXPECT_TRUE(HasTrust({system_root}, CertificateTrust::ForDistrusted())); +} + +// A system trusted root is also present in a user DB, with a trust object with +// no SSL trust flags set in the user DB. The system trust settings should not +// be used, and the lack of trust flags in the user DB should result in +// unspecified trust. +TEST_P(TrustStoreNSSTestIgnoreSystemCerts, + UserDbUnspecifiedTrustForSystemRootHonored) { + std::shared_ptr<const ParsedCertificate> system_root = + GetASSLTrustedBuiltinRoot(); + ASSERT_TRUE(system_root); + + AddCertToNSSSlotWithTrust(system_root.get(), test_nssdb_.slot(), + CertificateTrustType::UNSPECIFIED); + + // NSS should see the cert as unspecified trust. + EXPECT_EQ(0u, GetNSSTrustForCert(system_root.get())); + + // TrustStoreNSS should see as Unspecified since the cert was marked + // unspecified in the user slot. + EXPECT_TRUE(HasTrust({system_root}, CertificateTrust::ForUnspecified())); +} + INSTANTIATE_TEST_SUITE_P( All, TrustStoreNSSTestIgnoreSystemCerts, @@ -622,57 +903,180 @@ // Tests for a TrustStoreNSS which does not allow certificates on user slots // to be trusted. -class TrustStoreNSSTestDoNotAllowUserSlots : public TrustStoreNSSTestBase { +class TrustStoreNSSTestDoNotAllowUserSlots + : public TrustStoreNSSTestBase, + public testing::WithParamInterface<TrustStoreNSS::SystemTrustSetting> { public: TrustStoreNSSTestDoNotAllowUserSlots() = default; ~TrustStoreNSSTestDoNotAllowUserSlots() override = default; + TrustStoreNSS::SystemTrustSetting system_trust_setting() const { + return GetParam(); + } + std::unique_ptr<TrustStoreNSS> CreateTrustStoreNSS() override { - return std::make_unique<TrustStoreNSS>(trustSSL, - TrustStoreNSS::kUseSystemTrust, + return std::make_unique<TrustStoreNSS>(trustSSL, system_trust_setting(), /*user_slot_trust_setting=*/nullptr); } }; // A certificate that is stored on a "user slot" is not trusted if the // TrustStoreNSS is not allowed to trust certificates on user slots. -TEST_F(TrustStoreNSSTestDoNotAllowUserSlots, CertOnUserSlot) { - AddCertToNSSSlot(newroot_.get(), test_nssdb_.slot()); - TrustCert(newroot_.get()); +TEST_P(TrustStoreNSSTestDoNotAllowUserSlots, CertOnUserSlot) { + AddCertToNSSSlotWithTrust(newroot_.get(), test_nssdb_.slot(), + CertificateTrustType::TRUSTED_ANCHOR); EXPECT_TRUE(HasTrust({newroot_}, CertificateTrust::ForUnspecified())); + + // We don't do any filtering of the certs returned by GetIssuersOf since + // there isn't a security reason to. + EXPECT_TRUE(TrustStoreContains(newintermediate_, {newroot_})); } +// If an NSS trusted root is present in a user slot but +// user_slot_trust_setting=null, that trust setting should be ignored. +TEST_P(TrustStoreNSSTestDoNotAllowUserSlots, UserDbTrustForSystemRootIgnored) { + std::shared_ptr<const ParsedCertificate> system_root = + GetASSLTrustedBuiltinRoot(); + ASSERT_TRUE(system_root); + EXPECT_EQ(CERTDB_TRUSTED_CA | CERTDB_VALID_CA, + GetNSSTrustForCert(system_root.get())); + + AddCertToNSSSlotWithTrust(system_root.get(), test_nssdb_.slot(), + CertificateTrustType::TRUSTED_LEAF); + + switch (system_trust_setting()) { + case TrustStoreNSS::SystemTrustSetting::kUseSystemTrust: + // This should actually be CertificateTrust::ForTrustAnchor, but the old + // kUseSystemTrust code path doesn't handle trust settings in multiple + // slots correctly, and we aren't going to fix that now. + EXPECT_TRUE(HasTrust({system_root}, ExpectedTrustForLeaf())); + break; + case TrustStoreNSS::SystemTrustSetting::kIgnoreSystemTrust: + EXPECT_TRUE(HasTrust({system_root}, CertificateTrust::ForUnspecified())); + break; + } +} + +INSTANTIATE_TEST_SUITE_P( + All, + TrustStoreNSSTestDoNotAllowUserSlots, + ::testing::Values(TrustStoreNSS::SystemTrustSetting::kUseSystemTrust, + TrustStoreNSS::SystemTrustSetting::kIgnoreSystemTrust), + [](const testing::TestParamInfo< + TrustStoreNSSTestDoNotAllowUserSlots::ParamType>& info) { + return SystemTrustSettingToString(info.param); + }); + // Tests for a TrustStoreNSS which does allows certificates on user slots to // be only trusted if they are on a specific user slot. -class TrustStoreNSSTestAllowSpecifiedUserSlot : public TrustStoreNSSTestBase { +class TrustStoreNSSTestAllowSpecifiedUserSlot + : public TrustStoreNSSTestBase, + public testing::WithParamInterface<TrustStoreNSS::SystemTrustSetting> { public: TrustStoreNSSTestAllowSpecifiedUserSlot() = default; ~TrustStoreNSSTestAllowSpecifiedUserSlot() override = default; + TrustStoreNSS::SystemTrustSetting system_trust_setting() const { + return GetParam(); + } + std::unique_ptr<TrustStoreNSS> CreateTrustStoreNSS() override { return std::make_unique<TrustStoreNSS>( - trustSSL, TrustStoreNSS::kUseSystemTrust, + trustSSL, system_trust_setting(), crypto::ScopedPK11Slot(PK11_ReferenceSlot(test_nssdb_.slot()))); } }; // A certificate that is stored on a "user slot" is trusted if the // TrustStoreNSS is allowed to trust that user slot. -TEST_F(TrustStoreNSSTestAllowSpecifiedUserSlot, CertOnUserSlot) { - AddCertToNSSSlot(newroot_.get(), test_nssdb_.slot()); - TrustCert(newroot_.get()); +TEST_P(TrustStoreNSSTestAllowSpecifiedUserSlot, CertOnUserSlot) { + AddCertToNSSSlotWithTrust(newroot_.get(), test_nssdb_.slot(), + CertificateTrustType::TRUSTED_ANCHOR); EXPECT_TRUE(HasTrust({newroot_}, ExpectedTrustForAnchor())); } // A certificate that is stored on a "user slot" is not trusted if the // TrustStoreNSS is allowed to trust a user slot, but the certificate is // stored on another user slot. -TEST_F(TrustStoreNSSTestAllowSpecifiedUserSlot, CertOnOtherUserSlot) { - AddCertToNSSSlot(newroot_.get(), other_test_nssdb_.slot()); - TrustCert(newroot_.get()); +TEST_P(TrustStoreNSSTestAllowSpecifiedUserSlot, CertOnOtherUserSlot) { + AddCertToNSSSlotWithTrust(newroot_.get(), other_test_nssdb_.slot(), + CertificateTrustType::TRUSTED_ANCHOR); EXPECT_TRUE(HasTrust({newroot_}, CertificateTrust::ForUnspecified())); } +// The same certificate is stored in multiple user slots with different trust +// settings. Ensure that the correct trust setting is used. +TEST_P(TrustStoreNSSTestAllowSpecifiedUserSlot, CertOnMultipleSlots) { + // Add unrelated trust record to test that we find the correct one. + AddCertToNSSSlotWithTrust(newintermediate_.get(), test_nssdb_.slot(), + CertificateTrustType::DISTRUSTED); + + AddCertToNSSSlotWithTrust(newroot_.get(), first_test_nssdb_.slot(), + CertificateTrustType::DISTRUSTED); + AddCertToNSSSlotWithTrust(newroot_.get(), test_nssdb_.slot(), + CertificateTrustType::TRUSTED_ANCHOR); + AddCertToNSSSlotWithTrust(newroot_.get(), other_test_nssdb_.slot(), + CertificateTrustType::TRUSTED_LEAF); + + // Add unrelated trust record to test that we find the correct one. + AddCertToNSSSlotWithTrust(target_.get(), test_nssdb_.slot(), + CertificateTrustType::DISTRUSTED); + + switch (system_trust_setting()) { + case TrustStoreNSS::SystemTrustSetting::kUseSystemTrust: + // The kUseSystemTrust implementation doesn't attempt to handle this case + // correctly, but it actually is slightly more broken than expected and + // ends up returning Unspecified rather than any of the trust settings + // set above since the PK11_GetAllSlotsForCert call in + // TrustStoreNSS::IsCertAllowedForTrust doesn't actually do what it + // claims to do. + EXPECT_TRUE(HasTrust({newroot_}, CertificateTrust::ForUnspecified())); + break; + case TrustStoreNSS::SystemTrustSetting::kIgnoreSystemTrust: + EXPECT_TRUE(HasTrust({newroot_}, ExpectedTrustForAnchor())); + break; + } +} + +// A NSS trusted root certificate is also stored in multiple user slots with +// different trust settings. Ensure that the correct trust setting is used. +TEST_P(TrustStoreNSSTestAllowSpecifiedUserSlot, SystemRootCertOnMultipleSlots) { + std::shared_ptr<const ParsedCertificate> system_root = + GetASSLTrustedBuiltinRoot(); + ASSERT_TRUE(system_root); + EXPECT_EQ(CERTDB_TRUSTED_CA | CERTDB_VALID_CA, + GetNSSTrustForCert(system_root.get())); + + AddCertToNSSSlotWithTrust(system_root.get(), first_test_nssdb_.slot(), + CertificateTrustType::DISTRUSTED); + AddCertToNSSSlotWithTrust(system_root.get(), test_nssdb_.slot(), + CertificateTrustType::TRUSTED_LEAF); + AddCertToNSSSlotWithTrust(system_root.get(), other_test_nssdb_.slot(), + CertificateTrustType::UNSPECIFIED); + switch (system_trust_setting()) { + case TrustStoreNSS::SystemTrustSetting::kUseSystemTrust: + // The kUseSystemTrust implementation doesn't attempt to handle this case + // correctly, it returns distrust due to how NSS evaluates the trust + // records internally with regards to the order the slots were + // created. + EXPECT_TRUE(HasTrust({system_root}, CertificateTrust::ForDistrusted())); + break; + case TrustStoreNSS::SystemTrustSetting::kIgnoreSystemTrust: + EXPECT_TRUE(HasTrust({system_root}, ExpectedTrustForLeaf())); + break; + } +} + +INSTANTIATE_TEST_SUITE_P( + All, + TrustStoreNSSTestAllowSpecifiedUserSlot, + ::testing::Values(TrustStoreNSS::SystemTrustSetting::kUseSystemTrust, + TrustStoreNSS::SystemTrustSetting::kIgnoreSystemTrust), + [](const testing::TestParamInfo< + TrustStoreNSSTestAllowSpecifiedUserSlot::ParamType>& info) { + return SystemTrustSettingToString(info.param); + }); + // TODO(https://crbug.com/980443): If the internal non-removable slot is // relevant on Chrome OS, add a test for allowing trust for certificates // stored on that slot.
diff --git a/net/cert/x509_util_nss.cc b/net/cert/x509_util_nss.cc index ad837a69..7adaf25 100644 --- a/net/cert/x509_util_nss.cc +++ b/net/cert/x509_util_nss.cc
@@ -142,11 +142,17 @@ } bool IsSameCertificate(CERTCertificate* a, const X509Certificate* b) { - return a->derCert.len == CRYPTO_BUFFER_len(b->cert_buffer()) && - memcmp(a->derCert.data, CRYPTO_BUFFER_data(b->cert_buffer()), - a->derCert.len) == 0; + return IsSameCertificate(a, b->cert_buffer()); } bool IsSameCertificate(const X509Certificate* a, CERTCertificate* b) { + return IsSameCertificate(b, a->cert_buffer()); +} + +bool IsSameCertificate(CERTCertificate* a, const CRYPTO_BUFFER* b) { + return a->derCert.len == CRYPTO_BUFFER_len(b) && + memcmp(a->derCert.data, CRYPTO_BUFFER_data(b), a->derCert.len) == 0; +} +bool IsSameCertificate(const CRYPTO_BUFFER* a, CERTCertificate* b) { return IsSameCertificate(b, a); }
diff --git a/net/cert/x509_util_nss.h b/net/cert/x509_util_nss.h index 73d61e3..acca9ef4 100644 --- a/net/cert/x509_util_nss.h +++ b/net/cert/x509_util_nss.h
@@ -26,6 +26,8 @@ NET_EXPORT bool IsSameCertificate(CERTCertificate* a, CERTCertificate* b); NET_EXPORT bool IsSameCertificate(CERTCertificate* a, const X509Certificate* b); NET_EXPORT bool IsSameCertificate(const X509Certificate* a, CERTCertificate* b); +NET_EXPORT bool IsSameCertificate(CERTCertificate* a, const CRYPTO_BUFFER* b); +NET_EXPORT bool IsSameCertificate(const CRYPTO_BUFFER* a, CERTCertificate* b); // Returns a CERTCertificate handle from the DER-encoded representation. The // returned value may reference an already existing CERTCertificate object.
diff --git a/net/features.gni b/net/features.gni index b3f8475..8df01bc 100644 --- a/net/features.gni +++ b/net/features.gni
@@ -48,5 +48,6 @@ # builtin verifier using platform roots, depending on the platform. # See https://crbug.com/1216547 for status. chrome_root_store_supported = - is_win || is_mac || (is_android && !is_cronet_build) + is_win || is_mac || (is_android && !is_cronet_build) || is_linux || + is_chromeos }
diff --git a/net/http/transport_security_state_static.json b/net/http/transport_security_state_static.json index 7796957..d7cfd417 100644 --- a/net/http/transport_security_state_static.json +++ b/net/http/transport_security_state_static.json
@@ -191001,6 +191001,2318 @@ { "name": "zomatree.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, { "name": "zzcc.loan", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, { "name": "zzzzz.click", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffaaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffbbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffeee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffdd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffgg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffpp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffftt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fffzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffhhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffiii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffjjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00fflll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffmmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffnnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffrrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffsss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffuuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffvvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffwww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffxxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffyyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "00ffzzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "018878.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "02n.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "038799.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "06006.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "081481.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "091631.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "091634.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "092300.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "098711.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "0xheuts.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "110838.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffaaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffbbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffeee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffdd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffgg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffpp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffftt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fffzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffhhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffiii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffjjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffkkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11fflll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffmmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffnnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffrrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffsss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffuuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffvvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffwww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffxxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffyyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "11ffzzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "123storage.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "13411-111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "140.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "15-montorgueil.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "15montorgueil.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "15ruemontorgueil.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "197898.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "1f616emo.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffaaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffbbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffeee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffdd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffgg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffpp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffftt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fffzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffhhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffiii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffjjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffkkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22fflll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffmmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffnnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffrrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffsss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffuuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffvvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffwww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffxxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffyyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "22ffzzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "230594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "238923.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "24k.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "2595push.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "2728cp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "2chi1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "2class.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "3078i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "320331.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "331977.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffaaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffbbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffeee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffdd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffgg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffpp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffftt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fffzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffiii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffjjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffkkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33fflll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffmmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffnnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffrrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffsss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffvvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffwww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffxxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffyyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "33ffzzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "3536cp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "356338.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "356338a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "373521.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "376064.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "379237.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "385833.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "387538.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "390539.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "393039.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "393239.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "395039.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "396039.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "396539.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "397039.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "399739.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "399839.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "429637.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffaaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffbbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffeee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffdd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffgg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffpp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffftt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fffzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffhhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffiii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffjjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffkkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44fflll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffmmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffnnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffrrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffsss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffuuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffvvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffwww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "44ffzzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "493455.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "4sightdesignz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "550619.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffaaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffbbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffeee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffdd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffgg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffpp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffftt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fffzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffhhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffiii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffjjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffkkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55fflll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffmmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffnnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffrrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffsss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffuuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffvvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffwww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffxxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "55ffyyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "5758cp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "582343.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "589704.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "608325.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "60d.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "60i.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "661633.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffaaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffbbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffdd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffgg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffpp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffftt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fffzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffhhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffiii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffjjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66fflll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffmmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffnnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffrrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffsss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffuuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffvvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffwww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffxxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffyyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "66ffzzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "672367.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "68636.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "68636.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "68636.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "68636.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "690469.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "690569.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "690669.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "692269.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "693369.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "6s.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "703740.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "727877.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "750275.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "750375.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "750475.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "751175.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "753375.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "76o.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909dhz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909dhzapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77909k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffaaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffbbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffeee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffdd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffgg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffpp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffftt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fffzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffhhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffiii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffjjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffkkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77fflll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffmmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffrrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffsss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffuuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffvvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffwww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffxxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffyyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "77ffzzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "781534.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "782354.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "808gutterking.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8586cp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "864686.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "878431.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffaaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffbbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffeee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffdd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffgg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffpp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffftt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fffzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffhhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffiii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffjjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88fflll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffmmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffnnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffrrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffsss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffuuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffvvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffwww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffxxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffyyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "88ffzzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8fs000.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8fs111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8fs222.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8fs333.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8fs444.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8fs555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8fs666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8fs777.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8fs888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "8fs999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "9023n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "9023w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "907856.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "923601.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "925892.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "937493.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "959606.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "963696.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "9697cp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "985684.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "9941y.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffaaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffbbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffeee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffdd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffgg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffpp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffftt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fffzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffhhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffiii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffjjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffkkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99fflll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffmmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffnnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffrrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffsss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffuuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffvvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffwww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffxxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffyyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "99ffzzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "a1techrepair.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "aarisings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "abileneef.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "abre.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "academyruins.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "accelerationsummit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "accesoriiutilaje.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "accio.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "accretech.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ace-uk.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "acelyrin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "acendas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "active.agency", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "activehealth.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "adame.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "adjur.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "adler-kornwestheim.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "adorkable.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "adorkable.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "advancedconcrete.construction", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "aeslifesciences.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "affinityweb.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "agdsenice.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "agencelcinvestigations.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "agentprovocateur.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "agrowbio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "aguajero.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "aiavatars.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ainesexshop.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "airvida.sg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "aishatibetanterriers.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "akasa.red", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "albufeira-car-hire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "alessandrostaffolani.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "alexadamsddns.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "alexia.lol", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "alfred-g-fischer.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "alfromuez.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "algarve-1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "algarve-carhire.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "algarve-transfers.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "alge.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "algibranstore.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "algotest.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "alingroove.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "allerzeiten.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "allgaragedoorandgates.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "almothaqaf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "aloomic.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "alt-wien.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "altes-rathaus.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "altoinsuranceagency.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ames-fzco.ae", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "amicare-france.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "amicare.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "amltrust.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "amnathrig.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "amogus.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "analyser-mon-site.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "anandkjha.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "andersonlegal.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "andresgarciapersonal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "andrewglucas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "andrewglucas.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "angelic.icu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "angelkeepers.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "animocreator.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "annelisetouya.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "anonsearch.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "anova.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "antenasmundosat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "antidayton.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "anyboat.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ap-bg.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "apartmanbeograd.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "apparitionbrew.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "appartementhaus-am-uke.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "appscan360.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "appscan360.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "appscan360.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "apsistemas.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "aquahill.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "arcticfoxes.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "areinsmuseum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "arekkusu.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "areteortho.com.sg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "argo-vision.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "argo-vision.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "argo.vision", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "argus01.bg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "arihantone.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "arklow.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "armsco.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "arounddeal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "arset.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "art-boeden.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "artroom-design.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "arzua.gal", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "asdfqwerty.duckdns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "assignmenthelpservices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ateus.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "atitudini.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "atlantatai.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "atlasrealestates.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "attorneyrebeccawhittington.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "aubay.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "audiosite.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "auribus.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "austincosmetic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "auto-albrecht.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "auto-delchev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "autorent.by", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "avangard-bg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "awningcleaningchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "awningpressurewashing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "az-raven.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "babolat.ae", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "baccredomatic.voyage", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "backlogs.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bahancoli.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "balhamrm.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bamboo-team.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bandwh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bantuanteknis.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "barke-schaltanlagen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "baronpaintingservices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bas.bio", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bas.coffee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bas.work", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "batista.g12.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "baxx.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bbp.ng", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bbrp.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bcalabsokc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bcarpentrypro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bccx.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bccxo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "be.st", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "beard.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "beargarden.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "beatsaberchampionship.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "beckmanngmbh.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bedwars.party", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "beerbruhs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "belka.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "benbenben.loan", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "benoit.jp.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bequeen.re", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "beregite-zdorovje.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "berndtgen.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "berriabot.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "berriainfo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "berriainfo.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bestchoicehomeinspections.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bestgolftrips.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bestpressurewashingchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bestsolution.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bestvpnsoftware.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "betelnatural.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "betstop.gov.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "betterviewrentals.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bezpaliuk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bferal.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bhameshwarigraphics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bi3e.ma", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bibliotecaumana.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bigbearlakecoins.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bilderload.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bindubreath.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "biopaltin.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bioseguridad.gob.pa", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bippassistant.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "birchandfog.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bis-jeddah.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bjargradakerfi.is", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bjerregaard.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bjugard.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bk-maklerbuero.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bkphcoop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "blastedmirror.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "blasunafotocadadia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "blazerworks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "blessingtransportbromoijen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bloomfield-investment.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bluedotsigns.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bluetape.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "blurbhack.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bnpl.kz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bo.ke", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "boatandsailboat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "boatyardx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "boctok.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bokepav.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "boldinsight.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "boldinsight.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bomanufacture.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bonfire.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bonwari.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bookchums.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bookitlive.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bookmark.porn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bostonfast.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "brainps.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "braziliantop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "britannia-jewellery.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "btsresearch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bu-e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bucapositano.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bugbountytip.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "buildingcleaningchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "buildwealth.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "burb.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bureau-store.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "bureauzelfstandigenfryslan.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "burger.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "burgerking.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "burina.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "burnus.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "business-impulse.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "businesssupportbywilma.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "caaworstroads.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cacatspurcat.gay", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cactusplumbingandair.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cafebab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "caffeineandconcrete.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cagrierdogdu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "calconnectionnews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "campbellavedental.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "canon-printerapps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "canondrivers.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "canopyservicing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cantinhodoiphone.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "car-hire-lisbon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "carbid.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "caricatureavenue.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "caringkitsforkids.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "carvoeiro-car-hire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "casacenina.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "casacenina.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "casacenina.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "casacenina.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "casasbandeirantes.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "catcafe.gg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "catphysics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "catrins-kunst.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cattaingroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ccvr6smarthome.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ceenic.ltd", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ceeteegee.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "centraldegovernanca.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "centralisgroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "centrodavida.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cerammind.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "certaireland.ie", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "certidaonc.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "certifiedbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "changeupinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "character-count.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "check-redirect.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chefscraftgourmet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cheminsderando.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chesstouring.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chewinggumremovalchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chicagoconcretecleaning.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chicagopowercleaning.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chicagopowerwashing.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chicagopowerwashingservices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chicagopressurewashing.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chillplanet.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chirointellect.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "chiropractorlongmontgpa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "choosecharterelectric.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "christreformedchurchdfw.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "christtheshepherdvineland.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cibernicola.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ciceksohbet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cinnamon.bot", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "circuloescola.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "city-adm.lviv.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cityofdartmouth.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cjri.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cleanertool.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cleaningsolutioncorp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "climaventa.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cloudbytesconnect.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cloudmax.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cloudsecurityalliance.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "club-no4.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "clubmacadamia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "clubmacadamia.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "clubmacadamia.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "clubzap.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cnews.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "coastalsignsplus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "codingame.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "codingame.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "comicborgs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "comitedal974.re", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "commander-seo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "commo.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "communityparentsinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "compensadosbello.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "concretepressurewashing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "connectenefit.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "connies-diner.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "conorjwryan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "conserviengenharia.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "contactbadger.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "coolagent-dokumenty.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "corn.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cornips.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "corride.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cosmeticosprofissionais.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cosplaypedi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "costravel.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "coursesidekick.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "craftutor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "crashgambler.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "crazytunaaz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cristiaen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "crossuniverse.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "crownednetwork.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "crunchr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cryne.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cryptobet.guru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "csabinext.dyndns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "csacloudtrustsummit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cuhadardokuma.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "curiouscast.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cuubconsultancy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "cyberpoint.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "daddyschickenshack.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "daddysfranchising.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dadrian.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "daemus.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "daftarpaketc.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dailyfish.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dair.community", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "damsafety.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "danaandnathan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "danielnaaman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dansasphaltmaintenance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dapurosyom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dashipping.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dataentry.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "datatruckers.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "daugoitot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "davidebaraglia.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "davidn.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dbfopraga-pn.waw.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dcklvr.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "decamidea.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "definitivepressurewashing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "defriesezaak.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "demobiliteitfinancier.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "denispiknjac.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "denverfootballofficials.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "depolauncher.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dermatologistmumbai.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dev-digibtw.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dghyp-kiel.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dghyp.net.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dhavalvira.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "diefotogruppe.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "digibtw.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "digiscrap.plus", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "digital-park.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "digitalwasteland.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "digitizingninjas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dimamergel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "disability-card.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "disisto.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dixifuar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dler.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dmitryg.name", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dmtcustoms.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dnastaffinginc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "do.ne", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "docugatetest.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "doineedanmdm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dominatorauckland.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dominicinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "domino.com.ge", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "domotics101.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dongbd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dontwastethewood.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "doridev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dotker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dowina.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dozor.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dp7.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "draagmerriecentrale.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dremble.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "drjoaquimserraodecastro.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "droidafrica.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dropden.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dsy4567.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dths.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dunbarmoving.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dw-connect.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dw6.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dxcv.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dz68.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "dzhyp.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "e-marlenka.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "e02.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "eagleseven.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "eahea.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "early-etudes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "easyishare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "easyrpg.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "easywrite.com.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ebics.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ebics.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ebics.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ebony.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "eccoilmenu.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ecity.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "eclipsesuite.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ecofinancing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "efeel.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ehostinguk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "elbiahosting.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "elektiriklidireksiyontamiri.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "elevaweb.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ellingworth.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "elliotbrandwein.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "elvikom.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "emamiltd.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "emocionestlp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "emulator.wtf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "enefitconnect.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "engagingcontents.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "english.events", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "entasyonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "epm-bg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "epofta.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "eprimego.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "equestrianvaulting.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "equil.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "erinias.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "escale-communication.bzh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "esmalglass-itaca.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "estrategiasfm.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "eurohell-design.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "eurohell-design.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "evaks.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "eventoscisco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "everstrike.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "evitacion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "evocate.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ewaroeng.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "exampaperarchive.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "excellarate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "exusi.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "exzotikfruit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fabarm.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fabian-praschl.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "facescertification.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "faimmobiliare.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "familjenosterlund.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fariya.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "faro-car-hire.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fassiportugal.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fastfast.click", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fasthostin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fdworlds.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fedistatus.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fedistatus.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fedistatus.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fediver.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fediver.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fediver.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fedivercity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fedivercity.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fedivercity.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fedivercity.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "femme.fitness", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fenstar.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ferienwohnung-wilmersdorf.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ferrumformat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffaaa00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffaaa11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffaaa22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffaaa33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffaaa44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffaaa55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffaaa66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffaaa77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffaaa88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffaaa99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffbbb00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffbbb11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffbbb22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffbbb33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffbbb44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffbbb55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffbbb66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffbbb77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffbbb88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffbbb99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffccc00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffccc11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffccc22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffccc33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffccc44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffccc55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffccc66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffccc88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffccc99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffclinic.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffddd00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffddd11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffddd22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffddd33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffddd44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffddd66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffddd77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffddd88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffddd99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffeee00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffeee11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffeee22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffeee44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffeee55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffeee66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffeee77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ffeee88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffaa00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffaa22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffaa33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffaa44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffaa55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffaa66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffaa77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffaa88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffaa99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffbb00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffbb11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffbb22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffbb44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffbb55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffbb66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffbb88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffbb99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffcc00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffcc11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffcc22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffcc33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffcc55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffcc66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffcc77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffcc88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffcc99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffdd00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffdd11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffdd22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffdd33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffdd44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffdd55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffdd66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffdd77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffdd88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffdd99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffee00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffee11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffee22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffee33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffee44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffee55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffee66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffee77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffee88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffee99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffgg00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffgg11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffgg22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffgg33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffgg44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffgg55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffgg66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffgg77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffgg88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffgg99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffhh00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffhh11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffhh22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffhh33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffhh44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffhh55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffhh66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffhh77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffhh88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffhh99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffii00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffii11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffii22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffii33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffii44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffii55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffii66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffii77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffii88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffii99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffjj00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffjj11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffjj22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffjj33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffjj44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffjj55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffjj66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffjj77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffjj88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffjj99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffkk00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffkk11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffkk22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffkk33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffkk44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffkk55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffkk66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffkk77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffkk88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffkk99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffll00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffll11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffll22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffll33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffll44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffll55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffll66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffll77.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffll88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffll99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffmm00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffmm11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffmm22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffmm33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffmm44.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fffmm55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fidell.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fieryaura.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "filipn.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "findjeen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "findyouridealpartner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "finst.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fireperformerstoronto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fjewellery.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fjnuacm.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fkgfw.men", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "flatmail.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "flexforcemonkey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "florisbrunet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fluffy.tools", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "flugsvamp.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "flyforpoints.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "flyzold.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "folwia.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fomobremen.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "food-animall.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "food4me.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "forbiddenshelf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "foreignassistance.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "forgejo.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "formalistgallery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fornaxmall.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fortressofsolitude.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fougereettralala.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "foundationdevices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fraai.agency", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "francenum.gouv.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "francishouserecovery.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "freak-waves.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "freefinancialhelp.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "frenger.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "friotemp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "friotemp.com.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "frontmeedia.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fruitdiva.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fudsend.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "furniturestrends.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "futunk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "futunk.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fvg.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "fwr.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gabare-loire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "galecommercial.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gallerywestframeplant.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ganaha.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "garcia-leplus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "garcialeplus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gastrosfera.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gatewaytrust.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gcb.com.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gd1214b.icu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gemhunter.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gemmasfashion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "geoscout.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "geotextil.ec", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "germancoding.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gestione-certificazioni.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "getcyber.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gfetoken.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "giakki.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "giftpoint.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gilbert-schmalriede.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gildapearl.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gilsanchez2009.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "github.partners", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gk-software.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "globeprotocol.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gloria-mundi.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gluglu.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gnhe.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gnomon-transport.com.ng", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "go.ne", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "goldenspikeartisans.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "goteamproclean.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "greatplains.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "greenbat57.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "growblocks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "grunttoziemia.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gtanalytics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gtek.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "guenstiger-it-support.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gurselcetin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gust.org.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "guymenje.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gvdn.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "gyanchowk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "h07.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "haakdes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hackintosh.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hadzaproperty.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "halfmba.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hamza.estate", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hanan.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "handymanfinder.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hanlonconcrete.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hanoilap.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hapfox.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "happeopleindonesia.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hasas-automatizari.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hasas-cnc.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "haus-maritchen.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hausdorf.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hazlocheaters.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hcmuehlethurnen.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "he-sb.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "he-sb.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "he-sb.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hearty.gift", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "heat-press.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "heathersnotes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "helpwise.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "helsinki-systems.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "herbalcart.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hermitant.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "heveacom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hexaunits.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "highperfection.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "himawari-shika.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hippolini-herold.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hissgruppen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hiyuki2578.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hizhina-hagrida.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hkamran.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hokko.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "holarse.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "holdeminside.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hornetshop.rs", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "horneytownbrewing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hospimedia.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "host-heberg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "host24.com.pk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hostmore.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hostpress.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hotel-kornwestheim.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hotelponcowinatan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "howardkaplanbooks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hpm.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hqy2000.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "human-centricity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hungarianeducationagency.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "hydra.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "icasnetwork.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "icrc.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "idawallen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ideericette.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "idev.games", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "iemail.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "illusiveshop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "indobrains.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "induehorse.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "indyperio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "infiniteid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "infokekinian.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "infotv.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "infrapedia.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "inimicalpart.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "inmoveskates.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "innosol.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "innov.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "intellicyb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "intelligenceia.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "interview-test-taker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ioctl.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "iolabs.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ipl.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ipsculemborg.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "iquitosmall.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "iratechwatch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ireis.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "isabellahoopsentertainment.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "isc.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ischia2.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "iskaz.rs", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "istec.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "it-wars.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "italianerd.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "itcompanies.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "itx.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "itxnorge.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "itxuc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ivn555.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ivn777.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ivtuning.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "izaban.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "izemporium.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "izmirde.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "j05.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "j3.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "j365.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jambapp.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jameshenderson.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jamiehenrybrown.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jan-koek.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "janulkowedomki.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "japornpics-video.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jasminum.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jellybeanpress.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jembatankasihbali.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jenniferjoos.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jetsetretiree.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jevalide.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jimwhitesell.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jisaudavel.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jliu.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jlmirall.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jmarineau.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jobulk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jogosfutebolhoje.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jollyvibe.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jonathanpartlow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "joyouscare.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jp404.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jrjgarage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jrrw.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "jtfew.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "justbraces.com.sg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "juvenalmaze.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kaamosmail.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kanali.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kantora-ivanova.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "karenza.design", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kariyermemur.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kawuk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kdonkers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ke.ke", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "keepsmyrnabeautiful.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "keisukekimura.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kelderro.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kenyachildrencentres.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kerdry.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kerozenn.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "keskraamatukogu.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "khayal-3d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ki.ki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kidslearningchannel.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik-textilien.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.hr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kik.si", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kikchat.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kimthanhvietnam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kimverly.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kingandmcgaw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kinoks.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kittleapps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kiyokosimmons.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kk-bs.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "klaymemez.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kleinhamilton.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "klimakamp.nu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kls-desk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "konyadireksiyonservisi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "konyadireksiyontamiri.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "korehomeinspections.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kosara.bg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "krimisound.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "krymp.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kryptosekken.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kueri.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "kyke.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "l.td", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "l.tt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "l3p3.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "l4web.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "la-ruche.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "laa.gov.ly", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "laboratoriolopezsalcedo.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ladyboyreports.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lafeva.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lagalerieduchanvre.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lagos-car-hire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lain.la", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lamborghi.ni", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "languagekeyboard.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "larchmontbuzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lariviereaux7pierres.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lavadoras.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lavkafreida.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "layxw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lazytapir.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lbk.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lea.pet", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "leee.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "leerox.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lem0n.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lemoncloud.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lemonsoftware.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "leonardoferrera.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "leonieroessler.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lepat.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "leplus.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "leplus.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lesoleilcafe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "letitfleet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "letitfleet.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lezhang.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lfc.com.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lianka.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lifco-industrie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lightningcollectors.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lihaoyu.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lihj.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "limestonecleaningchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lincolnparkpressurewashing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "link.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "linksecure.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "linzi.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lisabel.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lithiumhosting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "littlebig.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "littlechamp.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "liveflooring.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "liveroof.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "livewebtutor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lizzymcc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ljskatt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "log.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "logheavenvt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lois-bullion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "longboatlocal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "longbsants.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lorenzoprinci.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lovetablecloths.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lowell85.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lsfnet.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lskgreenacquisition.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lskgreencomponent.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lskgreendevelop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lskgreenenergy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lsupg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "luca-app.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lucasjag.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lueira.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lukem.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lumixtar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lwems.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "lyftservice.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "madebyesmel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "madeiraislandnews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "madisonpressurewashing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "madlife.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "magic-fly.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "magnetic-ink.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mahavirmandirpatna.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mahoney-it.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "makrufi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "malafidezoeker.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "managedwphosting.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mandatkollen.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "manofmanythings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mapa-airsoft-akci.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "marbleceramiccorp.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "marchqualitymeats.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "markowewesele.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "marrakeche.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "marvos.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "maryetmarc.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "masterflitzer.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mastergrampartners.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mattfiore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "maxtransport.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mcahm.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mcrot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mdvenoteca.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "medgyd.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "media-street.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mediahost.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "megasystem.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "memoriaacademy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "meower.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "metaiverse.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "metalcon.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "metalgo.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "metrobank.com.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "metromark.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "meuemby.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "michelson.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "microdot.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mignet.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mikrothink.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "milflove.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "milligandrivertraining.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mirri.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "misskey.art", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mitranlogistik.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mittilmeld.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "miweb.ec", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mixom.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mjf.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mjsys.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "modapharma.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "modernsaas.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mogyuchi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "moirai.bzh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "molexces.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "moneymet.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "monsalvat.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "moraxyc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "motosierra10.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "motum.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "moviemadness.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mrshish.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mtboutiques.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "muffins.cafe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mulder.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mundosat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "myabakus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mydetailbox.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mygeek911.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "myjobsearchengine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mynexus.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mypetsvetsltd.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "myredfoxlabs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mystiko.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "myswooop.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "mzplumbingca.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "n11pro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nabc.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nakisa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nas-redes-sociais.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nasacxhacxha.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nationaljobservice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nativitychurchnj.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "naturalremediesnewyork.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "naturebar.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "naturlife.co.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "naturlife.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "natviehealthcare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "naukriresults.co.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "naxsnaps.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nbl-forklift.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ncadc.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "neishe.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nelswong.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "netbeez.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "netnl.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "networld.to", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "netzwerk-kvp.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "neukoppel.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "neurococi.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "neurohouse.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "newannual.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "newmedia.gotdns.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "newplxx.gotdns.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "newrelationshiptrust.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "newspower.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "newsteadccc.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "neyco.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ngmx.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ngmx.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nhathaugiare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nickserve.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "niiucapital.com.sg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nikashoping.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nikastores.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nikolamilekic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nitro.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "niyen.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nkyrtl.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nogema.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "norcconcrete.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "northshorevisitor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nossossegredos.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nostring.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "npowerbusinesssolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nrc.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nullroute.wtf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "nyanners.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "o6i.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "oasis.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "obeid.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "occam-consulting.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "octaon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "odeliabridal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ogon.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ohbutt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "okayama-sengoku-project.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "okiram.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "okrodrigo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "olemon.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "oliverhough.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "olkywade.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "omira.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "onehorizon.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "onemix.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ongelukvandaag.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "opieoils.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "optionskredit.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "oqkd.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "orelferm.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "orionenerji.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "osrsmap.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "otoxp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "outrunstudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ovomope.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "oxidecomputer.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "oxidecomputer.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "paintpaina.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "paketconline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pakistanichatzone.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "paltin-petruvoda.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pancani.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pandamo.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pandorrah.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "paolomarzano.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "paolomoriggia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "papercanyon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "paqtam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "parkcheap.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "parker-pllc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "parkinggaragepressurewashingchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "partner-summit-2023.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "paseka-putilinyh.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "paulmilligan.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pausado.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "paypac.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "payraise.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pcmscientific.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "peamotocenter.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "peels.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pentechmc.blog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "performancetillagebolt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "perusal.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "perusal.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "peterhall.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pfgl.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pharmastuff.org.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "philipmorrisdirect.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "philippwinterberg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "phive.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "phoneswiz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "photonclub.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "picoulumber.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pilbaraports.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pinboxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pinnacleholdings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "piresroutes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pitajrobota.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pixelwraps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "plasma.nl.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "plexopedia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pliroforikikoufopoulou.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "plumbingbear.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "plus.st", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "plztoy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pmibags.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pmscomputers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pointnull.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "porncomp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "portugal-car-hire.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "post.how", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "post.kim", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pqforce.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "praisehim.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "preescolarsteps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "preferredservice.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pregnantorcrazy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "prendashop.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "priano.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "primeventos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "primrose-2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "printersdrivers.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "privateboat.amsterdam", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "procursus.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "prod-corn.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "produtoitaliano.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "profilmedecin.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "progamersquad.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "proi.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "projects.nl.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "promocoespg.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pronandi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "prooffice.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ps2.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "psychpsyo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "publicdelivery.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "puntoaparte.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "puravida-estate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "puritas.lk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "purrpley.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "purrpley.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "purrrpley.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "purrrrpley.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pwneytelecom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pws.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "pybilgi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "q8-press.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "qm8828.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "qm8888.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "quashed.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "queerspirit.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "quesys.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "quicareer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rabbitdns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rabbitsearch.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "radiantawards.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "radioilusion.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rainbowsushi.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rambus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rancakmedia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rayrekruiters.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rb.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rbclub.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rdm.lu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rdmc.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "reactive-load.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "readycentbid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "realbokep.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rebecamode.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rebuild96.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rechtsanwalt-loesener.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "recruitpedia.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "recruitpediacorp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "redteam.coach", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "reffect.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rehomeconnect.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rehzzo.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "reishikitchen.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "reishikitchen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "reishiplantkitchen.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "reishiplantkitchen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rekursion.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "releve-analyser.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "renoboston.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "renovalar.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rently.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "reporthy.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "repstalent.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rescuenode.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "residentialpressurewashingchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "residentinfo.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "restaurantcleaningchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "revol.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "revton.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rheincargo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rhsbl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "richiebartlett.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rim-kardzhali.bg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rim-kardzhali.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rinabhabra.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "robkaper.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "roboto.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rockfordpressurewashing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rockitreports.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "roissystories.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "roll9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "romdrop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ron.today", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "roofhaven.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rootroo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "roslagenshiss.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rossmeisl.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "routedor.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rphangx.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rpts.edu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rssproject.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rstadler.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rtec.com.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ruageek.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ryd.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "rydercragie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ryfma.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ryoch.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "s-deal.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "s.td", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "s.tt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "s6n.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "safensoundstoragegroton.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "safleo.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "saisecure.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "salesforceliveagent.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "saleskeyonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "salonboothuren.amsterdam", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "salterbrothers.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "samson-td.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "samuraichair.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sandybolton.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sanne-content.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sante.akita.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sassyporkchop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sbcbatangas.edu.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sbeech.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "scdn.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "scentiche.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "schachingerfilm.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "schanksysteme.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "schlouk-map.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "schooltransport.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "scoachingtherapy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "scottech.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sealing.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "seatingworldindia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "seavision-group.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "seavision.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "securly.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "seistrup.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "selfiestick.bg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sellyboard.company", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "semperincorde.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sempersolaris.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "senat.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sentir.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "serenauziyel.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sergiopimpao.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sewandblossom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "shadow-group.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "shadow-ninjas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "shapers-production.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "shipkirana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "shoutoutclassy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "shsadmission.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sibgold.su", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sidewalkpressurewashingchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "siepomaga.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "silverbankltd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "silvullet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "simac.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "simplerezo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "simsim.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "simulus.training", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "singlesproject.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "singularityparity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sirenequestrianvaulting.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sirenequestrianvaulting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sirenvaulting.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sirenvaulting.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sirenvaulting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sirenvaulting.group", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sitesignal.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sk4y.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "skip.re", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sky-driver.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "skyevg.systems", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "slangshop.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "slashorg.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "slaveykov.bg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "smartius.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "smd-studio.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sniderman.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "socialarchive.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sociality.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "soda-pops.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "soft-resets.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "solarscan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "soldered.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "solidray.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "solsombra-abdl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sorrentoparking.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "soulshare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "soulshare.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "soundersmusic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sourse.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sova.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sp-teploobmen.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "spacesedu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "spainemotions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "speakandgo.education", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "spectrum.co.ae", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "spellmanamp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "spencerfane.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "spireat.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "splconsulenza.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "spmttest.azurewebsites.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sport-attitude.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sporyayinevi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "spotpetins.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "spotpetinsurance.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "spowtr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sprocktech.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "srcbolt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "staffsocial.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "standard-wohnungsbaukredit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "starelabs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "starter.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "statecareercenter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "statejobcenter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "stats.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "steak-kojiro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "steingergreenefeiner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "stonkslab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "stophoax.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "storefrontcleaningchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "strategicmind.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "stritai.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "studybeans.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "stunningbikecotours.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "styletyx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "suburb.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sukhumvit-psycho.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "summaryexecution.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "summaryexecution.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "summaryexecution.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sunoven.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "supazena.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "super-60.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "super60.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "supplhi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "surelyhired.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "swaglookbook.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sweetheartvideo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sxcvid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "syndika.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sypper250.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "sysdams.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "szabadpingvin.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "szamlarobot.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tablosec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tachikoma.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tackleundies.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tagsweekly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "takethatfile.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tamracapital.sa", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tanknology.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "taraiid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tarsusrx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tatilsepeti.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tcmskarate.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "techikoma.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "technikoma.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "technikoma.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "technikoma.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "technocracy.works", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "teensifynews.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "teknatekno.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tekpon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tele-teen.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "teleteen.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "temofoundation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tendaqu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "terapower.com.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "teremopt.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "testbench.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "teuton.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "teverzamelen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "texasintegratedservices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "teyyib.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thatch.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thatchhealth.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thebus.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thecatcritic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thefriendlyplant.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thegeektools.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thegiftorganisation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thelangfords.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thelangfords.id.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thelearninggardener.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "themayanah.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "theome.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "theparthub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thepressurewashingdirectory.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "therap-up.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "theseotool.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thetorturedman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "theworldaccordingtocathers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thomas-leplus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "thomasleplus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "threadabead.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ticketfan.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "till.fyi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "timeswath.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tingalpakindy.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tinh.work", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tinytwitter.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tleplus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tlmedia.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tmryan.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tntbooks.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "todofiesta.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "toimitaax.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tominysun.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "top10boeken.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "topemlak.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "topmaxstore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "topprogaragedoor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "topsights.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tortimes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "touchofjapan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tradition.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "trakmd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "transactpaymentsltd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "transsensual.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "trastornoevitacion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "travelthing.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "trideum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "trimill.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tripozo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tropicalstandard.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "truyenmoizz.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tryckpa.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tsg0o0.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tsgbcs.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tsico.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ttkiel.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ttunda.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tu-muenchen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tuinmeubelkorting.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "turkista.ae", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tursa.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tusar.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tvkaista.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tvkaista.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "tvkaista.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "u05.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ubimail.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ukbusiness.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ukbusinessenergy.claims", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ukiuki.photography", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "unblockit.bio", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "uncoveringnarcolepsy.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "unifiedwellness.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "unit-linked.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "unitedhomeservices.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "unniehallyu.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "unope.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "uparcel.sg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "upbeatrobot.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "update.or.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "uprawnienia-1kv.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "uwdigitaleboekhouder.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "valleysupply.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vanish.industries", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vanwa.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vatlieuhay.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vccload.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vdrei.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vema-bg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vendorful.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vera-1.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "veronicca.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vertragsfix.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "veteransfirstwatch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vetinfo.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vhosting-it.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "via1buynow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vibromax.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vibromax.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vibromax.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "video-lab.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vilamoura-car-hire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vineeth.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "virginiahiltpeletti.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "visittamborinemountain.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vitabrillanti.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "viviendacoomeva.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vivos.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vkgroup.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "voidhacker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "voom.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vouchergoat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "vukhoidecor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "w03.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "w398.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "waldorf-harduf.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wangcun.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "warengroup.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "watchthis-svp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "waterlandtuinen.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "watto29.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wavelifesciences.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wayaberolodge.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "waynefarms.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wdpowerenergy.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "web-direct.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "webhostingmagic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "webtelegram.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "weekly-news.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "weirdork.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "weirdork.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "weirdork.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "weirdork.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "weirdorks.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "weirdorks.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "weirdorks.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "weis.duckdns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wesermarsch-bauelemente.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "west2.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wholegrace.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "whyteryan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "willkie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "windycitypressurewashing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wineexperience.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "withamscouts.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wohnungsbaukredit.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wohnungsbaukredit.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wonderpages.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "woody-art.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wootality.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "workoutdigital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wotlo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wp-rebuild.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wpsv.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wrecky.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wrenchess.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wu-y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wurzelchaos.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "wybar.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "x61.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xc01.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xc02.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xc03.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xc06.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xc07.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xc08.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xc09.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xc12.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xc15.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xcw888.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xcw8886.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xcw8888.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xcw8889.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xehopdongmuine.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xejaf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xenttrum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xhamiadituria.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xido.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xiufe.ng", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xmisystems.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xn----itbanmp3ae.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xn----mtbckubhv.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xn--bjugrd-lua.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xn--c5w032d4vi.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xn--c5wy5c025b.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xn--e1aajkmzd.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xn--g1abhqbgs.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xn--h1aaakmzd.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xn--mes55iczlylk.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xn--t8qu4voqikh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xnop.yt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xpremium.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xuexi.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xxxvv3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xxxvv8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xxxvv9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "xxyy.asia", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "y-erodoga.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yanagibashi.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yatax.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "ydt.am", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yksolutions.ma", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yoga-vakantie-ibiza.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "you.bo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "youjob.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yuanbiji.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxapp10.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxapp20.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxapp30.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxapp43.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxapp45.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxapp46.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxapp47.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxapp48.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxcpapp08.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxcpapp09.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "yxcpapp13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "zagcomunicazione.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "zapier.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "zbranetlapak.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "zdravec-bg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "zeeg.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "zenit505.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "zenseal.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, + { "name": "zgmining.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true }, // END OF 1-YEAR BULK HSTS ENTRIES // Only eTLD+1 domains can be submitted automatically to hstspreload.org,
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins index 50a0a3a..41f3265 100644 --- a/net/http/transport_security_state_static.pins +++ b/net/http/transport_security_state_static.pins
@@ -43,9 +43,9 @@ # hash function for preloaded entries again (we have already done so once). # -# Last updated: 2023-02-24 12:54 UTC +# Last updated: 2023-02-25 12:56 UTC PinsListTimestamp -1677243266 +1677329788 TestSPKI sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index 7c1c548a..cd3919d2 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -5785,9 +5785,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "isolate_profile_data": true, "merge": { "args": [], @@ -5799,8 +5799,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -5818,9 +5818,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_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "isolate_profile_data": true, "merge": { "args": [], @@ -5832,8 +5832,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -5957,9 +5957,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "isolate_profile_data": true, "merge": { "args": [], @@ -5971,8 +5971,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -5989,9 +5989,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "isolate_profile_data": true, "merge": { "args": [], @@ -6003,8 +6003,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -6108,9 +6108,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "isolate_profile_data": true, "merge": { "args": [], @@ -6122,8 +6122,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -6141,9 +6141,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "isolate_profile_data": true, "merge": { "args": [], @@ -6155,8 +6155,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.coverage.json b/testing/buildbot/chromium.coverage.json index 4e2da42..0b8c847 100644 --- a/testing/buildbot/chromium.coverage.json +++ b/testing/buildbot/chromium.coverage.json
@@ -20453,9 +20453,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "isolate_profile_data": true, "merge": { "args": [], @@ -20467,8 +20467,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -20486,9 +20486,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_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "isolate_profile_data": true, "merge": { "args": [], @@ -20500,8 +20500,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -20625,9 +20625,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "isolate_profile_data": true, "merge": { "args": [], @@ -20639,8 +20639,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -20657,9 +20657,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "isolate_profile_data": true, "merge": { "args": [], @@ -20671,8 +20671,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -20776,9 +20776,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "isolate_profile_data": true, "merge": { "args": [], @@ -20790,8 +20790,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -20809,9 +20809,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "isolate_profile_data": true, "merge": { "args": [], @@ -20823,8 +20823,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index 00824f8..4e53565 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -48743,9 +48743,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -48756,8 +48756,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -48776,9 +48776,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_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -48789,8 +48789,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -48915,9 +48915,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -48928,8 +48928,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -48947,9 +48947,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -48960,8 +48960,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -49066,9 +49066,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -49079,8 +49079,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -49099,9 +49099,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -49112,8 +49112,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -50604,9 +50604,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -50617,8 +50617,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -50637,9 +50637,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_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -50650,8 +50650,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -50776,9 +50776,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -50789,8 +50789,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -50808,9 +50808,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -50821,8 +50821,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -50927,9 +50927,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -50940,8 +50940,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -50960,9 +50960,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -50973,8 +50973,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -51714,9 +51714,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.5563.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -51727,8 +51727,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -51746,9 +51746,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_v112.0.5614.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -51759,8 +51759,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index 2ee7e4b..5aeb690 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -18497,12 +18497,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.5563.31/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/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.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "isolate_profile_data": true, "merge": { "args": [], @@ -18514,8 +18514,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -18533,12 +18533,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_v112.0.5614.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "isolate_profile_data": true, "merge": { "args": [], @@ -18550,8 +18550,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -18689,12 +18689,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.5563.31/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/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.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "isolate_profile_data": true, "merge": { "args": [], @@ -18706,8 +18706,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -18724,12 +18724,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v112.0.5614.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "isolate_profile_data": true, "merge": { "args": [], @@ -18741,8 +18741,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [ @@ -18855,12 +18855,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.5563.31/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/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.5563.31", + "description": "Run with ash-chrome version 111.0.5563.41", "isolate_profile_data": true, "merge": { "args": [], @@ -18872,8 +18872,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5563.31", - "revision": "version:111.0.5563.31" + "location": "lacros_version_skew_tests_v111.0.5563.41", + "revision": "version:111.0.5563.41" } ], "dimension_sets": [ @@ -18891,12 +18891,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v112.0.5614.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 112.0.5614.0", + "description": "Run with ash-chrome version 113.0.5616.0", "isolate_profile_data": true, "merge": { "args": [], @@ -18908,8 +18908,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v112.0.5614.0", - "revision": "version:112.0.5614.0" + "location": "lacros_version_skew_tests_v113.0.5616.0", + "revision": "version:113.0.5616.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index b049609..a8a272f 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_v112.0.5614.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v113.0.5616.0/test_ash_chrome', ], - 'description': 'Run with ash-chrome version 112.0.5614.0', + 'description': 'Run with ash-chrome version 113.0.5616.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_v112.0.5614.0', - 'revision': 'version:112.0.5614.0', + 'location': 'lacros_version_skew_tests_v113.0.5616.0', + 'revision': 'version:113.0.5616.0', }, ], }, @@ -54,16 +54,16 @@ }, 'LACROS_VERSION_SKEW_BETA': { 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.31/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5563.41/test_ash_chrome', ], - 'description': 'Run with ash-chrome version 111.0.5563.31', + 'description': 'Run with ash-chrome version 111.0.5563.41', 'identifier': 'Lacros version skew testing ash beta', 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v111.0.5563.31', - 'revision': 'version:111.0.5563.31', + 'location': 'lacros_version_skew_tests_v111.0.5563.41', + 'revision': 'version:111.0.5563.41', }, ], },
diff --git a/third_party/blink/public/mojom/permissions_policy/PRESUBMIT.py b/third_party/blink/public/mojom/permissions_policy/PRESUBMIT.py index 8fbfaa6..ad16bb5 100644 --- a/third_party/blink/public/mojom/permissions_policy/PRESUBMIT.py +++ b/third_party/blink/public/mojom/permissions_policy/PRESUBMIT.py
@@ -56,7 +56,7 @@ def _json5_load_from_file(file_path): - with open(file_path, 'r') as f: + with open(file_path, 'r', encoding='utf-8') as f: return _json5_load(f.read())
diff --git a/third_party/blink/renderer/core/dom/dom_high_res_time_stamp.h b/third_party/blink/renderer/core/dom/dom_high_res_time_stamp.h index 4c8ab5e5..2ba58c2 100644 --- a/third_party/blink/renderer/core/dom/dom_high_res_time_stamp.h +++ b/third_party/blink/renderer/core/dom/dom_high_res_time_stamp.h
@@ -16,6 +16,10 @@ return milliseconds / base::Time::kMillisecondsPerSecond; } +inline DOMHighResTimeStamp ConvertTimeToDOMHighResTimeStamp(base::Time time) { + return static_cast<DOMHighResTimeStamp>(time.ToJsTimeIgnoringNull()); +} + } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOM_HIGH_RES_TIME_STAMP_H_
diff --git a/third_party/blink/renderer/core/frame/deprecation/deprecation.json5 b/third_party/blink/renderer/core/frame/deprecation/deprecation.json5 index 16275bb..c94ba70 100644 --- a/third_party/blink/renderer/core/frame/deprecation/deprecation.json5 +++ b/third_party/blink/renderer/core/frame/deprecation/deprecation.json5
@@ -483,6 +483,16 @@ milestone: 97, }, { + name: "RTCPeerConnectionGetStatsLegacyNonCompliant", + message: "The callback-based getStats() is deprecated and will be removed. Use the spec-compliant getStats() instead.", + translation_note: "WebRTC is set of JavaScript APIs for sending and receiving data, audio and video. getStats() is a method used to obtain network and quality metrics. There are two versions of this method, one is being deprecated because it is non-standard.", + web_features: [ + "kRTCPeerConnectionGetStatsLegacyNonCompliant", + ], + chrome_status_feature: 4631626228695040, + milestone: 117, + }, + { name: "RtcpMuxPolicyNegotiate", message: "The `rtcpMuxPolicy` option is deprecated and will be removed.", translation_note: "A deprecation warning shown in the DevTools Issues tab. It's shown then a video conferencing website attempts to use the `RTCP MUX` policy.",
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter.idl index a2301230..773ffe0 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter.idl +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter.idl
@@ -4,8 +4,9 @@ typedef (object or FrozenArray<object>) CanvasFilterInput; [ - Exposed=(Window,Worker,PaintWorklet) + Exposed=(Window,Worker,PaintWorklet), + RuntimeEnabled=Canvas2dCanvasFilter ] interface CanvasFilter { [CallWith=ExecutionContext, RaisesException] constructor(CanvasFilterInput init); -}; \ No newline at end of file +};
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_change_event.cc b/third_party/blink/renderer/modules/cookie_store/cookie_change_event.cc index 02bfd73a..3542526f 100644 --- a/third_party/blink/renderer/modules/cookie_store/cookie_change_event.cc +++ b/third_party/blink/renderer/modules/cookie_store/cookie_change_event.cc
@@ -9,7 +9,7 @@ #include "services/network/public/mojom/cookie_manager.mojom-blink.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_cookie_change_event_init.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_cookie_list_item.h" -#include "third_party/blink/renderer/core/timing/epoch_time_stamp.h" +#include "third_party/blink/renderer/core/dom/dom_high_res_time_stamp.h" #include "third_party/blink/renderer/modules/event_modules.h" #include "third_party/blink/renderer/platform/heap/visitor.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" @@ -112,7 +112,7 @@ list_item->setExpires(absl::nullopt); } else { list_item->setExpires( - ConvertTimeToEpochTimeStamp(canonical_cookie.ExpiryDate())); + ConvertTimeToDOMHighResTimeStamp(canonical_cookie.ExpiryDate())); } }
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/third_party/blink/renderer/modules/cookie_store/cookie_init.idl index 49fa741..93aca7f3 100644 --- a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl +++ b/third_party/blink/renderer/modules/cookie_store/cookie_init.idl
@@ -15,7 +15,7 @@ required USVString value; USVString? domain = null; USVString path = "/"; - EpochTimeStamp? expires = null; + DOMHighResTimeStamp? expires = null; CookieSameSite sameSite = "strict"; [RuntimeEnabled=PartitionedCookies] boolean partitioned = false; };
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_list_item.idl b/third_party/blink/renderer/modules/cookie_store/cookie_list_item.idl index d7bb1f0..30e3c645 100644 --- a/third_party/blink/renderer/modules/cookie_store/cookie_list_item.idl +++ b/third_party/blink/renderer/modules/cookie_store/cookie_list_item.idl
@@ -9,7 +9,7 @@ USVString value; USVString? domain; USVString path; - EpochTimeStamp? expires; + DOMHighResTimeStamp? expires; boolean secure; CookieSameSite sameSite; [RuntimeEnabled=PartitionedCookies] boolean partitioned;
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc index ef2bf73..2462d71 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
@@ -1679,8 +1679,8 @@ auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state); ScriptPromise promise = resolver->Promise(); - UseCounter::Count(context, - WebFeature::kRTCPeerConnectionGetStatsLegacyNonCompliant); + Deprecation::CountDeprecation( + context, WebFeature::kRTCPeerConnectionGetStatsLegacyNonCompliant); auto* stats_request = MakeGarbageCollected<RTCStatsRequestImpl>( GetExecutionContext(), this, success_callback, selector); // FIXME: Add passing selector as part of the statsRequest.
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 68d9986..0f2be39 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -497,6 +497,11 @@ status: "stable", }, { + name: "Canvas2dCanvasFilter", + status: "experimental", + base_feature: "none", + }, + { name: "Canvas2dImageChromium", base_feature: "none", public: true,
diff --git a/third_party/blink/tools/blinkpy/common/config/PRESUBMIT.py b/third_party/blink/tools/blinkpy/common/config/PRESUBMIT.py index 8def37a..def1c53 100644 --- a/third_party/blink/tools/blinkpy/common/config/PRESUBMIT.py +++ b/third_party/blink/tools/blinkpy/common/config/PRESUBMIT.py
@@ -20,9 +20,9 @@ generic_test_expectation = input_api.os_path.join(this_dir, '..', '..', '..', '..', 'web_tests', 'TestExpectations') if builders_json_file in input_api.AbsoluteLocalPaths(): - with open(generic_test_expectation) as f: + with open(generic_test_expectation, encoding='utf-8') as f: tags = f.readline().rstrip() - with open(builders_json_file) as f: + with open(builders_json_file, encoding='utf-8') as f: builders = input_api.json.load(f) for key, value in builders.items(): tag = value["specifiers"][0]
diff --git a/third_party/blink/web_tests/SlowTests b/third_party/blink/web_tests/SlowTests index 3a2e22f..a309fa81 100644 --- a/third_party/blink/web_tests/SlowTests +++ b/third_party/blink/web_tests/SlowTests
@@ -24,7 +24,6 @@ crbug.com/24182 [ Mac10.15 Release ] storage/indexeddb/mozilla/test_objectStore_openKeyCursor.html [ Slow ] crbug.com/24182 [ Mac11 Release ] storage/indexeddb/mozilla/test_objectStore_openKeyCursor.html [ Slow ] crbug.com/24182 [ Mac12 ] storage/indexeddb/mozilla/test_objectStore_openKeyCursor.html [ Slow ] -crbug.com/24182 [ Mac12-arm64 Release ] storage/indexeddb/mozilla/test_objectStore_openKeyCursor.html [ Slow ] crbug.com/24182 [ Release Win ] storage/indexeddb/mozilla/test_objectStore_openKeyCursor.html [ Slow ] crbug.com/24182 editing/selection/modify_move/move-by-word-visually-mac.html [ Slow ] crbug.com/24182 compositing/culling/filter-occlusion-blur-large.html [ Slow ] @@ -647,7 +646,6 @@ crbug.com/874695 http/tests/workers/shared-worker-in-iframe.html [ Slow ] crbug.com/874695 http/tests/workers/shared-worker-usecounter.html [ Slow ] crbug.com/874695 http/tests/xmlhttprequest/navigation-abort-detaches-frame.html [ Slow ] -crbug.com/874695 [ Debug Mac12 ] http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html [ Slow ] crbug.com/874695 [ Release ] http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html [ Slow ] crbug.com/874695 [ Release ] http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html [ Slow ] crbug.com/874695 [ Debug Linux ] http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html [ Slow ] @@ -689,7 +687,6 @@ crbug.com/874695 media/video-controls-focus-movement-on-hide.html [ Slow ] crbug.com/874695 [ Debug Linux ] media/video-controls-hide-after-touch-on-control.html [ Slow ] crbug.com/874695 [ Release ] media/video-controls-hide-after-touch-on-control.html [ Slow ] -crbug.com/874695 [ Debug Linux ] media/video-controls-hide-on-move-outside-controls.html [ Slow ] crbug.com/874695 [ Release ] media/video-controls-hide-on-move-outside-controls.html [ Slow ] crbug.com/874695 [ Debug Mac12 ] media/video-controls-show-on-focus.html [ Slow ] crbug.com/874695 [ Release ] media/video-controls-show-on-focus.html [ Slow ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 319c642..2ce3e4b6 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -1546,23 +1546,6 @@ # values and mathvariant attribute. Currently, we only support the new # text-transform: auto, use the UA rule for the <mi> element and map # mathvariant="normal" to "text-transform: none". -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html [ Failure ] -crbug.com/1076420 external/wpt/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html [ Failure ] crbug.com/1076420 external/wpt/mathml/relations/css-styling/mathvariant-bold-fraktur.html [ Failure ] crbug.com/1076420 external/wpt/mathml/relations/css-styling/mathvariant-bold-italic.html [ Failure ] crbug.com/1076420 external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif.html [ Failure ] @@ -1875,7 +1858,6 @@ crbug.com/944583 [ Mac11-arm64 Release ] fast/scrolling/percentage-mousewheel-scroll-on-iframe.html [ Failure Pass ] crbug.com/944583 [ Mac12 ] fast/scrolling/percentage-mousewheel-scroll-on-iframe.html [ Failure Pass ] crbug.com/944583 [ Mac12-arm64 Release ] fast/scrolling/percentage-mousewheel-scroll-on-iframe.html [ Failure Pass ] -crbug.com/944583 [ Debug Mac13-arm64 ] fast/events/platform-wheelevent-paging-y-in-scrolling-page.html [ Failure Pass Timeout ] # Sheriff: 2020-05-18 # In external/wpt/html/, we prefer checking in failure @@ -2036,7 +2018,6 @@ # Inseparable characters crbug.com/1091631 external/wpt/css/css-text/line-break/line-break-normal-015a.xht [ Failure ] -crbug.com/1091631 external/wpt/css/css-text/line-break/line-break-strict-015a.xht [ Failure ] # Not yet investigated crbug.com/1404464 external/wpt/css/css-text/bidi/bidi-lines-002.html [ Failure ] @@ -2949,6 +2930,9 @@ 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 virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.html [ Timeout Failure ] +crbug.com/626703 [ Linux ] external/wpt/html/semantics/links/hyperlink-auditing/headers.optional.html [ Timeout ] +crbug.com/626703 [ Mac13 ] external/wpt/html/semantics/links/hyperlink-auditing/headers.optional.html [ Timeout ] crbug.com/626703 [ Linux ] external/wpt/IndexedDB/idb-explicit-commit.any.html [ Timeout ] crbug.com/626703 [ Mac12 ] external/wpt/IndexedDB/idb-explicit-commit.any.html [ Timeout ] crbug.com/626703 [ Linux ] virtual/fenced-frame-mparch/wpt_internal/fenced_frame/background-fetch.https.html [ Timeout ] @@ -3042,7 +3026,6 @@ crbug.com/626703 [ Linux ] external/wpt/webxr/hit-test/ar_hittest_subscription_inputSources.https.html [ Timeout ] crbug.com/626703 [ Linux ] external/wpt/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html [ Timeout ] crbug.com/626703 [ Linux ] external/wpt/webxr/render_state_update.https.html [ Timeout ] -crbug.com/626703 [ Debug Linux ] external/wpt/webxr/webxr_feature_policy.https.html [ Timeout ] crbug.com/626703 [ Linux ] external/wpt/webxr/xrSession_end.https.html [ Timeout ] crbug.com/626703 [ Linux ] external/wpt/webxr/xrSession_requestReferenceSpace_features.https.html [ Timeout ] crbug.com/626703 [ Linux ] external/wpt/webxr/xr_viewport_scale.https.html [ Timeout ] @@ -6830,6 +6813,9 @@ # TODO(crbug.com/1403877): Deflake this test. virtual/portals/http/tests/devtools/portals/portals-elements-nesting.js [ Failure Pass ] +# TODO(crbug.com/1419063): Deflake. +http/tests/media/media-load-nonmedia-crossorigin.html [ Failure Pass ] + # TODO(crbug.com/1404614): Fix this test on MacOS (sheriff 2023-01-03). crbug.com/1404614 [ Mac ] external/wpt/url/url-setters-a-area.window.html?exclude=(file|javascript|mailto) [ Failure Pass ] @@ -6911,10 +6897,10 @@ crbug.com/v8/13743 fast/forms/ValidityState-patternMismatch.html [ Failure Pass ] # To land rename CL in devtools repo -crbug.com/1418045 http/tests/devtools/portals/portals-console.js [ Timeout Crash Failure Pass ] -crbug.com/1418045 http/tests/devtools/portals/portals-elements-activate.js [ Timeout Crash Failure Pass ] -crbug.com/1418045 http/tests/devtools/components/cookies-table.js [ Timeout Crash Failure Pass ] -crbug.com/1418045 http/tests/devtools/oopif/oopif-elements-inspect.js [ Timeout Crash Failure Pass ] -crbug.com/1418045 http/tests/devtools/network/request-name-path.js [ Timeout Crash Failure Pass ] -crbug.com/1418045 http/tests/devtools/inspector-backend-commands.js [ Timeout Crash Failure Pass ] -crbug.com/1418045 http/tests/devtools/sources/debugger-breakpoints/nodejs-set-breakpoint.js [ Timeout Crash Failure Pass ] +crbug.com/1418045 http/tests/devtools/portals/portals-console.js [ Crash Failure Pass Timeout ] +crbug.com/1418045 http/tests/devtools/portals/portals-elements-activate.js [ Crash Failure Pass Timeout ] +crbug.com/1418045 http/tests/devtools/components/cookies-table.js [ Crash Failure Pass Timeout ] +crbug.com/1418045 http/tests/devtools/oopif/oopif-elements-inspect.js [ Crash Failure Pass Timeout ] +crbug.com/1418045 http/tests/devtools/network/request-name-path.js [ Crash Failure Pass Timeout ] +crbug.com/1418045 http/tests/devtools/inspector-backend-commands.js [ Crash Failure Pass Timeout ] +crbug.com/1418045 http/tests/devtools/sources/debugger-breakpoints/nodejs-set-breakpoint.js [ Crash Failure 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 efcfa0b..c3e1e7f 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
@@ -182681,247 +182681,26 @@ }, "text-transform": { "math": { - "text-transform-math-auto-001.tentative.html": [ - "f5f08f68b2ab8dbb515fbd19515d650fa4a3fc1f", + "text-transform-math-auto-001.html": [ + "db5e5b86f49bd7732a1e32d5fbe7e6937321c487", [ null, [ [ - "/css/css-text/text-transform/math/text-transform-math-auto-001.tentative-ref.html", + "/css/css-text/text-transform/math/text-transform-math-auto-001-ref.html", "==" ] ], {} ] ], - "text-transform-math-auto-002.tentative.html": [ - "32bad74f94d682db15f893b5a61c85c113083ef7", + "text-transform-math-auto-002.html": [ + "34e43e718e0baa3377417d82fd15bc01dc6d9134", [ null, [ [ - "/css/css-text/text-transform/math/text-transform-math-auto-002.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-bold-001.tentative.html": [ - "06b9ea6f6fdf72746e3e2b87e325df996eb93c0c", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-bold-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-bold-fraktur-001.tentative.html": [ - "76de9454fe71de97447ad83385c2d1f75b0c3d1f", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-bold-italic-001.tentative.html": [ - "9a03fc7f5480a47bb3e1fd8f34fcb7c11fea13ab", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-bold-sans-serif-001.tentative.html": [ - "3cbfdb96a60da3e011dac8cb332637e5a0b24d09", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-bold-script-001.tentative.html": [ - "b61a573efc4c0f5978284a1ab615f3ce45545c38", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-double-struck-001.tentative.html": [ - "df656d684725dcec782fe60d8b8149b930ccf008", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-fraktur-001.tentative.html": [ - "99310b8fafc799f808aa894fe58adcd7bc308a11", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-initial-001.tentative.html": [ - "42f3be7a02feef42d7b50f04c02055d7eb7f6545", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-initial-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-italic-001.tentative.html": [ - "86e9a84ae2df4f636c822ec389da82af80c07093", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-italic-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-looped-001.tentative.html": [ - "d46cbc163b09e936dca486900527f394060a3e4c", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-looped-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-monospace-001.tentative.html": [ - "86a4d113b25859174ef60aee1521b602b42a31c4", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-sans-serif-001.tentative.html": [ - "41a5cc9453a2b72ae56318ac4e5b0528089c5b97", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-sans-serif-bold-italic-001.tentative.html": [ - "955c54ab38d8b84827b19d170601d3730cf1c673", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-sans-serif-italic-001.tentative.html": [ - "03afa9a0d15740582089cc2015a41e4e8cb7ecb1", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-script-001.tentative.html": [ - "bd17ecca70c478a6d3d5d41f15fdcf54c2ca1150", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-script-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-stretched-001.tentative.html": [ - "87dd88e9d04db231c1b6c64ae1e2c9251cae1e41", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative-ref.html", - "==" - ] - ], - {} - ] - ], - "text-transform-math-tailed-001.tentative.html": [ - "f08c4657f123e4a6926f3dd4397ed25cc52d8e17", - [ - null, - [ - [ - "/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative-ref.html", + "/css/css-text/text-transform/math/text-transform-math-auto-002-ref.html", "==" ] ], @@ -253842,7 +253621,7 @@ ] ], "popover-anchor-nested-display.html": [ - "4b83d9677b978cc2f2c373e671a956042dd159af", + "b60ff49e09cf189dcc6985aa353e649b4681936f", [ null, [ @@ -257189,7 +256968,7 @@ ] ], "mathvariant-auto.html": [ - "98f99ad6edc73adce92fe09a2935972b1526bc8b", + "affb02f0c9edc6290c4d08fffb2546f39f394efa", [ null, [ @@ -257228,7 +257007,7 @@ ] ], "mathvariant-bold-italic.html": [ - "1b8ab885950b368bcad20765607282b80e6b9c92", + "725559a571f471f3c6384e87a29069f28d4a88c1", [ null, [ @@ -257241,7 +257020,7 @@ ] ], "mathvariant-bold-sans-serif.html": [ - "cd7fdfaef897370841590eee1b0e5a2103df8d02", + "0e0662dff660445f6f8f90deac545e9a08492ea6", [ null, [ @@ -257267,7 +257046,7 @@ ] ], "mathvariant-bold.html": [ - "513eac7f87ea729b250e1260369f782bf006970c", + "db5f4755bec1d07c41324a7f14086679fef20700", [ null, [ @@ -257306,7 +257085,7 @@ ] ], "mathvariant-double-struck.html": [ - "8592c2136ab8c53e696217be2bc0417bb6d01bb1", + "335234ac3858cbf08c54525defbeea08a0d040c6", [ null, [ @@ -257345,7 +257124,7 @@ ] ], "mathvariant-initial.html": [ - "5f54a5cf88e21044387abd02bd4e067e88f76b2d", + "3b0263a1977fbe14c287ef122caa2748c0ef7ed4", [ null, [ @@ -257358,7 +257137,7 @@ ] ], "mathvariant-italic.html": [ - "f22f23f82ba42c88182066358c0a48295d0201dd", + "1e6aa6512d326109525044379eaab4a064c4ab13", [ null, [ @@ -257371,7 +257150,7 @@ ] ], "mathvariant-looped.html": [ - "1e9b4f1e2175cfe66ac867a851aba8146db7545b", + "b208849368b382caa9f44ca9d21be7db5f2fd508", [ null, [ @@ -257384,7 +257163,7 @@ ] ], "mathvariant-monospace.html": [ - "a1a5c2d3c37dd42ce6538de5dd5299ccf4e66071", + "ad5541fe0ecf22ea6ac5d3f8325d96681c47738d", [ null, [ @@ -257397,7 +257176,7 @@ ] ], "mathvariant-sans-serif-bold-italic.html": [ - "d1512bbce1fbf0010b9d2e7e6162e59456f731bf", + "d51afe434546357fc8b2ecce9aeef5d2ac680a1a", [ null, [ @@ -257423,7 +257202,7 @@ ] ], "mathvariant-sans-serif.html": [ - "0b346aa17802eaaf46e4388b14d4d39c1c667f71", + "43a1fa821f3a32e36b9b85e6702a1279b475b8c3", [ null, [ @@ -257449,7 +257228,7 @@ ] ], "mathvariant-stretched.html": [ - "84210c339bce53eb1a4a02b749938318483e33e0", + "99b06fb41be76e6f1adafff6cde98631f2a1e0e6", [ null, [ @@ -257462,7 +257241,7 @@ ] ], "mathvariant-tailed.html": [ - "4590b76aa1da76a78294801c565dc40939eda4b3", + "43fbca5e80d6f2e462d25e532ad526b7019fff7d", [ null, [ @@ -265445,11 +265224,11 @@ "support": { ".cache": { "gitignore2.json": [ - "b233077e3d70ed4990cc34e613424d2a790aea50", + "0cbfded8f62b2916c038fc6b3ce43a61ce18aaad", [] ], "mtime.json": [ - "2bccfd92658792b2f59909a088ceae27947cd934", + "7128177bcc7233162b50353d09ba99b3e79fab26", [] ] }, @@ -269498,6 +269277,10 @@ "00c5072f85d076e59f03465a4e0d205edb413362", [] ], + "webkit-text-fill-color-property-002.html.ini": [ + "47fb92c6a599e9df74ac1f52610c337ded9771f8", + [] + ], "webkit-text-fill-color-property-003-ref.html": [ "bbfd78e37ff85dc39a82dc73cc261afd3af56a81", [] @@ -275508,6 +275291,10 @@ "6b46fb8eb9b890f51742f7eb6a2935677ceddbc7", [] ], + "float-under-flatten-under-preserve-3d.html.ini": [ + "34417d4fee30bda19d8ea4813b42ca7d4050c0e2", + [] + ], "floats-in-table-caption-001-ref.html": [ "91ddca772b7100d355c9bf766c530b78dd87a959", [] @@ -275520,6 +275307,10 @@ "a286a4aeb75d6e73b96439fb19c62c6f38d8110a", [] ], + "floats-placement-007.html.ini": [ + "b22e125306efbf9bf6758b42695f2afeaf2f0763", + [] + ], "floats-placement-vertical-001-ref.xht": [ "15ff213301ab6b3d3d7469abbaac98b657ec41ac", [] @@ -279826,6 +279617,10 @@ "1a8727ddec16c850227376fbac85b0fa61e2ec12", [] ], + "text-transform-bicameral-009.xht.ini": [ + "c7edfd9f2d1f137db740c6f216c5c02146b833a4", + [] + ], "text-transform-bicameral-010-ref.xht": [ "c5d842cb9c7e7044f5427be1caf7fb6d2b20a2b5", [] @@ -279954,6 +279749,10 @@ "7234d43469762a9f40cb6063e4c906e284e42d87", [] ], + "white-space-bidirectionality-001.xht.ini": [ + "dbb0905625539f1d8b24b1c02377604f06eb7691", + [] + ], "white-space-collapsing-001-ref.xht": [ "3ea0bf3be51f51493846640203bb93bfc80e2a1b", [] @@ -280683,6 +280482,12 @@ [] ] }, + "gaps": { + "gap-normal-used-002.html.ini": [ + "ba07bd38cbd0593e0f4c50ca3418da2c1aa9db4c", + [] + ] + }, "inheritance-expected.txt": [ "4252a3d642fb25adcb32c55b90635c5ef7822e90", [] @@ -281247,6 +281052,10 @@ [] ] }, + "background-attachment-353.html.ini": [ + "d1af9d7d555fc3e7f66841da6d1814f3ba484d71", + [] + ], "background-attachment-fixed-inside-transform-1-ref.html": [ "8d4c3f785c8e84ffa121128cda96269574e27e73", [] @@ -281570,6 +281379,10 @@ "9576c2c23bbb3112b6d0922cceb6c4bf512a222a", [] ], + "background-size-cover-contain-001.xht.ini": [ + "66f1c578328807d8f9fa83aaff88ee58dd718b36", + [] + ], "background-size-near-zero-png.html.ini": [ "89fc0fa4254c284c5d3fa5e696a843a2948e45f3", [] @@ -283499,6 +283312,14 @@ "29156878c0b5aea6f0eec393279f11ebb742cb47", [] ], + "br-clear-all.html.ini": [ + "e7f8f1c47bc656efe6de8dbc9bd8729461b61f32", + [] + ], + "break-float-dynamic-001.html.ini": [ + "211f0e80832fda302ac5f632922d0fcceed426b1", + [] + ], "break-inside-avoid-min-block-size-1-ref.html": [ "56789f62cbb570c4f5fbdcbdb13b97feda4fa174", [] @@ -283511,6 +283332,10 @@ "3459e25edd64ca8d90cebd4a44f68aa9b4106e25", [] ], + "change-break-after.html.ini": [ + "2ea4c5511dddbff6eb011e405555a60e54b043b4", + [] + ], "change-inline-color-ref.html": [ "7f99f57a67957bfeb57717852b03eb707c6a52f7", [] @@ -283580,6 +283405,10 @@ [] ], "flexbox": { + "flex-container-fragmentation-005.html.ini": [ + "68711ec142d48cf8df22a5fc0bc61123fda79acf", + [] + ], "flex-fragmented-with-float-descendant-001-ref.html": [ "ead53ad704a08d06a2e88ed5e43b9bcaf55aa584", [] @@ -283588,6 +283417,10 @@ "f4caedc110f43c67777fe1076cf4fb9cd821c97e", [] ], + "increase-fragmentainer-size-flex-item-trailing-margin.html.ini": [ + "db2a0ae3cee4a660fa6edccdf276a319875d7c43", + [] + ], "multi-line-column-flex-fragmentation-041-ref.html": [ "4924a792b73fe47bd463e8d5fd94c073fd586726", [] @@ -283604,6 +283437,14 @@ "20710e8c292e4783b12404174b7de7c40edd6d97", [] ], + "multi-line-row-flex-fragmentation-004.html.ini": [ + "7bfbed9518a3ccbb530a006f86582d5ce5199043", + [] + ], + "multi-line-row-flex-fragmentation-026.html.ini": [ + "71c92dbfc9433f4180a88a59adf07fb9be0ce785", + [] + ], "multi-line-row-flex-fragmentation-047-ref.html": [ "d669603858d938bd4b70d394188f3f3cca6e82ea", [] @@ -283636,6 +283477,18 @@ "bc659553eddd5c8ca529105e3dc8c6b96ac07d8a", [] ], + "single-line-column-flex-fragmentation-017.html.ini": [ + "718bf7e743ff6c1a34082681d14fe59f3010bcf8", + [] + ], + "single-line-column-flex-fragmentation-018.html.ini": [ + "27b0cdc2b9eb77f0cd679e8439a8c752b08ab9d3", + [] + ], + "single-line-column-flex-fragmentation-038.html.ini": [ + "6fe44b44aafc9e806b4c79ab64836b439d117537", + [] + ], "single-line-column-flex-fragmentation-040-ref.html": [ "3d20cb44e49b065fdb90d400fba69aca442f0fc2", [] @@ -283644,19 +283497,43 @@ "3b1824f28eb011032a1fff0835c0386ad42db506", [] ], + "single-line-column-flex-fragmentation-047.html.ini": [ + "3049b5803b60cba615acd9576e1e527eeb0ff67d", + [] + ], "single-line-column-flex-fragmentation-060-print-ref.html": [ "56c38817e420507c08dfab56727cfe870ac93172", [] ], + "single-line-row-flex-fragmentation-009.html.ini": [ + "a7e1ab491e88aa9c7dda7d467d181b2d2294bfe4", + [] + ], "single-line-row-flex-fragmentation-027-ref.html": [ "e1079de13fb771854107b4022054945a0b460e18", [] ], + "single-line-row-flex-fragmentation-028.html.ini": [ + "55d846f2defa93374430196c34ef0975059cff10", + [] + ], + "single-line-row-flex-fragmentation-032.html.ini": [ + "e814efebe7f6878cf52358252808ea2e14d9dbd3", + [] + ], + "single-line-row-flex-fragmentation-036.html.ini": [ + "cf434b29ed8eb5d97da4ca3d9e17551b093094c5", + [] + ], "single-line-row-flex-fragmentation-042-print-ref.html": [ "5f65fbaf687e6b5de87da8a223298778e03eece7", [] ] }, + "float-003.html.ini": [ + "4f9edd17c78043020373c81b75363d30f7994344", + [] + ], "float-009-ref.html": [ "9e117c49c2bab5b8b2fbad4fcfc2eef13b5b8ab6", [] @@ -283686,6 +283563,22 @@ [] ], "grid": { + "grid-container-fragmentation-011.html.ini": [ + "6c3a397e3e0402da3d9fdcc7373a772370645d43", + [] + ], + "grid-item-fragmentation-001.html.ini": [ + "40fd7176c9e36638cfb8a3f94b5bd7a1810eebe2", + [] + ], + "grid-item-fragmentation-004.html.ini": [ + "1149c3fe86498b650c9511366ef474cb0732cc0d", + [] + ], + "grid-item-fragmentation-007.html.ini": [ + "b0abc614a09176f564e4d8910435eb7628acd6e4", + [] + ], "grid-item-fragmentation-039.html.ini": [ "5f8c1d324e8cb3f3eb9f29f86659a3664f11304b", [] @@ -283711,10 +283604,18 @@ "7b6a3c50ca82b586450c8912e34141a9bca551e7", [] ], + "out-of-flow-in-multicolumn-002.html.ini": [ + "9539a43b41e2d540607c7e773ea5480399cee531", + [] + ], "out-of-flow-in-multicolumn-004-ref.html": [ "bc6669e466ba0e4e29bf56b889f59e513f9270c4", [] ], + "out-of-flow-in-multicolumn-011.html.ini": [ + "efc084d18e7b0de1b429db55a99aaddcbd02aabf", + [] + ], "out-of-flow-in-multicolumn-014-ref.html": [ "6388a1864443571ea24e6174459c5205440ab030", [] @@ -283723,6 +283624,22 @@ "8321333458316b7b1fe9df40a29abb81e585a1f0", [] ], + "out-of-flow-in-multicolumn-032.html.ini": [ + "36baecd36ab0062db45de545c6d8c7e35f0b3d9e", + [] + ], + "out-of-flow-in-multicolumn-056.html.ini": [ + "1a69ba65204b77154c7805d9025145e9302b0d09", + [] + ], + "out-of-flow-in-multicolumn-070.html.ini": [ + "fccd75cf64ce2ba67cd6e25fa21d76c8bb2ee0aa", + [] + ], + "out-of-flow-in-multicolumn-089.html.ini": [ + "6a7ce7a9bb007e45d05c69869ec5f90a531a6c8e", + [] + ], "out-of-flow-in-multicolumn-093-ref.html": [ "a2fdde0cd91d8f8091816807b01b70c524d587a9", [] @@ -283735,10 +283652,18 @@ "65a9339374179e8c03f2c7987789fefb9ed5fd42", [] ], + "overflow-clip-005.html.ini": [ + "965b6a9dce42a571a09d73094f4ef325e25c222f", + [] + ], "overflowed-abs-pos-with-percentage-height-print-ref.html": [ "ad74e1f53d4f27fde674dfb964366f8574cac9c1", [] ], + "overflowed-block-with-room-after-004.html.ini": [ + "200df942ecf2e9ad96df4363930df496b2d44069", + [] + ], "overflowing-block-print-ref.html": [ "cf345b59638f28ddf423ed343a269178ab47f1b9", [] @@ -283747,6 +283672,10 @@ "69c5c37b5a3cc4ed47fab1f8105e5f2351e2d07b", [] ], + "parallel-flow-trailing-margin-002.html.ini": [ + "221f52f483a7a4465291e3ff8ae2cc1069ab29c1", + [] + ], "parsing": { "box-decoration-break-computed-expected.txt": [ "2bf7d5cfd390f7f989cffa3197643b87699fdefe", @@ -283881,6 +283810,10 @@ "38dfe20d91a02d8878677b8edead5c48ad7178b9", [] ], + "multiple-row-groups.tentative.html.ini": [ + "21c0f3e3770b345b81f641bb1534d4743b9e6d69", + [] + ], "variable-fragmentainer-size-001-ref.html": [ "bea1ace1c376708c9ab58ba706cdfcf7aa140dbd", [] @@ -283918,6 +283851,10 @@ "ca210636a94ccddfc86a01dc99f2f8db7b81d0f4", [] ], + "table-cell-expansion-007.html.ini": [ + "3f93df617080aee0478f57e69392f9189547713e", + [] + ], "table-col-paint-htb-ltr-ref.html": [ "df7b50c84e6f0399cf7a890f860ffadcdad45e68", [] @@ -283983,6 +283920,18 @@ [] ] }, + "tall-float-pushed-to-next-fragmentainer-001.html.ini": [ + "7a076d09c5aceaa26312bb85474d8f2b4c8a174e", + [] + ], + "trailing-child-margin-000.html.ini": [ + "1e0f484ec15f3432989bc6939d867956f26d3f29", + [] + ], + "transform-002.html.ini": [ + "e0956887d649676db2fd73293456b6204949404d", + [] + ], "transform-006-ref.html": [ "ffb859017da98baed10da8099979a069b34710cb", [] @@ -284915,6 +284864,14 @@ "1f3a056e4569201f3dfa8f63dfe44cee4677f8b9", [] ], + "contain-layout-004.html.ini": [ + "8d01ca5818bcb2db00ada0b83bdf3f39e42481c5", + [] + ], + "contain-layout-012.html.ini": [ + "f4fbc65d0cccca7174370a01785674f3bd5611ba", + [] + ], "contain-layout-formatting-context-margin-001-ref.html": [ "5a6d653862417ff7c1a6817434da2b2025a347ad", [] @@ -284947,6 +284904,14 @@ "0587c90c35e20733c9489982c161214be0444cbf", [] ], + "contain-paint-011.html.ini": [ + "180db13123714fa7a0334d63bae71af3e21dec58", + [] + ], + "contain-paint-026.html.ini": [ + "7b3f18a255c0e0bc68fb86f45977c8f2440e8660", + [] + ], "contain-paint-050-ref.html": [ "ebb631432d1caecc8bc41556d438f9b98436726c", [] @@ -286009,6 +285974,26 @@ "8294ae672d15643b1d8eeb8c9914fa93fe4e879a", [] ], + "quotes-006.html.ini": [ + "baff1c19ff9bdf30d01f376883eb1ffe3f21a1d6", + [] + ], + "quotes-009.html.ini": [ + "04699d2239a9d1f6e60274e267259ed48e25519e", + [] + ], + "quotes-013.html.ini": [ + "a79ab7475a31f5ab293f150257890ee479a3e770", + [] + ], + "quotes-014.html.ini": [ + "975133db0766a76ed974a1103e0e6d63d33a185e", + [] + ], + "quotes-020.html.ini": [ + "e409a47999a9505d09a34b47b03a9a0eccaf9db1", + [] + ], "quotes-030.html.ini": [ "053c60d2d058ac321a7b6e6b4d43a9cfed3e0082", [] @@ -287673,6 +287658,22 @@ "8e3e6167176e4c3be16d4cdb84e4299052f9880f", [] ], + "flex-aspect-ratio-img-column-003.html.ini": [ + "80178352808908f47af137f208c16da3158612e3", + [] + ], + "flex-aspect-ratio-img-column-004.html.ini": [ + "c62249a6aba74424c40bc6fe4a96268493fe012b", + [] + ], + "flex-aspect-ratio-img-column-006.html.ini": [ + "bdb33aa2cb1229d4c5c718f849f7315dec9e515b", + [] + ], + "flex-aspect-ratio-img-column-007.html.ini": [ + "f86dca39bce88ae4a4b4d8193a470ae420daf72f", + [] + ], "flex-basis-011-ref.html": [ "8c9d248efaf1cb03c18c4a4955576ccbc6ecaa15", [] @@ -287717,6 +287718,10 @@ "2b0f294c3441f1cf25a6678b9ce0748258582ea1", [] ], + "flex-item-and-percentage-abspos.html.ini": [ + "eb83c0f8b2fbcd27aec92d8627a267ff1a1d9f76", + [] + ], "flex-item-compressible-002-expected.txt": [ "cd5115045af41b8997e8261e2923b4c8affcfabe", [] @@ -287747,6 +287752,14 @@ "02f0eb35752e805aa2bc0bd339f73ff2b197c99e", [] ], + "flex-shrink-001.html.ini": [ + "87531091d0e637a74c01465ed3d10d63823b1a33", + [] + ], + "flex-shrink-002.html.ini": [ + "0e22e27542d609197eb6971d3de6d63f4c548d70", + [] + ], "flexbox-align-items-center-nested-001-ref.html": [ "2473417b82b333e93baf1889f0fb229211591e2f", [] @@ -289187,6 +289200,10 @@ "8c390de08d10d1e9591c5885d355514b9412aab1", [] ], + "image-items-flake-001.html.ini": [ + "d39a1e859e4a0497a1b2c27c552afd4a233c43db", + [] + ], "interactive": { "__dir__.ini": [ "258de3c50b9107cd96120f5632c548589a40e266", @@ -289226,6 +289243,10 @@ "ebcc481649f17ccf9cb44f7fc894ea70b14247cd", [] ], + "col-wrap-012.html.ini": [ + "aa0fdd7388a77cb710df223afd507d58b0ac4faa", + [] + ], "col-wrap-013.html.ini": [ "e77bcb3fa52d92b3c984ce83e002dfd874079311", [] @@ -289307,6 +289328,10 @@ "7c1e5858130b6150d36c52df0eaa525836b9075a", [] ], + "percentage-heights-007.html.ini": [ + "79181470f1cb40fdb0b50d3a55a71655f6dcceb8", + [] + ], "percentage-heights-015-ref.html": [ "874bf6da6310e7ae4c5b4f8421350ca61dfb1c5e", [] @@ -289865,10 +289890,18 @@ [] ] }, + "table-as-item-min-content-height-1.tentative.html.ini": [ + "17d5171d154c57ae414a95f0a896451cfeafe5cb", + [] + ], "table-as-item-percent-width-cell-001-ref.html": [ "2f40b6c49fdcee593a160c82c381d4c14f377a38", [] ], + "table-as-item-stretch-cross-size-2.html.ini": [ + "0eb309da4f74f3f59005c2d5bcd73146097f88e0", + [] + ], "table-item-flex-percentage-min-width-ref.html": [ "ee2cc9af5af24c42a73f8ff43a042c8f0717b47a", [] @@ -289994,7 +290027,7 @@ [] ], "cjk-kerning.html.ini": [ - "5ecb735bbc7eef8fa0410eda6e1076c9111d9862", + "90d85356daf9516c9c2ddc69f4ba0a3a6686b485", [] ], "downloadable-font-in-iframe-print-ref.html": [ @@ -290223,6 +290256,10 @@ "5ed4361b7ad798c68064aedb293d7eae182b45c5", [] ], + "font-family-name-025.html.ini": [ + "1ad5ad2a3d76aeaaf9121669c18d4fd5f47aed44", + [] + ], "font-family-name-mixcase-ref.xht": [ "6d722390abc99d56a5d4e054fd6c1f3c03a6260b", [] @@ -290803,6 +290840,10 @@ "d899e0ff53c4661a2ac26bbe802eadd168ed5271", [] ], + "font-variant-emoji-2.html.ini": [ + "68aae843f87b964570cad1a3b6b607969314f5cb", + [] + ], "font-variant-ligatures-01-ref.html": [ "68d5561e7f96767bcd5de7c5577cc18401568882", [] @@ -290944,7 +290985,7 @@ [] ], "generic-family-keywords-002.html.ini": [ - "eff564952cf02d3ed0aae91f17615c5bcccc1b81", + "c1cee44086dd3606140134645480c7d909f35bce", [] ], "generic-family-keywords-003-expected.txt": [ @@ -291369,6 +291410,10 @@ "3c26321fffcca83eee35067410498bc4103eb908", [] ], + "standard-font-family.html.ini": [ + "3bbe8a7510bfbf0cc50bd1208a48050edb8638d2", + [] + ], "support": { "100x100-lime.png": [ "1b947700808585e8c224cee096247eb5d30a1ded", @@ -297465,6 +297510,10 @@ "76a216ca7439a37190a38bc70cd5abc91432df77", [] ], + "system-ui-ar.html.ini": [ + "d334315178a38b23ba9b8644b16296dbad4fc534", + [] + ], "system-ui-ja-notref.html": [ "c33e769ce330b9d3fc5e314e0b065a81bf54200c", [] @@ -297493,6 +297542,10 @@ "81c8889f1118d38012bf1d1f4deee846b0e59e37", [] ], + "system-ui-ur.html.ini": [ + "d9e58e116a2dbdda559a361bbadf2371f59aa31c", + [] + ], "system-ui-zh-notref.html": [ "ca072086c415b058264e495c46cb4a692d8a0684", [] @@ -298284,6 +298337,10 @@ "8d7fc870fae1ad7f969b7a9de4035da783c1dae4", [] ], + "grid-item-auto-margins-001.html.ini": [ + "95c5dce5c0f587ad8cf25f5ac84340691cc19384", + [] + ], "grid-item-content-baseline-001-ref.html": [ "e55fe0b9f96c3f3ae4a4f6b66bfd2283fb88659b", [] @@ -298447,6 +298504,10 @@ "7876656c2080bb36b0286783ac75f5b8ef2f831f", [] ], + "grid-self-baseline-changes-grid-area-size-004.html.ini": [ + "8f2b0b7602e5542a41bc0697757edd7ce11b9d68", + [] + ], "grid-self-baseline-horiz-001-ref.html": [ "1b8130d7b89ae35111009318535320e05bbda766", [] @@ -298654,6 +298715,18 @@ "3e08fdfbde27d0aa36dcabd2b7ea240116538b69", [] ], + "grid-inline-items-002.html.ini": [ + "dc21d534b81723ac3465a5aa8fd2497a63cb0fb5", + [] + ], + "grid-inline-items-003.html.ini": [ + "a2ec6237a49955d0f87b866082e0d8da91aa7e32", + [] + ], + "grid-inline-z-axis-ordering-003.html.ini": [ + "837fbd2a8c1053bbdf7ddd1f42e8687e53615e8e", + [] + ], "grid-intrinsic-maximums-ref.html": [ "b90f15b597d4e495c0a5dbc4f8dffe8511f10111", [] @@ -298686,10 +298759,18 @@ "643b80e1ca88d4bf332c02637b1fe0478e951f1e", [] ], + "grid-items-percentage-margins-008.html.ini": [ + "6e66a8450bf2069f5aa96fa5cbdc8c9b5d5334cc", + [] + ], "grid-items-sizing-alignment-001-ref.html": [ "c3eccf48eb29c531f0397502a0d5faf0a8223f76", [] ], + "grid-order-property-painting-003.html.ini": [ + "9ccd8bda9aee55801d9e0e58a3a6294fc90fbe29", + [] + ], "percentage-size-replaced-subitems-001-ref.html": [ "2c21c8c13dc6d24f50cf56de40c7cef2ddd7d17a", [] @@ -298762,6 +298843,10 @@ "a51134751616fdb1eede6a1774c3edd6571ddc28", [] ], + "grid-floats-no-intrude-001.html.ini": [ + "bf75afbdee040d71f7af94cb1ca898272cee71d2", + [] + ], "grid-floats-no-intrude-002-ref.html": [ "070980ed27cebf226e21583c64c39e6ac195e8dc", [] @@ -301470,6 +301555,10 @@ "f451a265be957498defb36be9f2b15d7347b1b66", [] ], + "initial-letter-float-002.html.ini": [ + "62e3a1e5b7ff64d6948f2c1b8411c247f91e8436", + [] + ], "initial-letter-float-003-ref.html": [ "54c30de947b11ba90ebdfae406081b7ba78b658a", [] @@ -301482,6 +301571,10 @@ "0e9a6ab273c4fef8f7692af577a6ea84878aaf9c", [] ], + "initial-letter-float-004.html.ini": [ + "fcbbb5148b5c7d53735825246a8c972c3516219b", + [] + ], "initial-letter-float-005-ref.html": [ "d1e7be2aa2f80651aa1d559274302230b0cf1e56", [] @@ -301538,6 +301631,10 @@ "5fa68450681e0dfea7bb708c4358e75694defb25", [] ], + "initial-letter-raise-initial-vrl.html.ini": [ + "6355a2917d532e443c1311c490a9cbb9d877de19", + [] + ], "initial-letter-raise-initial.html.ini": [ "5b4ca339f21da793e41cce698d45dca3825b3036", [] @@ -301546,6 +301643,10 @@ "7285ed8a82289fefb98bfb90d5442bdc554bb09c", [] ], + "initial-letter-raised-sunken-caps-raise.html.ini": [ + "8e1806ae86f22114ae5f1b1e289fece05a5b2d80", + [] + ], "initial-letter-raised-sunken-caps-sunken-ref.html": [ "a68a760ac62a2c0610bfadac74f1d9f56e557f19", [] @@ -301598,6 +301699,10 @@ "6907be5d8a9ae777ce0250937afaa16b5878239c", [] ], + "initial-letter-sunk-initial.html.ini": [ + "47f90b163e9808f79c52d0af88298d3466e36330", + [] + ], "initial-letter-with-first-line-ref.html": [ "5b54045363d63bbbad4af05897877e3bbd4b3ce2", [] @@ -301614,6 +301719,10 @@ "0b9a074af70d652f61eacfd206cd8a1dca9cb5ff", [] ], + "initial-letter-with-tab-rtl.html.ini": [ + "89079a8394168f9d5c146f55f09fb689b7d00952", + [] + ], "initial-letter-with-tab.html.ini": [ "a630d74a740130651dfea6c646396801119f6d66", [] @@ -304825,6 +304934,10 @@ "77149c2dc219e37dd95d963e5c73e1889ec721a6", [] ], + "nested-at-outer-boundary-as-legend.html.ini": [ + "fd49a9fa26bc02bc696d5198f7cfc791f3a18fc9", + [] + ], "nested-with-too-tall-line-ref.html": [ "16be12ca9187db02482a15d47e0ae9015a84959c", [] @@ -306313,6 +306426,14 @@ [] ] }, + "position-absolute-dynamic-auto-overflow.html.ini": [ + "436ec4eb5f38fed87cb73779b707210f63f310cb", + [] + ], + "position-absolute-fit-content.html.ini": [ + "c8b541f315082416f3395ecd1b3ca59012b1f300", + [] + ], "position-absolute-iframe-print-ref.html": [ "d89bb93cf9fb14caefee7a4bf27a15d4cc4f7615", [] @@ -306365,6 +306486,10 @@ "b9535e04e89d2b30089da6a2a79b152401f0af0c", [] ], + "position-relative-004.html.ini": [ + "e0f31c72e1483d64191f46281c6a3b7246d6a342", + [] + ], "position-relative-table-left-ref.html": [ "7c1193b80007d8e7f89b35400a6d2ea2266cb3ac", [] @@ -307029,6 +307154,22 @@ "77e2d2817f66adb707e506c46a1eed948a2e92e3", [] ], + "active-selection-051.html.ini": [ + "5c2dbfe97ef39a25133601db21d8cfea37e79e20", + [] + ], + "active-selection-052.html.ini": [ + "0f901ff4c82f1393b7988b6f6689f426f940e408", + [] + ], + "active-selection-053.html.ini": [ + "c6473c5823c67b441332b3ca27239d485787b858", + [] + ], + "active-selection-054.html.ini": [ + "0daf57582eb46e5ec84863c6c4b696d51f5c9423", + [] + ], "active-selection-057.html.ini": [ "6fb376c802757af8d0cfa3b533f8db52ac1fd7f6", [] @@ -309992,6 +310133,10 @@ [] ], "aspect-ratio": { + "block-aspect-ratio-030.html.ini": [ + "7bdf8cc9b49e10e983d7778bffd7f2ae1993896b", + [] + ], "block-aspect-ratio-038.html.ini": [ "edbc12114ae227d2193f2f7acd4390d49209bccc", [] @@ -310020,6 +310165,10 @@ "e73a37e16ec97e610eb3aeab601a9d6d7e177e0d", [] ], + "flex-aspect-ratio-023.html.ini": [ + "0451d606b3e67c91ae1422ec2795436ace05c372", + [] + ], "flex-aspect-ratio-038.html.ini": [ "da784c2607904a8c4b282d904ac2e950a60d4cd1", [] @@ -310028,6 +310177,14 @@ "734522a16417a8efaaa0df5c92ff3d8ca9102f9d", [] ], + "grid-aspect-ratio-006.html.ini": [ + "6ddf93b6fbe88b7f0e3a4514bea04b2d29a324c8", + [] + ], + "intrinsic-size-003.html.ini": [ + "0dd8c18532934ce395a12a6a30782b5da3079dfe", + [] + ], "reference": { "ref-filled-green-100x20-rect.html": [ "5d8ebce4ec5a42533cb82829b778e1f65029d7e4", @@ -310042,6 +310199,22 @@ [] ] }, + "replaced-element-007.html.ini": [ + "397bca2e36deb2277a7f90392ee41b9f0755f4c5", + [] + ], + "replaced-element-016.html.ini": [ + "669a52a7628f8c58cdbc01cddf397ee5f6193d69", + [] + ], + "replaced-element-023.html.ini": [ + "388c41c2b2cfe36032accf482b217706e212b654", + [] + ], + "replaced-element-029.html.ini": [ + "a175326c80bfcf723a3416ecadaa1757a8c2d14e", + [] + ], "replaced-element-035-ref.html": [ "cd8afe16934c5e99607e5821c9f7eaf06a0e4e7b", [] @@ -310075,7 +310248,15 @@ "29903c0a817352ea3d3ad6abf188e5aec7470173", [] ] - } + }, + "zero-or-infinity-004.html.ini": [ + "cc9369fe90ce8859bac601b3b99bf20f9ca7deec", + [] + ], + "zero-or-infinity-007.html.ini": [ + "4cd0823416dae22835c860237a5dfbb6d526f8f9", + [] + ] }, "auto-scrollbar-inside-stf-abspos-ref.html": [ "076893b2728772662f06b9474bcc1918c860b480", @@ -311125,6 +311306,10 @@ "c9638f111dd298833917d32b66f43e2033c82674", [] ], + "box-shadow-001.html.ini": [ + "fc97f5594958c85c1a277285c51e419c987b28c6", + [] + ], "calc-percent-plus-0px-fixed-ref.html": [ "ec862ff1e08e96aff25237f56682dc0df830e39a", [] @@ -311165,6 +311350,12 @@ "9294283d5256978d94f1d4731d8d1ea39e6cb6b1", [] ], + "crashtests": { + "textarea-intrinsic-size-crash.html.ini": [ + "5f25315fea13fea4415a8a518f11cddc059c0973", + [] + ] + }, "fixed-layout-2-expected.txt": [ "e74c8c8c208fb330f9675ce790b4dabd7d97d1df", [] @@ -311558,6 +311749,10 @@ "dc5f1a17d4faf64471c9fe8cd01d062cec9e9bbf", [] ], + "hyphenate-character-005.html.ini": [ + "ac67bac5df221ea60667a40d849e71468376a9f6", + [] + ], "hyphenate-limit-chars-001.html.ini": [ "4d27a7cd1ee1c0c952b98272a2248626d37778ad", [] @@ -314479,149 +314674,13 @@ }, "text-transform": { "math": { - "text-transform-math-auto-001.tentative-ref.html": [ - "d41d618769e85a581ceada90e020d6fc979ad7d5", + "text-transform-math-auto-001-ref.html": [ + "d6418a346c81da1c1d21289549cb22625ea1081c", [] ], - "text-transform-math-auto-002.tentative-ref.html": [ + "text-transform-math-auto-002-ref.html": [ "1c1d6e2770b116a083b1b6a9f892737b9fe42804", [] - ], - "text-transform-math-bold-001.tentative-ref.html": [ - "24b83003346051d35a7b769dc1bd95da14333269", - [] - ], - "text-transform-math-bold-001.tentative.html.ini": [ - "9b69ed9fc1a557cb823e456841da687ddac55303", - [] - ], - "text-transform-math-bold-fraktur-001.tentative-ref.html": [ - "36339bdd46de28d5d788391990e788bb75fd1d89", - [] - ], - "text-transform-math-bold-fraktur-001.tentative.html.ini": [ - "ae16ce3e154a71ea96ce21191cb9701cca2fde9b", - [] - ], - "text-transform-math-bold-italic-001.tentative-ref.html": [ - "e4e70cf80361962930ab717021cf8b302a8a0f5e", - [] - ], - "text-transform-math-bold-italic-001.tentative.html.ini": [ - "7424f5032bfe6565cff984936f6c4ac342432e7c", - [] - ], - "text-transform-math-bold-sans-serif-001.tentative-ref.html": [ - "e83fa69f01ae6b2e715f87b5ce6208970527fc28", - [] - ], - "text-transform-math-bold-sans-serif-001.tentative.html.ini": [ - "e1bba62b879d0ed2196ae297592127eb3c6a602e", - [] - ], - "text-transform-math-bold-script-001.tentative-ref.html": [ - "1b5a74c9e82f6d995c8b558f70d8ae1840bc390c", - [] - ], - "text-transform-math-bold-script-001.tentative.html.ini": [ - "56a28ee4cee7bc0b6c88acef645be89bc85d50fb", - [] - ], - "text-transform-math-double-struck-001.tentative-ref.html": [ - "09f137a6242c31070665859827199cd2ed6f1f64", - [] - ], - "text-transform-math-double-struck-001.tentative.html.ini": [ - "f73391dd5da2b7b4e13ae031458d0b739fc2fff4", - [] - ], - "text-transform-math-fraktur-001.tentative-ref.html": [ - "09ea7049898e228d4c22dbd25d0cea05613dd12c", - [] - ], - "text-transform-math-fraktur-001.tentative.html.ini": [ - "f6b353ee28ded1d9730ab0b7c0b620ab4cb87f9d", - [] - ], - "text-transform-math-initial-001.tentative-ref.html": [ - "0c15bca02e99cf8d705b2720fec0cde4b85b87f3", - [] - ], - "text-transform-math-initial-001.tentative.html.ini": [ - "7e663c0dad3ba1fb4f192818d73a8711edb846fe", - [] - ], - "text-transform-math-italic-001.tentative-ref.html": [ - "e1a90faf3830652762652b763e4275a1b6033611", - [] - ], - "text-transform-math-italic-001.tentative.html.ini": [ - "d8389c270e01255bb0e41e2b44d0163dafe102b5", - [] - ], - "text-transform-math-looped-001.tentative-ref.html": [ - "89b52e2e81778d3a2ce350dc954a72cdb95b66da", - [] - ], - "text-transform-math-looped-001.tentative.html.ini": [ - "5a8165d46159724c6957402eaaa3884c0fc67f42", - [] - ], - "text-transform-math-monospace-001.tentative-ref.html": [ - "e254e1c0d21df41a573694c5688ae07b40c76299", - [] - ], - "text-transform-math-monospace-001.tentative.html.ini": [ - "18f0027d1cbfde8ce81d3377a71a1dc9b9093aab", - [] - ], - "text-transform-math-sans-serif-001.tentative-ref.html": [ - "8b75a6f8e1e0a9a6fb969e341e2c770015b7d1ce", - [] - ], - "text-transform-math-sans-serif-001.tentative.html.ini": [ - "b1f8403982bf8b5d9f7d82d758779a97ad991d84", - [] - ], - "text-transform-math-sans-serif-bold-italic-001.tentative-ref.html": [ - "7f71dc40e35aa9fa6add1492c103939162ac1300", - [] - ], - "text-transform-math-sans-serif-bold-italic-001.tentative.html.ini": [ - "18147ddbc0b717bedec6f2d367eafae74af03a2b", - [] - ], - "text-transform-math-sans-serif-italic-001.tentative-ref.html": [ - "f352596b6b953ee46f9886f300e56654e7bfddad", - [] - ], - "text-transform-math-sans-serif-italic-001.tentative.html.ini": [ - "8abd0c6fe12259e7b4dc27501ab69dd0c69abcaa", - [] - ], - "text-transform-math-script-001.tentative-ref.html": [ - "6cbe296dfb72e50fc81d284aa88814a8ed03703f", - [] - ], - "text-transform-math-script-001.tentative.html.ini": [ - "ca266818ba18d3d38c4201ccc1ce23d2917aca2b", - [] - ], - "text-transform-math-stretched-001.tentative-ref.html": [ - "e4fa35e810cd10edb2b45e3158c9d0cda82edde1", - [] - ], - "text-transform-math-stretched-001.tentative.html.ini": [ - "1fa080be581cfcec1741614e8c8ef27adc132193", - [] - ], - "text-transform-math-tailed-001.tentative-ref.html": [ - "7a1c9b0056899926c4f1dc91508fc10b6f833fdf", - [] - ], - "text-transform-math-tailed-001.tentative.html.ini": [ - "76cfaa95a265043b70055797e468bfa56fad9607", - [] ] }, "reference": { @@ -315046,6 +315105,18 @@ "f109b41c0f0fa01bcb7dfb27217a95f58f22e308", [] ], + "text-transform-shaping-001.html.ini": [ + "cca2292ebdef77307b3211b8a3ac410bfc9b53cf", + [] + ], + "text-transform-shaping-002.html.ini": [ + "2ba238436ec002e61441511e319299443ae6c8e4", + [] + ], + "text-transform-shaping-003.html.ini": [ + "7e956c7dfde8a80d9bde0aad6d28ebdc82b3a700", + [] + ], "text-transform-tailoring-001.html.ini": [ "529e3f337b35f20f224ec57c4f077b25866998f9", [] @@ -315064,10 +315135,126 @@ ] }, "white-space": { + "break-spaces-newline-016.html.ini": [ + "c329c7f08b93da4e3ec9264fe0d3cd22147418fb", + [] + ], + "control-chars-001.html.ini": [ + "6eea3f816557c2f0bc9a9fec6df04382e6781163", + [] + ], + "control-chars-002.html.ini": [ + "d10c36f2964b7f3ef58545aad1a1fafe6e1eb226", + [] + ], + "control-chars-003.html.ini": [ + "d6f8a027759bdbd81f60e49696e26e9f9fff06e7", + [] + ], + "control-chars-004.html.ini": [ + "ff8d343c25bdbb3fb0843862a3dd047faeca998e", + [] + ], + "control-chars-005.html.ini": [ + "843ad12c7f7b1bba33de977c08552f19fc6b9e0e", + [] + ], + "control-chars-006.html.ini": [ + "99865a198f6debafc3387902f6012353780fa696", + [] + ], + "control-chars-007.html.ini": [ + "508d9957b8e08815e21c87d9e58b852f254b3101", + [] + ], + "control-chars-008.html.ini": [ + "1738df4851f161429b4efa0557e1f42e3b6b6b37", + [] + ], + "control-chars-00B.html.ini": [ + "31eba84d3452899c7a80943e587c3eb22dc16c21", + [] + ], + "control-chars-00C.html.ini": [ + "0bc6acbb14d19ec849d725543a656dc380530ac2", + [] + ], "control-chars-00D.html.ini": [ "c1b4dc8af5d2f1f0b60b040c8990f2fdf7adbb52", [] ], + "control-chars-00E.html.ini": [ + "3968f5f9e893f4b3d07e5f100a8b55565d751e00", + [] + ], + "control-chars-00F.html.ini": [ + "0b0d02c263cecf9329a289737ff928e9d92e6178", + [] + ], + "control-chars-010.html.ini": [ + "03e308782b5224c23947fb81bd2b5ddee39b4b45", + [] + ], + "control-chars-011.html.ini": [ + "5eaef40e8ca92627b3eb6bd6d5112feda00cae45", + [] + ], + "control-chars-012.html.ini": [ + "bf2ff8b5017e59914eb18d5fcb15b6cd53720bbd", + [] + ], + "control-chars-013.html.ini": [ + "53cd0764b67933de6c25815e1340eb6cd75ea566", + [] + ], + "control-chars-014.html.ini": [ + "9b0bbdf58fe9b70c018d4422e5a65e11f1e2cff6", + [] + ], + "control-chars-015.html.ini": [ + "416b69f4d7af110e7b8a74cf87c7f6fd7290b118", + [] + ], + "control-chars-016.html.ini": [ + "c69422404e4d2dc893e71cdac04b9281cbdf52d0", + [] + ], + "control-chars-017.html.ini": [ + "f520bc38e7da4a80bca290b2c8ec64cbef9ee59e", + [] + ], + "control-chars-018.html.ini": [ + "85e95732e3a908d30d5b58e2ce38951386b7d577", + [] + ], + "control-chars-019.html.ini": [ + "d992fd534bc528461ca9094529ee8ee37a2746e6", + [] + ], + "control-chars-01A.html.ini": [ + "cfddeae9f22edec7c92c16d4723c0857ad3af077", + [] + ], + "control-chars-01B.html.ini": [ + "d1e0e6b9f15e05e3cab33de650f6b4772bf1a27f", + [] + ], + "control-chars-01C.html.ini": [ + "d8bdc44d8aec8a73930204d77d1861ee5117bf84", + [] + ], + "control-chars-01D.html.ini": [ + "c98607086c02fddedd43e77d47a7f639f96d7de3", + [] + ], + "control-chars-01E.html.ini": [ + "748ef5294d8117baf9d62beaf38e531e8324afcb", + [] + ], + "control-chars-01F.html.ini": [ + "82d2124bda155f93caf8167e70e3823ec49335a2", + [] + ], "control-chars-07F.html.ini": [ "0e19383f65d07351d614da67c63dbb660ab9bfe4", [] @@ -315693,6 +315880,10 @@ "white-space-collapse-002.html.ini": [ "923be960abd4a8cea04150fa26dc913e3a302e08", [] + ], + "white-space-intrinsic-size-019.html.ini": [ + "442e5e3ed264564e99ead9096903a47536c14006", + [] ] }, "word-boundary": { @@ -316078,6 +316269,10 @@ [] ] }, + "word-break-break-all-004.html.ini": [ + "5a015896e6ed0fc17fc15c3430a4be83e47acf30", + [] + ], "word-break-break-all-005.html.ini": [ "0fbcfcbb552e4c4ba6891e4048780b76daa5b204", [] @@ -320546,10 +320741,18 @@ "c74f36c94f4915534169818d014b67649dbaf35f", [] ], + "kind-of-widget-fallback-input-button-border-block-end-style-001.html.ini": [ + "bf6d9691e31ad4e61a209412d127a5fde92cd503", + [] + ], "kind-of-widget-fallback-input-button-border-top-left-radius-001.html.ini": [ "d8d05f85cdcff1cf718a9af855602ffd89e8b878", [] ], + "kind-of-widget-fallback-input-reset-border-left-color-001.html.ini": [ + "5e986e0106069e78502c5c7a58f4f59b7724824d", + [] + ], "kind-of-widget-fallback-input-reset-border-top-color-001.html.ini": [ "14b26723f548de962341d22594eefaf841cec560", [] @@ -320574,6 +320777,10 @@ "7c4c698d1b2ef49f01e00c3643d10ca2832d2d3b", [] ], + "kind-of-widget-fallback-input-submit-border-block-start-width-001.html.ini": [ + "8a96e9f0c7b1a37b0306a7510550602646bf2d4f", + [] + ], "kind-of-widget-fallback-input-submit-border-end-start-radius-001.html.ini": [ "0a103751c35f49aefdaf0284d14ae70ecf9c3907", [] @@ -320606,14 +320813,26 @@ "f166ddbbc4cb488eb4da067e1f30164b11422941", [] ], + "kind-of-widget-fallback-input-text-border-image-slice-001.html.ini": [ + "e98ff631c8fecbec4f7ab90efb35e32b473685da", + [] + ], "kind-of-widget-fallback-input-text-border-inline-end-width-001.html.ini": [ "5c6ec5907d255fee47b26102195d0bf7d3b2136b", [] ], + "kind-of-widget-fallback-input-text-border-inline-start-width-001.html.ini": [ + "c15fb2013c626f2c52316722bae7976f9b3f6d3c", + [] + ], "kind-of-widget-fallback-input-text-border-right-color-001.html.ini": [ "5bc373383d5976f2a3ac4ad63256a3003a52ab54", [] ], + "kind-of-widget-fallback-input-text-border-right-style-001.html.ini": [ + "91ce904702ec982af62c71546112e62faed66877", + [] + ], "kind-of-widget-fallback-meter-background-attachment-001.html.ini": [ "5c85d4c8e2f214d8e5287e8ac98f6b1d3a9a274c", [] @@ -320793,6 +321012,14 @@ "kind-of-widget-fallback-textarea-border-block-end-color-001.html.ini": [ "9cc5c23ae55ff9a62be744e08d13d8e3c884f662", [] + ], + "kind-of-widget-fallback-textarea-border-bottom-color-001.html.ini": [ + "ab60e58a77d9675b81f14d905d3c84971d0901df", + [] + ], + "kind-of-widget-fallback-textarea-border-start-start-radius-001.html.ini": [ + "7507d0dd65818071cdfc2fdbe3a96d7249cc1e24", + [] ] }, "compute-kind-widget-no-fallback-props-001.html.ini": [ @@ -320873,10 +321100,18 @@ "c8d6508ace4e4bd0343f67f2e12e35ea6e098df9", [] ], + "outline-005.html.ini": [ + "d853f6ccdd536ddbee9fed088b519afc01d30a4c", + [] + ], "outline-auto-dynamic-change-ref.html": [ "9128eae260fce19f818a83a7ac3ff11be1a2d36b", [] ], + "outline-color-001.html.ini": [ + "f169c537a8477dc554d4b0d3240db0686c961fac", + [] + ], "outline-offset-table-001-notref.html": [ "aafa2b053cb30d77997743a226901d6dd4472724", [] @@ -322389,6 +322624,22 @@ "80e19ba3296cb463dd1d3613d1183d8f07e219d3", [] ], + "ic-unit-002.html.ini": [ + "e7ac97f98c0fd091d4c05fa12859b35968d81c23", + [] + ], + "ic-unit-003.html.ini": [ + "84a4b33f2b0a45f67054fd23ab88c12cb2f1b4e1", + [] + ], + "ic-unit-009.html.ini": [ + "ec079625a5fcdb3049fa4663cc63b98102c211af", + [] + ], + "ic-unit-010.html.ini": [ + "ed3149ae20c93356fd66e549607900e02878c962", + [] + ], "ic-unit-015.html.ini": [ "7f4ecb1646a1ded87280ef34881e786e47fc2d7f", [] @@ -322445,6 +322696,14 @@ "446809160733b6881ec97157a35451de38e517d6", [] ], + "q-unit-case-insensitivity-001.html.ini": [ + "0a4b494b07f6e5ffbef8144d52c6495be05d2c50", + [] + ], + "q-unit-case-insensitivity-002.html.ini": [ + "591cc3814fd95dd75e8071ab501745222f2de5f3", + [] + ], "reference": { "200-200-green.html": [ "f3da3ddb3b8d90df91aa60d88f0c13d28eccef09", @@ -323995,6 +324254,14 @@ "98ec0d0c708407179339ee48bec3cbae86777699", [] ], + "abs-pos-non-replaced-icb-vlr-011.xht.ini": [ + "5e9dc1104a4789328b613384ca9cd5549ea037d1", + [] + ], + "abs-pos-non-replaced-icb-vlr-021.xht.ini": [ + "1e30480ae348ca3a05eafd867b8ecf7eecd5c716", + [] + ], "abs-pos-non-replaced-icb-vrl-004-ref.xht": [ "8153a72aff210565ae77aaaaa2fc8cfe4dd03029", [] @@ -324003,6 +324270,10 @@ "47837c03a7a044b719646b1bb4e46ba06e8da758", [] ], + "abs-pos-non-replaced-icb-vrl-010.xht.ini": [ + "c14a6f604c5c879cfcfb581a817bd0d53525816a", + [] + ], "abs-pos-non-replaced-vlr-003-ref.xht": [ "2c269fa0965e69a9efcee2d14f8889bb81c87396", [] @@ -324115,6 +324386,26 @@ "2476a7890383298db98f083f436887583910e8b6", [] ], + "bidi-embed-011.html.ini": [ + "24d8182da813af8f5ef6b67b97c588a25775536c", + [] + ], + "bidi-isolate-011.html.ini": [ + "406eb5a391f81a60b2d1a35c44d54fea30ed80e3", + [] + ], + "bidi-normal-011.html.ini": [ + "43b7578ac76f1d49fbc7f122f4a4d7a8a029e819", + [] + ], + "bidi-override-006.html.ini": [ + "4fcb4f057fcd2001d35971ad66a4e13bb5300189", + [] + ], + "bidi-plaintext-001.html.ini": [ + "c62a2915fbdeb0c958bc5c33f82e2e4504325ea6", + [] + ], "block-flow-direction-001-ref.xht": [ "b3f4ef46f28abae1f615017926829f252c1fa3e1", [] @@ -324219,6 +324510,10 @@ "9ba9a041f4ce57438fb0adf85ea156b211513ce2", [] ], + "different-block-flow-dir-002.xht.ini": [ + "de7b6a5976f0d6d3b1f9220ce1ceac3b1d92b38c", + [] + ], "direction-propagation-body-contain-root-ref.html": [ "4371a0d87628093e23d794b33b868042d93b50a0", [] @@ -324545,6 +324840,10 @@ "2cc002053b9699998ef208bbbf7b8ef649cca7aa", [] ], + "mongolian-orientation-002.html.ini": [ + "432215e7e1583a65ffc50cf3d91bf589b81842d1", + [] + ], "ortho-htb-alongside-vrl-floats-002-ref.xht": [ "bd5b1c1391a83809e6118578cd38e62cc5cbb6a5", [] @@ -326812,7 +327111,7 @@ [] ], "font-family-serialization-001.html.ini": [ - "d39aade52a316bcd8f7f35b5363920d719f462d0", + "32f02aacd772145124174d16e4cd3ee405a9e0a7", [] ], "font-variant-shorthand-serialization-expected.txt": [ @@ -327581,6 +327880,10 @@ "36c509ff95d9b667018d070f4c1c7d334437ce37", [] ], + "backdrop-filter-edge-pixels.html.ini": [ + "eae5460c44e75bcbe2aa12f31907534064987bd8", + [] + ], "backdrop-filter-fixed-clip-ref.html": [ "38a8c8b253a9302f230fe5d4b073eac0d9a38df6", [] @@ -327621,6 +327924,10 @@ "aa7224fdea0b3c37137250709f5691f1c6498099", [] ], + "backdrop-filter-plus-will-change-opacity.html.ini": [ + "8a9605589dedb0ecb7188e585a3f6d89d33d5f90", + [] + ], "backdrop-filter-reference-filter.html.ini": [ "597d9dc086ddc868f91715eb8526629a735fc669", [] @@ -327681,10 +327988,18 @@ "575c56d740820954458b20a5a8cb3a7a9ce1dd7a", [] ], + "css-backdrop-filters-animation-combined.html.ini": [ + "ca94199d9b3ab120cda5f8b589a6cb9ed46d4d41", + [] + ], "css-backdrop-filters-animation-contrast-ref.html": [ "b118df6b39e8050f2a07a7154ab79b9fae6c71c3", [] ], + "css-backdrop-filters-animation-contrast.html.ini": [ + "de16b0ac7928158c4ecf5a1f6cbb6a44075f49c8", + [] + ], "css-backdrop-filters-animation-drop-shadow-ref.html": [ "4d1f43792c071fd439314de1f798f4d740419c01", [] @@ -328429,6 +328744,14 @@ "e0829db3d9282a76cc3fd2039bfbf968080f3a6f", [] ], + "mq-gamut-001.html.ini": [ + "2a9a0ab380fcfb89746a87622fa6e39dc06461b3", + [] + ], + "mq-gamut-004.html.ini": [ + "bbf1d6b53cea55c89c336c7ffa089e7705892472", + [] + ], "mq-non-matching-lazy-load.tentative.html.ini": [ "d525f32fb4d2c72b250a88520093f148bf738e45", [] @@ -332758,7 +333081,7 @@ [] ], "bold.html.ini": [ - "7cc2347a144effc07ca36b2e22894693e3692934", + "4661c3faf5e26d64126ec729ee4993930298e80b", [] ], "bold_3001-last-expected.txt": [ @@ -332778,7 +333101,7 @@ [] ], "delete.html.ini": [ - "2e183812714cef4e15eeab11d5a433a515fc6aac", + "dfde04d67ae924cd8d5878546a943f790f075ba1", [] ], "delete_1-1000-expected.txt": [ @@ -333094,7 +333417,7 @@ [] ], "italic.html.ini": [ - "84235f3158078683c34895048c469ffc24a04ee1", + "9ebafea066f76085d7462644cda63c66373db3de", [] ], "italic_2001-last-expected.txt": [ @@ -333102,7 +333425,7 @@ [] ], "justifycenter.html.ini": [ - "2610e9cff5e8a0050fb6439126a649772012ffef", + "d52d516450c516fa5b36f425aab03c728aea07d1", [] ], "justifycenter_1-1000-expected.txt": [ @@ -333118,7 +333441,7 @@ [] ], "justifyfull.html.ini": [ - "f9fc9a7d74797789f856507ae3080dae3b22303c", + "3721a5438267c1b094cd2f3ff89a3f30068ca90a", [] ], "justifyfull_1-1000-expected.txt": [ @@ -333150,7 +333473,7 @@ [] ], "justifyright.html.ini": [ - "0ee52fd1ec6e6bfe7545d36241d05bbe4edbf4dc", + "752fcb63762af1ec7d93b7b63ca5e7416c66bda2", [] ], "justifyright_1-1000-expected.txt": [ @@ -333250,7 +333573,7 @@ [] ], "strikethrough.html.ini": [ - "fa364770a4d86243bec8928b42edff25c7e6e438", + "b086effe8c721e50f3c5bbdb0536f6ce8054a111", [] ], "strikethrough_1-1000-expected.txt": [ @@ -333258,15 +333581,15 @@ [] ], "subscript.html.ini": [ - "c1bd8f1f45d6972e462db55ddd498860e8e82b16", + "6855388939c6380bd2bb9d14038845e24213d137", [] ], "superscript.html.ini": [ - "c7d8ae4441d9bd383ecebc671e34c53d8f856bb4", + "f98bcaa1ffa529c5153c41ca289bf81b7cdaedba", [] ], "underline.html.ini": [ - "cd921e63f1c35e361b1e4338187edb02dfcad6af", + "b0acb2088cf22cc28dfddea472a13bf5b2725a75", [] ], "underline_1-1000-expected.txt": [ @@ -337671,7 +337994,7 @@ [] ], "support.sub.js": [ - "29942a2111f616b22b37935be82573a053fe5fc5", + "210184ec4b654e6529adb70d47d058945e5bc298", [] ], "worker-blob-fetcher.html": [ @@ -337744,11 +338067,11 @@ [] ], "shared-worker-fetch.window-expected.txt": [ - "6582e090205b186708b0fb3261026a7d1b28de16", + "27ca7e55b73e1908f085c56aaf18094723171f89", [] ], "shared-worker-fetch.window.js.ini": [ - "5ce69801a6f73b69fc3cd5a582b96656100c70ee", + "d1f917576c908489c9f3750da001df7ace9c153b", [] ], "shared-worker.https.window-expected.txt": [ @@ -337784,7 +338107,7 @@ [] ], "worker-fetch.window-expected.txt": [ - "fee1eeb981f1839af1367ccb853c9c64e01ee188", + "704fdf845ae321cec9e5d9577c0de494d34484c0", [] ], "worker-fetch.window.js.ini": [ @@ -342943,6 +343266,10 @@ "c6e046747c6092994e7f72c3132299b3dada8978", [] ], + "open-features-non-integer-innerheight.html.ini": [ + "aadc15b7492590b3a6bc7106f2fed3a5000777a7", + [] + ], "open-features-non-integer-left-expected.txt": [ "62b1506da1c9b363345ccfdd989590ac6ec30d5c", [] @@ -342975,6 +343302,10 @@ "f6468a026208668b3407234247731b85bdacec1d", [] ], + "open-features-tokenization-innerheight-innerwidth.html.ini": [ + "0689c5196416b1c98615f0c6bf76f2b368d9d9a9", + [] + ], "open-features-tokenization-screenx-screeny-expected.txt": [ "e61cfc377a907412433bab95a1a50748d8c36d93", [] @@ -343064,6 +343395,10 @@ "ba9df39fbb40986537c7a4688da7dd7ea82e32f2", [] ], + "window-open-noopener.html.ini": [ + "4143b18682caf2d301f3358533c1ad4ee34dc424", + [] + ], "window-open-windowfeatures-values.html.ini": [ "4e65b225227558e664e0e89e9e65295f059a1899", [] @@ -344449,9 +344784,37 @@ [] ], "resources": { - "squares.jpg": [ + "squares_1.jpg": [ + "0f0e8866b4d11f707e94b12be0042e0f4527bfab", + [] + ], + "squares_2.jpg": [ + "526f7a6c8299ef2d214e3c0966a8655b7a056f8a", + [] + ], + "squares_3.jpg": [ + "a21e521c2d6046048e0e808532d06f45d6b8c5c5", + [] + ], + "squares_4.jpg": [ + "c4380b1e671539a869f821afc59e6d6702d44256", + [] + ], + "squares_5.jpg": [ + "0bdd89aa1bbc66d270d5549140cd58ec7bae4ea6", + [] + ], + "squares_6.jpg": [ "f197760a111e07c54419d1993130aa1fee5982e8", [] + ], + "squares_7.jpg": [ + "9b1a346888dfb4d6064bb4d05291f8cece48566c", + [] + ], + "squares_8.jpg": [ + "41d2fbe7f0f4df153d911345b0304471410d093b", + [] ] }, "serialize-worker.js": [ @@ -345679,7 +346042,7 @@ [] ], "utils.js": [ - "37c0226be731738fe93e0c8bd068718adba933fa", + "575028763eb682167f81356941cb187f051f1fdd", [] ] } @@ -345739,11 +346102,11 @@ [] ], "dedicated-worker.https.window-expected.txt": [ - "7ecbf9ce7d5e1358c846788eb555627ca00c4833", + "5fb1dc3a939b01928a2b54bde26f3394102182f7", [] ], "dedicated-worker.https.window.js.ini": [ - "b6774be464eb3230ff34a04073d45b37e6081b19", + "41e7c4c00c288c4fc169f7e14958c25e8178f926", [] ], "resources": { @@ -346262,7 +346625,7 @@ [] ], "iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.ini": [ - "5fc35bf2d5e2d060a4a257e4922ef04dad4d055e", + "681a037119e223fef511c025f400301891d19ccb", [] ], "iframe-popup-same-origin-allow-popups-to-same-origin.https.html.headers": [ @@ -352239,6 +352602,10 @@ "aab9ded40a44aa888745a4a544ff6b6874015624", [] ], + "audio-without-controls.html.ini": [ + "664cc92be7f85a0660a50718af53533f945a43e9", + [] + ], "canvas-fallback-ref.html": [ "9077591f46641b6bb7670c62deb1c77e27beb27f", [] @@ -353082,6 +353449,14 @@ "c7b889f261cf398efbb70c12ef1d94e2602a238e", [] ], + "resource-selection-invoke-load.html.ini": [ + "365b6cf029eaacf7a862724d1eb952c976f255b4", + [] + ], + "resource-selection-invoke-pause-networkState.html.ini": [ + "e2ed6076e67fa61f15e4355e8c9438474e1eae63", + [] + ], "resource-selection-invoke-pause.html.ini": [ "76f3133073a1cd3aed0a837e46342f8869878e18", [] @@ -353090,6 +353465,10 @@ "564df60f70ad3c254503ff0157c4f94d4c6b58a0", [] ], + "resource-selection-invoke-set-src-not-in-document.html.ini": [ + "b5b4f9d832f0d4904827a71dee1d10206557ebb1", + [] + ], "resource-selection-invoke-set-src.html.ini": [ "56dd7e4ff52c98768bf3cdef241c6399e6ee2e38", [] @@ -353233,7 +353612,7 @@ [] ], "autoplay-hidden.optional.html.ini": [ - "f65accc3d62a830b1f5eaf70e88c75045873e229", + "6b415c1d996ef58876e977472de772c628fd72c9", [] ] }, @@ -354828,7 +355207,7 @@ [] ], "select-event.html.ini": [ - "f16f5f555a25814d83e37931afc0da02c2c84f72", + "b076c60f2d9c1482ca06be7e3bf7b060942afe66", [] ] }, @@ -359493,6 +359872,12 @@ ] } }, + "microtask-queuing": { + "queue-microtask-exceptions.any.js.ini": [ + "659aea945ade636961d0c64bc363a61c7f8b2596", + [] + ] + }, "scripting": { "event-loops": { "fully_active_document.window-expected.txt": [ @@ -360382,6 +360767,14 @@ ] }, "inert": { + "inert-inlines-around-selection-range-in-contenteditable-expected.txt": [ + "b9ad0e89e2c13ea8462bb43ede82a3dc447d3e5e", + [] + ], + "inert-inlines-around-selection-range-in-contenteditable.html.ini": [ + "2d0927a29cadcf464f2a66b0aa30bcd038054d13", + [] + ], "inert-pseudo-element-hittest-expected.txt": [ "3d2acbc0527f656902f7f5ee0ce52df34bb19c54", [] @@ -362101,7 +362494,7 @@ [] ], "cross-origin-iframe.sub.html.ini": [ - "ab342f88a8b46d36df9f6a2b8ee910c10c45293e", + "73c2850b1b15b8e16630cf80718dfcb51a526408", [] ], "idlharness.window-expected.txt": [ @@ -363585,11 +363978,11 @@ "relations": { "css-styling": { "attribute-mapping-002-expected.txt": [ - "4332842182639c8ef65a47d1c384a6acc733c405", + "fa1126812e58e3efb11c68bcf1ee6f531cf9656a", [] ], "attribute-mapping-002.html.ini": [ - "b41ad0e22881433b4058da22b6e5e5a9c26d7610", + "143e7e309dc39461f1b4972aff39d174d3e69895", [] ], "blur-filter-ref.html": [ @@ -363731,7 +364124,7 @@ [] ], "mathvariant-auto-ref.html": [ - "f8eaf7a7751b68c7a0108420b4789cd6fba8a6b3", + "105ba412e6e5734e7dbaa48f655fd57419cc108c", [] ], "mathvariant-basic-transforms-with-default-font-ref.html": [ @@ -363751,7 +364144,7 @@ [] ], "mathvariant-bold-italic-ref.html": [ - "c5eaa22e196c7e8858b0faeb6c35b0becade641d", + "9a93a37e35b2314e66d576280f36bc6a385de728", [] ], "mathvariant-bold-italic.html.ini": [ @@ -363759,11 +364152,11 @@ [] ], "mathvariant-bold-ref.html": [ - "3a727872d6e285b1544764c2c0f46ce2d141a001", + "ac24ab5b003301a3b46c21c0eee985ddf137f384", [] ], "mathvariant-bold-sans-serif-ref.html": [ - "ec292b8e91493bde90049a2d2de7af6882d5f5d3", + "78c0cc5ea624f56be0d5f127ad5bc77f3e665985", [] ], "mathvariant-bold-sans-serif.html.ini": [ @@ -363799,7 +364192,7 @@ [] ], "mathvariant-double-struck-ref.html": [ - "686aa492e0f08ef340ae3de7c1856170743cfe72", + "ebdb7a15b0d23c3dacfb4baf6cd2c25808b93cc5", [] ], "mathvariant-double-struck.html.ini": [ @@ -363819,7 +364212,7 @@ [] ], "mathvariant-initial-ref.html": [ - "597277aaec3c987280844e17fd4c497b8fce2436", + "5d5b72a1c5c3622413d8b4ee02ed8da7fde3d6f2", [] ], "mathvariant-initial.html.ini": [ @@ -363827,7 +364220,7 @@ [] ], "mathvariant-italic-ref.html": [ - "f503794efb1058fc5bdf904335e701931015e400", + "e2078c2948aa4f60c9c90492dd12bf413616690a", [] ], "mathvariant-italic.html.ini": [ @@ -363835,7 +364228,7 @@ [] ], "mathvariant-looped-ref.html": [ - "12ccb490a1f33d5477eeefa35d99472b43c9a328", + "f00e5d87bb5a254581d84a74896b7c5ae027aedb", [] ], "mathvariant-looped.html.ini": [ @@ -363843,7 +364236,7 @@ [] ], "mathvariant-monospace-ref.html": [ - "bfa672afe535b2c3f004987b9badd2c79bc01258", + "1d4a0c0a52091313407dab41310196333c4b78e4", [] ], "mathvariant-monospace.html.ini": [ @@ -363851,7 +364244,7 @@ [] ], "mathvariant-sans-serif-bold-italic-ref.html": [ - "2b992affe5d780abe7fe909554f06786f399d515", + "f918db9b48ba579bc6342166737de0cdc1766c50", [] ], "mathvariant-sans-serif-bold-italic.html.ini": [ @@ -363867,7 +364260,7 @@ [] ], "mathvariant-sans-serif-ref.html": [ - "1087565b42d79985ee55b0a9334c6ec71a081812", + "ced5272ecb5447aeb7b5089eafd711db7e5e0926", [] ], "mathvariant-sans-serif.html.ini": [ @@ -363883,7 +364276,7 @@ [] ], "mathvariant-stretched-ref.html": [ - "8ad8f7b9bb6df8cdb8f9cb14308cc5df76cd5614", + "454f2004ac1f626930dffc021e7de62baa90bf7d", [] ], "mathvariant-stretched.html.ini": [ @@ -363891,7 +364284,7 @@ [] ], "mathvariant-tailed-ref.html": [ - "5273a28e6bf54411603d9d437aecd5e1ffcfd93d", + "5e1461cd33efb474661ae6bf5d6e7cb66fa262b1", [] ], "mathvariant-tailed.html.ini": [ @@ -364083,6 +364476,10 @@ "use-typo-metrics-1-ref.html": [ "3f7f7640458639ab0b548489e04b63f98cdad40b", [] + ], + "use-typo-metrics-1.html.ini": [ + "e3061c2a4c24da2ee64c2f27d5b3c90ffdea368f", + [] ] } }, @@ -364150,7 +364547,7 @@ [] ], "mathvariant-transforms.py": [ - "49c20876a33dfeb22f8307b5c80d951099ce1edb", + "f2e9f182f0ac057d7422e81926653e2d289619da", [] ], "operator-dictionary.py": [ @@ -364203,7 +364600,7 @@ [] ], "mathfont.py": [ - "79772a24cb5e8b4269005ef5337495062ccdb8f8", + "ff11cc56f766e0fe586a4afe6c5b88542c4b50e0", [] ], "misc.py": [ @@ -366540,6 +366937,12 @@ [] ] }, + "scroll-behavior": { + "scroll-after-preventDefault.html.ini": [ + "95d1a1f3885adf2aa18dc39fed96151b0ddac9ce", + [] + ] + }, "state": { "cross-document-getState-undefined.html.ini": [ "e3155f6614c90648ed1d03e9a78247a5efa159a6", @@ -371319,7 +371722,7 @@ [] ], "content-type-parsing.html.ini": [ - "8788f3d6c8f2bea8772b49b60c9f07f0e262e3df", + "0e0bff05278009181cb49ce86b505e119b6f7a84", [] ], "frameset-timing.html": [ @@ -372133,7 +372536,13 @@ "feature-policy.https-expected.txt": [ "54ed00de803e12c4bb9429803e7b62daf5fc4a2b", [] - ] + ], + "resources": { + "delegate-request-subframe.sub.html": [ + "2b3295bc20cde83a14683f258fdcb810c0b39a3b", + [] + ] + } }, "screen-details": { "META.yml": [ @@ -379526,6 +379935,10 @@ "21ec28a244e0c2f0197380a3c28b4debf688c1ef", [] ], + "pathlength-002.svg.ini": [ + "99f7a4c75948f0e36dea57976e83f4758e16de00", + [] + ], "pathlength-003-ref.svg": [ "8d6f43f9d87438d078babf47430c774b0286f6b6", [] @@ -382413,7 +382826,7 @@ "interfaces": { "Animatable": { "animate-expected.txt": [ - "21c307bc2492c6a4649eb0bbedf7615684459158", + "85ab7a24e5f0469fbe90f95d233350c8bc12bf1f", [] ], "animate-no-browsing-context-expected.txt": [ @@ -383755,7 +384168,7 @@ [] ], "full-cycle-test.https.any.js.ini": [ - "7598d732c7221068a977c10ed2d721be2037d97a", + "2f53f6b3b96edb7f2b9897431eb279ff82e4bd2b", [] ], "h264.annexb": [ @@ -383791,7 +384204,7 @@ [] ], "reconfiguring-encoder.https.any.js.ini": [ - "04c7129c4fbc23c6cf91b7ed1a0837cf96e5d5a5", + "c09e6422627446e12b6e2f1b490df2e757ed7051", [] ], "sfx-aac.mp4": [ @@ -383819,7 +384232,7 @@ [] ], "temporal-svc-encoding.https.any.js.ini": [ - "db6dce688bf7cd5fdc56864334e51c5c515584b1", + "d217851c95cc627f17fd89a788b55463051d9025", [] ], "utils.js": [ @@ -384829,6 +385242,10 @@ "225bd7a41e38280bdb0891ecbf8cd4c39a4c3029", [] ], + "020.html.ini": [ + "0a16a392a2613129aa07950c9344517abbfbca22", + [] + ], "025-1.js": [ "bd1d778d9b32651b05f1b7364459ed4096646528", [] @@ -385400,6 +385817,14 @@ "ed647bbe78fed07eb31fb89274edee8be96ae8e8", [] ], + "RTCPeerConnection-relay-canvas.https-expected.txt": [ + "0068e34ed04e62ceb80a763704688cd491b918f0", + [] + ], + "RTCPeerConnection-relay-canvas.https.html.ini": [ + "7802b045d23d2a78c51164dd5a6879d47b0a29ac", + [] + ], "RTCPeerConnection-remote-track-mute.https.html.ini": [ "ff81054455a19db13fae66a53a7bbfd73171b3e3", [] @@ -385501,7 +385926,7 @@ [] ], "RTCRtpParameters-encodings-expected.txt": [ - "b0b528e4136e5c13924f0cbb0f502fe08e4263e5", + "f0c8275395fe16b15ef3e319844752c45ad3d18f", [] ], "RTCRtpParameters-encodings.html.ini": [ @@ -385512,6 +385937,10 @@ "dd8ae0cc06d28b29865e61c5365600cbed465f35", [] ], + "RTCRtpParameters-transactionId-expected.txt": [ + "f50ee05bd96345bac86cfa13abdedf78c0bbb4f7", + [] + ], "RTCRtpParameters-transactionId.html.ini": [ "749197e2c6a99313eaa6b6db1e0bf95d74056e71", [] @@ -385524,6 +385953,10 @@ "e2c11e68437eb1510e938ce381dfa9b863bfe137", [] ], + "RTCRtpReceiver-getStats.https-expected.txt": [ + "f168452b1f19380b6f28ae7242bb4510c0f8ca7d", + [] + ], "RTCRtpReceiver-getStats.https.html.ini": [ "8fe54305e9d5dc447850c0170610b839166c4c23", [] @@ -385536,6 +385969,10 @@ "a0afd8e47d81d8e5b22e4674fdc6ac4e1e470d10", [] ], + "RTCRtpSender-getStats.https-expected.txt": [ + "9561222826aeb3e46b8f3fbadd30a2fc68788e76", + [] + ], "RTCRtpSender-getStats.https.html.ini": [ "f8e9bbdaec1cf675b7ff0996b014afcdc609b223", [] @@ -385561,7 +385998,7 @@ [] ], "RTCStats-helper.js": [ - "e504550c0c73a8add2b24f4dce299bed65ecb919", + "29d4940a8ae80ea4acc9929bccd71de3b5b83b80", [] ], "coverage": { @@ -386656,6 +387093,14 @@ "f453bf19e7850b844e8afaa0ca2aebae8602d779", [] ], + "close.any.js.ini": [ + "4c5ec50594edf22acd79a21d76a1cd025a822270", + [] + ], + "constructor.any.js.ini": [ + "21540c71b1fff53cf369385e343dab1db1de87bb", + [] + ], "constructor.any.serviceworker_wpt_flags=h2-expected.txt": [ "ea8cfb4d6b6fb2a9070f67f571dfce682f0b4661", [] @@ -387911,6 +388356,10 @@ "4b956da4482c1f8ba3cec6c14fa55e9e57980ce0", [] ], + "embedded_style_multiple_tracks.html.ini": [ + "5b1c4f152aac1292aae05ae6c455d1303b560259", + [] + ], "embedded_style_selectors-ref.html": [ "754eed88b7ac420bb8cf07fa15cc0867d80e80fa", [] @@ -392460,6 +392909,10 @@ "9fb8be1b5efe80a8fccb8de5c10f0b544ebf308e", [] ], + "xhr-timeout-longtask.any.js.ini": [ + "c3c8ec031672f111b9bbdfeffe8a01680a4234f5", + [] + ], "xmlhttprequest-sync-block-defer-scripts-subframe.html": [ "be46a12b6f716f659e702e34cef36d8f2bd8b495", [] @@ -494512,7 +494965,7 @@ ] ], "shared-worker-fetch.window.js": [ - "1c772003a16667b2979bff14f25b36c1c87f1e58", + "9bc1a89beadc673afe783eb56b5e0b2560dbf408", [ "fetch/private-network-access/shared-worker-fetch.window.html", { @@ -494594,7 +495047,7 @@ ] ], "worker-blob-fetch.window.js": [ - "27cfa155c14cacfd0f25538bf6c25ecef67775b7", + "e119746b8a6b298a2c57bde63f03a59d8e72d477", [ "fetch/private-network-access/worker-blob-fetch.window.html", { @@ -494630,7 +495083,7 @@ ] ], "worker-fetch.window.js": [ - "1a57a106a651dd676084a6428a2e6bae2c310655", + "4d6b12f06715a8aaa88e2a290531713c036df3c1", [ "fetch/private-network-access/worker-fetch.window.html", { @@ -494798,7 +495251,7 @@ ] ], "xhr.window.js": [ - "b45f8283e93cbab37a11c8ce9ffbee9b5e19e073", + "fa307dc559a76cb3cd3f70f76a3c904f4602a442", [ "fetch/private-network-access/xhr.window.html", { @@ -508766,7 +509219,14 @@ ] ], "createImageBitmap-exif-orientation.html": [ - "d476d090ce896b38df9a0785fe6364b5c648ddc7", + "8b2a33e85b1ff0b2b167483c04d10d9e9288317a", + [ + null, + {} + ] + ], + "createImageBitmap-exif-orientation_none.html": [ + "807925b88a5744a260f6a1967cfedec9454ffb5e", [ null, {} @@ -508822,7 +509282,7 @@ ] ], "imagebitmap-replication-exif-orientation.html": [ - "b04a76121effe42a2166eed421d17102913d816d", + "ab4331adefbf4fea814a7bd50cf093429622257c", [ null, {} @@ -524747,7 +525207,7 @@ ] ], "dedicated-worker.https.window.js": [ - "780780565f54bb19bcaebf3d58619e4bafb2cfa3", + "b06ec56210814544585e6352f29bc60d7373408a", [ "html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.html", { @@ -540449,7 +540909,7 @@ ] ], "popover-anchor-idl-property.html": [ - "37c79efe1cafe45012627e8b56ab638eaf3c2b95", + "7b497ce09e6e192619b675b01b0ee21caa18a3e5", [ null, {} @@ -540503,7 +540963,7 @@ ] ], "popover-focus-2.html": [ - "569b633886cf6a77546a5bd6680b339ff05db1c3", + "463a048436d8e1131aa0e99227fa755396b5eb28", [ null, { @@ -540519,7 +540979,7 @@ ] ], "popover-focus.html": [ - "307ca8a80f553ce31d5cbf1666ddacf63641cdaf", + "a8555d7647c1d5e16620a8e7259a049360359587", [ null, { @@ -540529,7 +540989,7 @@ ] ], "popover-invoking-attribute.html": [ - "d0098d32738d84cc43a8c91f0f5342671f2d2e10", + "7b1dc20adf9beaa13ce2bb304659269cbb3d94ab", [ null, { @@ -540546,7 +541006,7 @@ ] ], "popover-light-dismiss.html": [ - "587418bd86fcc170adae86a258163d9418252987", + "2e9fdb43ec78eaf727ea3180e83b102f59927817", [ null, { @@ -540586,21 +541046,21 @@ ] ], "popover-stacking.html": [ - "bdd6feb20eead682790d1e3814272f3f1a384aa4", + "a18333577c0787431a7217b1edada1a97ef00b6c", [ null, {} ] ], "popover-target-element-disabled.html": [ - "3d139c5950eb6bc1048c10e0ea6053369cb93403", + "92c28a4b6c58d6726533e0c59f580e01448fc06c", [ null, {} ] ], "popover-top-layer-combinations.html": [ - "c8e4211ef5c1358a5f611442513ada939e4b7022", + "95f666e0c9d7ed25ab152f3ff4c7029ba8a10f69", [ null, { @@ -550706,7 +551166,7 @@ ] ], "inert-inlines-around-selection-range-in-contenteditable.html": [ - "ff00e16a7a436fb31adbfd81e24c38f490e1f226", + "c22c798084dcdb5123f5bf88a3bbe93f831cee46", [ null, {} @@ -555748,7 +556208,7 @@ ] ], "attribute-mapping-002.html": [ - "388b1415b538474e62e64dc920c1f6fb4fa53949", + "cad267731a39008aa4f964d7c4813a85689e2177", [ null, {} @@ -560142,6 +560602,13 @@ {} ] ], + "focus-reset-timing.html": [ + "df9f03afe9f3699cc9feb9a44e9e69dce25c7558", + [ + null, + {} + ] + ], "multiple-intercept.html": [ "75e38c98a40f1bdf6ad1d08e1bbd470ea92d64c1", [ @@ -562231,7 +562698,7 @@ ] ], "after-transition-explicit-scroll.html": [ - "83d5cffd2d09682ed6fbadd58b9de9beae28a236", + "4b7d0754747821aeb61e93dd0ae657ad5cef8821", [ null, {} @@ -562287,7 +562754,7 @@ ] ], "manual-immediate-scroll.html": [ - "112910d46f751d4177b15ce4d0a86e52ad2e2b54", + "bafcf6b25628cf76f456fb148b1e88d7b2dafe1c", [ null, {} @@ -562329,7 +562796,7 @@ ] ], "manual-scroll-repeated.html": [ - "f9bdb749690f6e50465f69fc8ad15525d9a08508", + "12391460880e034da168f95bec91ed9c6de91362", [ null, {} @@ -562349,6 +562816,20 @@ {} ] ], + "scroll-after-preventDefault.html": [ + "d83d341feb1d71f84f8e54a95af5f15aa41106b9", + [ + null, + {} + ] + ], + "scroll-on-synthetic-event.html": [ + "7efc2d1d980f28800783b3555c27dbec98b2081b", + [ + null, + {} + ] + ], "scroll-without-intercept.html": [ "b3958352c72776b0371a24e27fc5c270232ae55e", [ @@ -568710,7 +569191,7 @@ ] ], "modulepreload.html": [ - "58830fe064b5dfaa25e39d3982723a430dea6f0e", + "0e4b6923e32e83ac3b8f3018537352aa120df6c5", [ null, {} @@ -584533,6 +585014,15 @@ ] }, "screen-capture": { + "delegate-request.https.sub.html": [ + "8cc81c13832d9cd051e35a884d354a0835e58f81", + [ + null, + { + "testdriver": true + } + ] + ], "getdisplaymedia-after-discard.https.html": [ "445120f8c2f0878c7aa27033595be6531475ea79", [ @@ -611819,7 +612309,7 @@ ] ], "animate.html": [ - "dad633ba9a2ca0ed10574c973b036f76b738d0db", + "7a5151a79f3d8ce7a3bea71ac647d00bbf4b66b1", [ null, {} @@ -623084,7 +623574,7 @@ ] ], "RTCRtpParameters-transactionId.html": [ - "2aa43f48573677f855efaae3b884143ff6277738", + "a0fa0fab25937230809cc220edf2cbf44100ada9", [ null, {} @@ -623112,7 +623602,7 @@ ] ], "RTCRtpReceiver-getStats.https.html": [ - "3ba6c7127869765e2974bf8c5b2be8678892fe4e", + "06d0f0b39bf57814114bd35c68156b89752e0c64", [ null, { @@ -623146,7 +623636,7 @@ ] ], "RTCRtpSender-getStats.https.html": [ - "2b7dbe9e746fc17a8a0c41873762530f141c6322", + "27ac3e952f11d37ad50581465e6d8e8454982677", [ null, { @@ -636406,7 +636896,7 @@ }, "webtransport": { "close.https.any.js": [ - "d1f66751926016252ea28f60b751f069014f66e7", + "b6b367badf5c75e758bd23b35b8f2a41f09fdff4", [ "webtransport/close.https.any.html", { @@ -636580,7 +637070,7 @@ ] ], "constructor.https.any.js": [ - "acb91d84aae34844842a87adabd5adb13dce0c6b", + "0f39c4993bd99c9fd99b845bbafc01330215b840", [ "webtransport/constructor.https.any.html", { @@ -636596,6 +637086,10 @@ [ "script", "resources/webtransport-test-helpers.sub.js" + ], + [ + "script", + "/common/utils.js" ] ] } @@ -636615,6 +637109,10 @@ [ "script", "resources/webtransport-test-helpers.sub.js" + ], + [ + "script", + "/common/utils.js" ] ] } @@ -636634,6 +637132,10 @@ [ "script", "resources/webtransport-test-helpers.sub.js" + ], + [ + "script", + "/common/utils.js" ] ] } @@ -636653,6 +637155,10 @@ [ "script", "resources/webtransport-test-helpers.sub.js" + ], + [ + "script", + "/common/utils.js" ] ] }
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-004.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-004.html.ini new file mode 100644 index 0000000..fcbbb514 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-004.html.ini
@@ -0,0 +1,2 @@ +[initial-letter-float-004.html] + expected: 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 new file mode 100644 index 0000000..6355a29 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-vrl.html.ini
@@ -0,0 +1,2 @@ +[initial-letter-raise-initial-vrl.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-raise.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-raise.html.ini new file mode 100644 index 0000000..8e1806ae --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-raise.html.ini
@@ -0,0 +1,2 @@ +[initial-letter-raised-sunken-caps-raise.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-sunk-initial.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-sunk-initial.html.ini new file mode 100644 index 0000000..47f90b16 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-sunk-initial.html.ini
@@ -0,0 +1,2 @@ +[initial-letter-sunk-initial.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001-ref.html similarity index 99% rename from third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001.tentative-ref.html rename to third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001-ref.html index d41d6187..d6418a3 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001.tentative-ref.html +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001-ref.html
@@ -23,68 +23,66 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝜕</span>=<span>1D715</span></span> - <span><span class="testfont">𝛻</span>=<span>1D6FB</span></span> - <span><span class="testfont">𝚥</span>=<span>1D6A5</span></span> <span><span class="testfont">𝐴</span>=<span>1D434</span></span> <span><span class="testfont">𝐵</span>=<span>1D435</span></span> <span><span class="testfont">𝐶</span>=<span>1D436</span></span> <span><span class="testfont">𝐷</span>=<span>1D437</span></span> <span><span class="testfont">𝐸</span>=<span>1D438</span></span> <span><span class="testfont">𝐹</span>=<span>1D439</span></span> - <span><span class="testfont">𝐺</span>=<span>1D43A</span></span><br/> + <span><span class="testfont">𝐺</span>=<span>1D43A</span></span> <span><span class="testfont">𝐻</span>=<span>1D43B</span></span> <span><span class="testfont">𝐼</span>=<span>1D43C</span></span> - <span><span class="testfont">𝐽</span>=<span>1D43D</span></span> + <span><span class="testfont">𝐽</span>=<span>1D43D</span></span><br/> <span><span class="testfont">𝐾</span>=<span>1D43E</span></span> <span><span class="testfont">𝐿</span>=<span>1D43F</span></span> <span><span class="testfont">𝑀</span>=<span>1D440</span></span> <span><span class="testfont">𝑁</span>=<span>1D441</span></span> <span><span class="testfont">𝑂</span>=<span>1D442</span></span> <span><span class="testfont">𝑃</span>=<span>1D443</span></span> - <span><span class="testfont">𝑄</span>=<span>1D444</span></span><br/> + <span><span class="testfont">𝑄</span>=<span>1D444</span></span> <span><span class="testfont">𝑅</span>=<span>1D445</span></span> <span><span class="testfont">𝑆</span>=<span>1D446</span></span> - <span><span class="testfont">𝑇</span>=<span>1D447</span></span> + <span><span class="testfont">𝑇</span>=<span>1D447</span></span><br/> <span><span class="testfont">𝑈</span>=<span>1D448</span></span> <span><span class="testfont">𝑉</span>=<span>1D449</span></span> <span><span class="testfont">𝑊</span>=<span>1D44A</span></span> <span><span class="testfont">𝑋</span>=<span>1D44B</span></span> <span><span class="testfont">𝑌</span>=<span>1D44C</span></span> <span><span class="testfont">𝑍</span>=<span>1D44D</span></span> - <span><span class="testfont">𝑎</span>=<span>1D44E</span></span><br/> + <span><span class="testfont">𝑎</span>=<span>1D44E</span></span> <span><span class="testfont">𝑏</span>=<span>1D44F</span></span> <span><span class="testfont">𝑐</span>=<span>1D450</span></span> - <span><span class="testfont">𝑑</span>=<span>1D451</span></span> + <span><span class="testfont">𝑑</span>=<span>1D451</span></span><br/> <span><span class="testfont">𝑒</span>=<span>1D452</span></span> <span><span class="testfont">𝑓</span>=<span>1D453</span></span> <span><span class="testfont">𝑔</span>=<span>1D454</span></span> <span><span class="testfont">ℎ</span>=<span>0210E</span></span> <span><span class="testfont">𝑖</span>=<span>1D456</span></span> <span><span class="testfont">𝑗</span>=<span>1D457</span></span> - <span><span class="testfont">𝑘</span>=<span>1D458</span></span><br/> + <span><span class="testfont">𝑘</span>=<span>1D458</span></span> <span><span class="testfont">𝑙</span>=<span>1D459</span></span> <span><span class="testfont">𝑚</span>=<span>1D45A</span></span> - <span><span class="testfont">𝑛</span>=<span>1D45B</span></span> + <span><span class="testfont">𝑛</span>=<span>1D45B</span></span><br/> <span><span class="testfont">𝑜</span>=<span>1D45C</span></span> <span><span class="testfont">𝑝</span>=<span>1D45D</span></span> <span><span class="testfont">𝑞</span>=<span>1D45E</span></span> <span><span class="testfont">𝑟</span>=<span>1D45F</span></span> <span><span class="testfont">𝑠</span>=<span>1D460</span></span> <span><span class="testfont">𝑡</span>=<span>1D461</span></span> - <span><span class="testfont">𝑢</span>=<span>1D462</span></span><br/> + <span><span class="testfont">𝑢</span>=<span>1D462</span></span> <span><span class="testfont">𝑣</span>=<span>1D463</span></span> <span><span class="testfont">𝑤</span>=<span>1D464</span></span> - <span><span class="testfont">𝑥</span>=<span>1D465</span></span> + <span><span class="testfont">𝑥</span>=<span>1D465</span></span><br/> <span><span class="testfont">𝑦</span>=<span>1D466</span></span> <span><span class="testfont">𝑧</span>=<span>1D467</span></span> <span><span class="testfont">𝚤</span>=<span>1D6A4</span></span> + <span><span class="testfont">𝚥</span>=<span>1D6A5</span></span> <span><span class="testfont">𝛢</span>=<span>1D6E2</span></span> <span><span class="testfont">𝛣</span>=<span>1D6E3</span></span> <span><span class="testfont">𝛤</span>=<span>1D6E4</span></span> - <span><span class="testfont">𝛥</span>=<span>1D6E5</span></span><br/> + <span><span class="testfont">𝛥</span>=<span>1D6E5</span></span> <span><span class="testfont">𝛦</span>=<span>1D6E6</span></span> - <span><span class="testfont">𝛧</span>=<span>1D6E7</span></span> + <span><span class="testfont">𝛧</span>=<span>1D6E7</span></span><br/> <span><span class="testfont">𝛨</span>=<span>1D6E8</span></span> <span><span class="testfont">𝛩</span>=<span>1D6E9</span></span> <span><span class="testfont">𝛪</span>=<span>1D6EA</span></span> @@ -92,17 +90,19 @@ <span><span class="testfont">𝛬</span>=<span>1D6EC</span></span> <span><span class="testfont">𝛭</span>=<span>1D6ED</span></span> <span><span class="testfont">𝛮</span>=<span>1D6EE</span></span> - <span><span class="testfont">𝛯</span>=<span>1D6EF</span></span><br/> + <span><span class="testfont">𝛯</span>=<span>1D6EF</span></span> <span><span class="testfont">𝛰</span>=<span>1D6F0</span></span> - <span><span class="testfont">𝛱</span>=<span>1D6F1</span></span> + <span><span class="testfont">𝛱</span>=<span>1D6F1</span></span><br/> <span><span class="testfont">𝛲</span>=<span>1D6F2</span></span> + <span><span class="testfont">𝛳</span>=<span>1D6F3</span></span> <span><span class="testfont">𝛴</span>=<span>1D6F4</span></span> <span><span class="testfont">𝛵</span>=<span>1D6F5</span></span> <span><span class="testfont">𝛶</span>=<span>1D6F6</span></span> <span><span class="testfont">𝛷</span>=<span>1D6F7</span></span> <span><span class="testfont">𝛸</span>=<span>1D6F8</span></span> <span><span class="testfont">𝛹</span>=<span>1D6F9</span></span> - <span><span class="testfont">𝛺</span>=<span>1D6FA</span></span><br/> + <span><span class="testfont">𝛺</span>=<span>1D6FA</span></span> + <span><span class="testfont">𝛻</span>=<span>1D6FB</span></span><br/> <span><span class="testfont">𝛼</span>=<span>1D6FC</span></span> <span><span class="testfont">𝛽</span>=<span>1D6FD</span></span> <span><span class="testfont">𝛾</span>=<span>1D6FE</span></span> @@ -128,12 +128,12 @@ <span><span class="testfont">𝜒</span>=<span>1D712</span></span> <span><span class="testfont">𝜓</span>=<span>1D713</span></span> <span><span class="testfont">𝜔</span>=<span>1D714</span></span> - <span><span class="testfont">𝜗</span>=<span>1D717</span></span> - <span><span class="testfont">𝜙</span>=<span>1D719</span></span> - <span><span class="testfont">𝜛</span>=<span>1D71B</span></span> - <span><span class="testfont">𝜘</span>=<span>1D718</span></span> - <span><span class="testfont">𝜚</span>=<span>1D71A</span></span><br/> - <span><span class="testfont">𝛳</span>=<span>1D6F3</span></span> + <span><span class="testfont">𝜕</span>=<span>1D715</span></span> <span><span class="testfont">𝜖</span>=<span>1D716</span></span> + <span><span class="testfont">𝜗</span>=<span>1D717</span></span> + <span><span class="testfont">𝜘</span>=<span>1D718</span></span> + <span><span class="testfont">𝜙</span>=<span>1D719</span></span><br/> + <span><span class="testfont">𝜚</span>=<span>1D71A</span></span> + <span><span class="testfont">𝜛</span>=<span>1D71B</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001.html similarity index 91% rename from third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001.tentative.html rename to third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001.html index f5f08f6..db5e5b8 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001.tentative.html +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-001.html
@@ -4,9 +4,9 @@ <meta charset="utf-8"/> <title>text-transform math-auto</title> <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#italic-mappings"> -<link rel="match" href="text-transform-math-auto-001.tentative-ref.html"/> +<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values"> +<link rel="help" href="https://w3c.github.io/mathml-core/#italic-mappings"> +<link rel="match" href="text-transform-math-auto-001-ref.html"/> <meta name="assert" content="Verify that a character with 'text-transform: math-auto' renders the same as the transformed unicode character."> <style> @font-face { @@ -28,68 +28,66 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-auto">∂</span>=<span>1D715</span></span> - <span><span class="testfont" style="text-transform: math-auto">∇</span>=<span>1D6FB</span></span> - <span><span class="testfont" style="text-transform: math-auto">ȷ</span>=<span>1D6A5</span></span> <span><span class="testfont" style="text-transform: math-auto">A</span>=<span>1D434</span></span> <span><span class="testfont" style="text-transform: math-auto">B</span>=<span>1D435</span></span> <span><span class="testfont" style="text-transform: math-auto">C</span>=<span>1D436</span></span> <span><span class="testfont" style="text-transform: math-auto">D</span>=<span>1D437</span></span> <span><span class="testfont" style="text-transform: math-auto">E</span>=<span>1D438</span></span> <span><span class="testfont" style="text-transform: math-auto">F</span>=<span>1D439</span></span> - <span><span class="testfont" style="text-transform: math-auto">G</span>=<span>1D43A</span></span><br/> + <span><span class="testfont" style="text-transform: math-auto">G</span>=<span>1D43A</span></span> <span><span class="testfont" style="text-transform: math-auto">H</span>=<span>1D43B</span></span> <span><span class="testfont" style="text-transform: math-auto">I</span>=<span>1D43C</span></span> - <span><span class="testfont" style="text-transform: math-auto">J</span>=<span>1D43D</span></span> + <span><span class="testfont" style="text-transform: math-auto">J</span>=<span>1D43D</span></span><br/> <span><span class="testfont" style="text-transform: math-auto">K</span>=<span>1D43E</span></span> <span><span class="testfont" style="text-transform: math-auto">L</span>=<span>1D43F</span></span> <span><span class="testfont" style="text-transform: math-auto">M</span>=<span>1D440</span></span> <span><span class="testfont" style="text-transform: math-auto">N</span>=<span>1D441</span></span> <span><span class="testfont" style="text-transform: math-auto">O</span>=<span>1D442</span></span> <span><span class="testfont" style="text-transform: math-auto">P</span>=<span>1D443</span></span> - <span><span class="testfont" style="text-transform: math-auto">Q</span>=<span>1D444</span></span><br/> + <span><span class="testfont" style="text-transform: math-auto">Q</span>=<span>1D444</span></span> <span><span class="testfont" style="text-transform: math-auto">R</span>=<span>1D445</span></span> <span><span class="testfont" style="text-transform: math-auto">S</span>=<span>1D446</span></span> - <span><span class="testfont" style="text-transform: math-auto">T</span>=<span>1D447</span></span> + <span><span class="testfont" style="text-transform: math-auto">T</span>=<span>1D447</span></span><br/> <span><span class="testfont" style="text-transform: math-auto">U</span>=<span>1D448</span></span> <span><span class="testfont" style="text-transform: math-auto">V</span>=<span>1D449</span></span> <span><span class="testfont" style="text-transform: math-auto">W</span>=<span>1D44A</span></span> <span><span class="testfont" style="text-transform: math-auto">X</span>=<span>1D44B</span></span> <span><span class="testfont" style="text-transform: math-auto">Y</span>=<span>1D44C</span></span> <span><span class="testfont" style="text-transform: math-auto">Z</span>=<span>1D44D</span></span> - <span><span class="testfont" style="text-transform: math-auto">a</span>=<span>1D44E</span></span><br/> + <span><span class="testfont" style="text-transform: math-auto">a</span>=<span>1D44E</span></span> <span><span class="testfont" style="text-transform: math-auto">b</span>=<span>1D44F</span></span> <span><span class="testfont" style="text-transform: math-auto">c</span>=<span>1D450</span></span> - <span><span class="testfont" style="text-transform: math-auto">d</span>=<span>1D451</span></span> + <span><span class="testfont" style="text-transform: math-auto">d</span>=<span>1D451</span></span><br/> <span><span class="testfont" style="text-transform: math-auto">e</span>=<span>1D452</span></span> <span><span class="testfont" style="text-transform: math-auto">f</span>=<span>1D453</span></span> <span><span class="testfont" style="text-transform: math-auto">g</span>=<span>1D454</span></span> <span><span class="testfont" style="text-transform: math-auto">h</span>=<span>0210E</span></span> <span><span class="testfont" style="text-transform: math-auto">i</span>=<span>1D456</span></span> <span><span class="testfont" style="text-transform: math-auto">j</span>=<span>1D457</span></span> - <span><span class="testfont" style="text-transform: math-auto">k</span>=<span>1D458</span></span><br/> + <span><span class="testfont" style="text-transform: math-auto">k</span>=<span>1D458</span></span> <span><span class="testfont" style="text-transform: math-auto">l</span>=<span>1D459</span></span> <span><span class="testfont" style="text-transform: math-auto">m</span>=<span>1D45A</span></span> - <span><span class="testfont" style="text-transform: math-auto">n</span>=<span>1D45B</span></span> + <span><span class="testfont" style="text-transform: math-auto">n</span>=<span>1D45B</span></span><br/> <span><span class="testfont" style="text-transform: math-auto">o</span>=<span>1D45C</span></span> <span><span class="testfont" style="text-transform: math-auto">p</span>=<span>1D45D</span></span> <span><span class="testfont" style="text-transform: math-auto">q</span>=<span>1D45E</span></span> <span><span class="testfont" style="text-transform: math-auto">r</span>=<span>1D45F</span></span> <span><span class="testfont" style="text-transform: math-auto">s</span>=<span>1D460</span></span> <span><span class="testfont" style="text-transform: math-auto">t</span>=<span>1D461</span></span> - <span><span class="testfont" style="text-transform: math-auto">u</span>=<span>1D462</span></span><br/> + <span><span class="testfont" style="text-transform: math-auto">u</span>=<span>1D462</span></span> <span><span class="testfont" style="text-transform: math-auto">v</span>=<span>1D463</span></span> <span><span class="testfont" style="text-transform: math-auto">w</span>=<span>1D464</span></span> - <span><span class="testfont" style="text-transform: math-auto">x</span>=<span>1D465</span></span> + <span><span class="testfont" style="text-transform: math-auto">x</span>=<span>1D465</span></span><br/> <span><span class="testfont" style="text-transform: math-auto">y</span>=<span>1D466</span></span> <span><span class="testfont" style="text-transform: math-auto">z</span>=<span>1D467</span></span> <span><span class="testfont" style="text-transform: math-auto">ı</span>=<span>1D6A4</span></span> + <span><span class="testfont" style="text-transform: math-auto">ȷ</span>=<span>1D6A5</span></span> <span><span class="testfont" style="text-transform: math-auto">Α</span>=<span>1D6E2</span></span> <span><span class="testfont" style="text-transform: math-auto">Β</span>=<span>1D6E3</span></span> <span><span class="testfont" style="text-transform: math-auto">Γ</span>=<span>1D6E4</span></span> - <span><span class="testfont" style="text-transform: math-auto">Δ</span>=<span>1D6E5</span></span><br/> + <span><span class="testfont" style="text-transform: math-auto">Δ</span>=<span>1D6E5</span></span> <span><span class="testfont" style="text-transform: math-auto">Ε</span>=<span>1D6E6</span></span> - <span><span class="testfont" style="text-transform: math-auto">Ζ</span>=<span>1D6E7</span></span> + <span><span class="testfont" style="text-transform: math-auto">Ζ</span>=<span>1D6E7</span></span><br/> <span><span class="testfont" style="text-transform: math-auto">Η</span>=<span>1D6E8</span></span> <span><span class="testfont" style="text-transform: math-auto">Θ</span>=<span>1D6E9</span></span> <span><span class="testfont" style="text-transform: math-auto">Ι</span>=<span>1D6EA</span></span> @@ -97,17 +95,19 @@ <span><span class="testfont" style="text-transform: math-auto">Λ</span>=<span>1D6EC</span></span> <span><span class="testfont" style="text-transform: math-auto">Μ</span>=<span>1D6ED</span></span> <span><span class="testfont" style="text-transform: math-auto">Ν</span>=<span>1D6EE</span></span> - <span><span class="testfont" style="text-transform: math-auto">Ξ</span>=<span>1D6EF</span></span><br/> + <span><span class="testfont" style="text-transform: math-auto">Ξ</span>=<span>1D6EF</span></span> <span><span class="testfont" style="text-transform: math-auto">Ο</span>=<span>1D6F0</span></span> - <span><span class="testfont" style="text-transform: math-auto">Π</span>=<span>1D6F1</span></span> + <span><span class="testfont" style="text-transform: math-auto">Π</span>=<span>1D6F1</span></span><br/> <span><span class="testfont" style="text-transform: math-auto">Ρ</span>=<span>1D6F2</span></span> + <span><span class="testfont" style="text-transform: math-auto">ϴ</span>=<span>1D6F3</span></span> <span><span class="testfont" style="text-transform: math-auto">Σ</span>=<span>1D6F4</span></span> <span><span class="testfont" style="text-transform: math-auto">Τ</span>=<span>1D6F5</span></span> <span><span class="testfont" style="text-transform: math-auto">Υ</span>=<span>1D6F6</span></span> <span><span class="testfont" style="text-transform: math-auto">Φ</span>=<span>1D6F7</span></span> <span><span class="testfont" style="text-transform: math-auto">Χ</span>=<span>1D6F8</span></span> <span><span class="testfont" style="text-transform: math-auto">Ψ</span>=<span>1D6F9</span></span> - <span><span class="testfont" style="text-transform: math-auto">Ω</span>=<span>1D6FA</span></span><br/> + <span><span class="testfont" style="text-transform: math-auto">Ω</span>=<span>1D6FA</span></span> + <span><span class="testfont" style="text-transform: math-auto">∇</span>=<span>1D6FB</span></span><br/> <span><span class="testfont" style="text-transform: math-auto">α</span>=<span>1D6FC</span></span> <span><span class="testfont" style="text-transform: math-auto">β</span>=<span>1D6FD</span></span> <span><span class="testfont" style="text-transform: math-auto">γ</span>=<span>1D6FE</span></span> @@ -133,12 +133,12 @@ <span><span class="testfont" style="text-transform: math-auto">χ</span>=<span>1D712</span></span> <span><span class="testfont" style="text-transform: math-auto">ψ</span>=<span>1D713</span></span> <span><span class="testfont" style="text-transform: math-auto">ω</span>=<span>1D714</span></span> - <span><span class="testfont" style="text-transform: math-auto">ϑ</span>=<span>1D717</span></span> - <span><span class="testfont" style="text-transform: math-auto">ϕ</span>=<span>1D719</span></span> - <span><span class="testfont" style="text-transform: math-auto">ϖ</span>=<span>1D71B</span></span> - <span><span class="testfont" style="text-transform: math-auto">ϰ</span>=<span>1D718</span></span> - <span><span class="testfont" style="text-transform: math-auto">ϱ</span>=<span>1D71A</span></span><br/> - <span><span class="testfont" style="text-transform: math-auto">ϴ</span>=<span>1D6F3</span></span> + <span><span class="testfont" style="text-transform: math-auto">∂</span>=<span>1D715</span></span> <span><span class="testfont" style="text-transform: math-auto">ϵ</span>=<span>1D716</span></span> + <span><span class="testfont" style="text-transform: math-auto">ϑ</span>=<span>1D717</span></span> + <span><span class="testfont" style="text-transform: math-auto">ϰ</span>=<span>1D718</span></span> + <span><span class="testfont" style="text-transform: math-auto">ϕ</span>=<span>1D719</span></span><br/> + <span><span class="testfont" style="text-transform: math-auto">ϱ</span>=<span>1D71A</span></span> + <span><span class="testfont" style="text-transform: math-auto">ϖ</span>=<span>1D71B</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-002.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-002-ref.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-002.tentative-ref.html rename to third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-002-ref.html
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-002.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-002.html similarity index 93% rename from third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-002.tentative.html rename to third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-002.html index 32bad74..34e43e718 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-002.tentative.html +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-auto-002.html
@@ -5,7 +5,7 @@ <title>text-transform math-auto</title> <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="match" href="text-transform-math-auto-002.tentative-ref.html"/> +<link rel="match" href="text-transform-math-auto-002-ref.html"/> <meta name="assert" content="Test 'text-transform: math-auto' for text nodes of different lengths"> <style> @font-face {
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-001.tentative-ref.html deleted file mode 100644 index 24b8300..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-001.tentative-ref.html +++ /dev/null
@@ -1,149 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-bold (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-bold.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝛛</span>=<span>1D6DB</span></span> - <span><span class="testfont">𝛁</span>=<span>1D6C1</span></span> - <span><span class="testfont">𝟎</span>=<span>1D7CE</span></span> - <span><span class="testfont">𝟏</span>=<span>1D7CF</span></span> - <span><span class="testfont">𝟐</span>=<span>1D7D0</span></span> - <span><span class="testfont">𝟑</span>=<span>1D7D1</span></span> - <span><span class="testfont">𝟒</span>=<span>1D7D2</span></span> - <span><span class="testfont">𝟓</span>=<span>1D7D3</span></span> - <span><span class="testfont">𝟔</span>=<span>1D7D4</span></span> - <span><span class="testfont">𝟕</span>=<span>1D7D5</span></span><br/> - <span><span class="testfont">𝟖</span>=<span>1D7D6</span></span> - <span><span class="testfont">𝟗</span>=<span>1D7D7</span></span> - <span><span class="testfont">𝐀</span>=<span>1D400</span></span> - <span><span class="testfont">𝐁</span>=<span>1D401</span></span> - <span><span class="testfont">𝐂</span>=<span>1D402</span></span> - <span><span class="testfont">𝐃</span>=<span>1D403</span></span> - <span><span class="testfont">𝐄</span>=<span>1D404</span></span> - <span><span class="testfont">𝐅</span>=<span>1D405</span></span> - <span><span class="testfont">𝐆</span>=<span>1D406</span></span> - <span><span class="testfont">𝐇</span>=<span>1D407</span></span><br/> - <span><span class="testfont">𝐈</span>=<span>1D408</span></span> - <span><span class="testfont">𝐉</span>=<span>1D409</span></span> - <span><span class="testfont">𝐊</span>=<span>1D40A</span></span> - <span><span class="testfont">𝐋</span>=<span>1D40B</span></span> - <span><span class="testfont">𝐌</span>=<span>1D40C</span></span> - <span><span class="testfont">𝐍</span>=<span>1D40D</span></span> - <span><span class="testfont">𝐎</span>=<span>1D40E</span></span> - <span><span class="testfont">𝐏</span>=<span>1D40F</span></span> - <span><span class="testfont">𝐐</span>=<span>1D410</span></span> - <span><span class="testfont">𝐑</span>=<span>1D411</span></span><br/> - <span><span class="testfont">𝐒</span>=<span>1D412</span></span> - <span><span class="testfont">𝐓</span>=<span>1D413</span></span> - <span><span class="testfont">𝐔</span>=<span>1D414</span></span> - <span><span class="testfont">𝐕</span>=<span>1D415</span></span> - <span><span class="testfont">𝐖</span>=<span>1D416</span></span> - <span><span class="testfont">𝐗</span>=<span>1D417</span></span> - <span><span class="testfont">𝐘</span>=<span>1D418</span></span> - <span><span class="testfont">𝐙</span>=<span>1D419</span></span> - <span><span class="testfont">𝐚</span>=<span>1D41A</span></span> - <span><span class="testfont">𝐛</span>=<span>1D41B</span></span><br/> - <span><span class="testfont">𝐜</span>=<span>1D41C</span></span> - <span><span class="testfont">𝐝</span>=<span>1D41D</span></span> - <span><span class="testfont">𝐞</span>=<span>1D41E</span></span> - <span><span class="testfont">𝐟</span>=<span>1D41F</span></span> - <span><span class="testfont">𝐠</span>=<span>1D420</span></span> - <span><span class="testfont">𝐡</span>=<span>1D421</span></span> - <span><span class="testfont">𝐢</span>=<span>1D422</span></span> - <span><span class="testfont">𝐣</span>=<span>1D423</span></span> - <span><span class="testfont">𝐤</span>=<span>1D424</span></span> - <span><span class="testfont">𝐥</span>=<span>1D425</span></span><br/> - <span><span class="testfont">𝐦</span>=<span>1D426</span></span> - <span><span class="testfont">𝐧</span>=<span>1D427</span></span> - <span><span class="testfont">𝐨</span>=<span>1D428</span></span> - <span><span class="testfont">𝐩</span>=<span>1D429</span></span> - <span><span class="testfont">𝐪</span>=<span>1D42A</span></span> - <span><span class="testfont">𝐫</span>=<span>1D42B</span></span> - <span><span class="testfont">𝐬</span>=<span>1D42C</span></span> - <span><span class="testfont">𝐭</span>=<span>1D42D</span></span> - <span><span class="testfont">𝐮</span>=<span>1D42E</span></span> - <span><span class="testfont">𝐯</span>=<span>1D42F</span></span><br/> - <span><span class="testfont">𝐰</span>=<span>1D430</span></span> - <span><span class="testfont">𝐱</span>=<span>1D431</span></span> - <span><span class="testfont">𝐲</span>=<span>1D432</span></span> - <span><span class="testfont">𝐳</span>=<span>1D433</span></span> - <span><span class="testfont">𝚨</span>=<span>1D6A8</span></span> - <span><span class="testfont">𝚩</span>=<span>1D6A9</span></span> - <span><span class="testfont">𝚪</span>=<span>1D6AA</span></span> - <span><span class="testfont">𝚫</span>=<span>1D6AB</span></span> - <span><span class="testfont">𝚬</span>=<span>1D6AC</span></span> - <span><span class="testfont">𝚭</span>=<span>1D6AD</span></span><br/> - <span><span class="testfont">𝚮</span>=<span>1D6AE</span></span> - <span><span class="testfont">𝚯</span>=<span>1D6AF</span></span> - <span><span class="testfont">𝚰</span>=<span>1D6B0</span></span> - <span><span class="testfont">𝚱</span>=<span>1D6B1</span></span> - <span><span class="testfont">𝚲</span>=<span>1D6B2</span></span> - <span><span class="testfont">𝚳</span>=<span>1D6B3</span></span> - <span><span class="testfont">𝚴</span>=<span>1D6B4</span></span> - <span><span class="testfont">𝚵</span>=<span>1D6B5</span></span> - <span><span class="testfont">𝚶</span>=<span>1D6B6</span></span> - <span><span class="testfont">𝚷</span>=<span>1D6B7</span></span><br/> - <span><span class="testfont">𝚸</span>=<span>1D6B8</span></span> - <span><span class="testfont">𝚺</span>=<span>1D6BA</span></span> - <span><span class="testfont">𝚻</span>=<span>1D6BB</span></span> - <span><span class="testfont">𝚼</span>=<span>1D6BC</span></span> - <span><span class="testfont">𝚽</span>=<span>1D6BD</span></span> - <span><span class="testfont">𝚾</span>=<span>1D6BE</span></span> - <span><span class="testfont">𝚿</span>=<span>1D6BF</span></span> - <span><span class="testfont">𝛀</span>=<span>1D6C0</span></span> - <span><span class="testfont">𝛂</span>=<span>1D6C2</span></span> - <span><span class="testfont">𝛃</span>=<span>1D6C3</span></span><br/> - <span><span class="testfont">𝛄</span>=<span>1D6C4</span></span> - <span><span class="testfont">𝛅</span>=<span>1D6C5</span></span> - <span><span class="testfont">𝛆</span>=<span>1D6C6</span></span> - <span><span class="testfont">𝛇</span>=<span>1D6C7</span></span> - <span><span class="testfont">𝛈</span>=<span>1D6C8</span></span> - <span><span class="testfont">𝛉</span>=<span>1D6C9</span></span> - <span><span class="testfont">𝛊</span>=<span>1D6CA</span></span> - <span><span class="testfont">𝛋</span>=<span>1D6CB</span></span> - <span><span class="testfont">𝛌</span>=<span>1D6CC</span></span> - <span><span class="testfont">𝛍</span>=<span>1D6CD</span></span><br/> - <span><span class="testfont">𝛎</span>=<span>1D6CE</span></span> - <span><span class="testfont">𝛏</span>=<span>1D6CF</span></span> - <span><span class="testfont">𝛐</span>=<span>1D6D0</span></span> - <span><span class="testfont">𝛑</span>=<span>1D6D1</span></span> - <span><span class="testfont">𝛒</span>=<span>1D6D2</span></span> - <span><span class="testfont">𝛓</span>=<span>1D6D3</span></span> - <span><span class="testfont">𝛔</span>=<span>1D6D4</span></span> - <span><span class="testfont">𝛕</span>=<span>1D6D5</span></span> - <span><span class="testfont">𝛖</span>=<span>1D6D6</span></span> - <span><span class="testfont">𝛗</span>=<span>1D6D7</span></span><br/> - <span><span class="testfont">𝛘</span>=<span>1D6D8</span></span> - <span><span class="testfont">𝛙</span>=<span>1D6D9</span></span> - <span><span class="testfont">𝛚</span>=<span>1D6DA</span></span> - <span><span class="testfont">𝛝</span>=<span>1D6DD</span></span> - <span><span class="testfont">𝛟</span>=<span>1D6DF</span></span> - <span><span class="testfont">𝛡</span>=<span>1D6E1</span></span> - <span><span class="testfont">𝟊</span>=<span>1D7CA</span></span> - <span><span class="testfont">𝟋</span>=<span>1D7CB</span></span> - <span><span class="testfont">𝛞</span>=<span>1D6DE</span></span> - <span><span class="testfont">𝛠</span>=<span>1D6E0</span></span><br/> - <span><span class="testfont">𝚹</span>=<span>1D6B9</span></span> - <span><span class="testfont">𝛜</span>=<span>1D6DC</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html deleted file mode 100644 index 06b9ea6..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html +++ /dev/null
@@ -1,154 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-bold</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#bold-mappings"> -<link rel="match" href="text-transform-math-bold-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-bold' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-bold.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-bold">∂</span>=<span>1D6DB</span></span> - <span><span class="testfont" style="text-transform: math-bold">∇</span>=<span>1D6C1</span></span> - <span><span class="testfont" style="text-transform: math-bold">0</span>=<span>1D7CE</span></span> - <span><span class="testfont" style="text-transform: math-bold">1</span>=<span>1D7CF</span></span> - <span><span class="testfont" style="text-transform: math-bold">2</span>=<span>1D7D0</span></span> - <span><span class="testfont" style="text-transform: math-bold">3</span>=<span>1D7D1</span></span> - <span><span class="testfont" style="text-transform: math-bold">4</span>=<span>1D7D2</span></span> - <span><span class="testfont" style="text-transform: math-bold">5</span>=<span>1D7D3</span></span> - <span><span class="testfont" style="text-transform: math-bold">6</span>=<span>1D7D4</span></span> - <span><span class="testfont" style="text-transform: math-bold">7</span>=<span>1D7D5</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">8</span>=<span>1D7D6</span></span> - <span><span class="testfont" style="text-transform: math-bold">9</span>=<span>1D7D7</span></span> - <span><span class="testfont" style="text-transform: math-bold">A</span>=<span>1D400</span></span> - <span><span class="testfont" style="text-transform: math-bold">B</span>=<span>1D401</span></span> - <span><span class="testfont" style="text-transform: math-bold">C</span>=<span>1D402</span></span> - <span><span class="testfont" style="text-transform: math-bold">D</span>=<span>1D403</span></span> - <span><span class="testfont" style="text-transform: math-bold">E</span>=<span>1D404</span></span> - <span><span class="testfont" style="text-transform: math-bold">F</span>=<span>1D405</span></span> - <span><span class="testfont" style="text-transform: math-bold">G</span>=<span>1D406</span></span> - <span><span class="testfont" style="text-transform: math-bold">H</span>=<span>1D407</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">I</span>=<span>1D408</span></span> - <span><span class="testfont" style="text-transform: math-bold">J</span>=<span>1D409</span></span> - <span><span class="testfont" style="text-transform: math-bold">K</span>=<span>1D40A</span></span> - <span><span class="testfont" style="text-transform: math-bold">L</span>=<span>1D40B</span></span> - <span><span class="testfont" style="text-transform: math-bold">M</span>=<span>1D40C</span></span> - <span><span class="testfont" style="text-transform: math-bold">N</span>=<span>1D40D</span></span> - <span><span class="testfont" style="text-transform: math-bold">O</span>=<span>1D40E</span></span> - <span><span class="testfont" style="text-transform: math-bold">P</span>=<span>1D40F</span></span> - <span><span class="testfont" style="text-transform: math-bold">Q</span>=<span>1D410</span></span> - <span><span class="testfont" style="text-transform: math-bold">R</span>=<span>1D411</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">S</span>=<span>1D412</span></span> - <span><span class="testfont" style="text-transform: math-bold">T</span>=<span>1D413</span></span> - <span><span class="testfont" style="text-transform: math-bold">U</span>=<span>1D414</span></span> - <span><span class="testfont" style="text-transform: math-bold">V</span>=<span>1D415</span></span> - <span><span class="testfont" style="text-transform: math-bold">W</span>=<span>1D416</span></span> - <span><span class="testfont" style="text-transform: math-bold">X</span>=<span>1D417</span></span> - <span><span class="testfont" style="text-transform: math-bold">Y</span>=<span>1D418</span></span> - <span><span class="testfont" style="text-transform: math-bold">Z</span>=<span>1D419</span></span> - <span><span class="testfont" style="text-transform: math-bold">a</span>=<span>1D41A</span></span> - <span><span class="testfont" style="text-transform: math-bold">b</span>=<span>1D41B</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">c</span>=<span>1D41C</span></span> - <span><span class="testfont" style="text-transform: math-bold">d</span>=<span>1D41D</span></span> - <span><span class="testfont" style="text-transform: math-bold">e</span>=<span>1D41E</span></span> - <span><span class="testfont" style="text-transform: math-bold">f</span>=<span>1D41F</span></span> - <span><span class="testfont" style="text-transform: math-bold">g</span>=<span>1D420</span></span> - <span><span class="testfont" style="text-transform: math-bold">h</span>=<span>1D421</span></span> - <span><span class="testfont" style="text-transform: math-bold">i</span>=<span>1D422</span></span> - <span><span class="testfont" style="text-transform: math-bold">j</span>=<span>1D423</span></span> - <span><span class="testfont" style="text-transform: math-bold">k</span>=<span>1D424</span></span> - <span><span class="testfont" style="text-transform: math-bold">l</span>=<span>1D425</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">m</span>=<span>1D426</span></span> - <span><span class="testfont" style="text-transform: math-bold">n</span>=<span>1D427</span></span> - <span><span class="testfont" style="text-transform: math-bold">o</span>=<span>1D428</span></span> - <span><span class="testfont" style="text-transform: math-bold">p</span>=<span>1D429</span></span> - <span><span class="testfont" style="text-transform: math-bold">q</span>=<span>1D42A</span></span> - <span><span class="testfont" style="text-transform: math-bold">r</span>=<span>1D42B</span></span> - <span><span class="testfont" style="text-transform: math-bold">s</span>=<span>1D42C</span></span> - <span><span class="testfont" style="text-transform: math-bold">t</span>=<span>1D42D</span></span> - <span><span class="testfont" style="text-transform: math-bold">u</span>=<span>1D42E</span></span> - <span><span class="testfont" style="text-transform: math-bold">v</span>=<span>1D42F</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">w</span>=<span>1D430</span></span> - <span><span class="testfont" style="text-transform: math-bold">x</span>=<span>1D431</span></span> - <span><span class="testfont" style="text-transform: math-bold">y</span>=<span>1D432</span></span> - <span><span class="testfont" style="text-transform: math-bold">z</span>=<span>1D433</span></span> - <span><span class="testfont" style="text-transform: math-bold">Α</span>=<span>1D6A8</span></span> - <span><span class="testfont" style="text-transform: math-bold">Β</span>=<span>1D6A9</span></span> - <span><span class="testfont" style="text-transform: math-bold">Γ</span>=<span>1D6AA</span></span> - <span><span class="testfont" style="text-transform: math-bold">Δ</span>=<span>1D6AB</span></span> - <span><span class="testfont" style="text-transform: math-bold">Ε</span>=<span>1D6AC</span></span> - <span><span class="testfont" style="text-transform: math-bold">Ζ</span>=<span>1D6AD</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">Η</span>=<span>1D6AE</span></span> - <span><span class="testfont" style="text-transform: math-bold">Θ</span>=<span>1D6AF</span></span> - <span><span class="testfont" style="text-transform: math-bold">Ι</span>=<span>1D6B0</span></span> - <span><span class="testfont" style="text-transform: math-bold">Κ</span>=<span>1D6B1</span></span> - <span><span class="testfont" style="text-transform: math-bold">Λ</span>=<span>1D6B2</span></span> - <span><span class="testfont" style="text-transform: math-bold">Μ</span>=<span>1D6B3</span></span> - <span><span class="testfont" style="text-transform: math-bold">Ν</span>=<span>1D6B4</span></span> - <span><span class="testfont" style="text-transform: math-bold">Ξ</span>=<span>1D6B5</span></span> - <span><span class="testfont" style="text-transform: math-bold">Ο</span>=<span>1D6B6</span></span> - <span><span class="testfont" style="text-transform: math-bold">Π</span>=<span>1D6B7</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">Ρ</span>=<span>1D6B8</span></span> - <span><span class="testfont" style="text-transform: math-bold">Σ</span>=<span>1D6BA</span></span> - <span><span class="testfont" style="text-transform: math-bold">Τ</span>=<span>1D6BB</span></span> - <span><span class="testfont" style="text-transform: math-bold">Υ</span>=<span>1D6BC</span></span> - <span><span class="testfont" style="text-transform: math-bold">Φ</span>=<span>1D6BD</span></span> - <span><span class="testfont" style="text-transform: math-bold">Χ</span>=<span>1D6BE</span></span> - <span><span class="testfont" style="text-transform: math-bold">Ψ</span>=<span>1D6BF</span></span> - <span><span class="testfont" style="text-transform: math-bold">Ω</span>=<span>1D6C0</span></span> - <span><span class="testfont" style="text-transform: math-bold">α</span>=<span>1D6C2</span></span> - <span><span class="testfont" style="text-transform: math-bold">β</span>=<span>1D6C3</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">γ</span>=<span>1D6C4</span></span> - <span><span class="testfont" style="text-transform: math-bold">δ</span>=<span>1D6C5</span></span> - <span><span class="testfont" style="text-transform: math-bold">ε</span>=<span>1D6C6</span></span> - <span><span class="testfont" style="text-transform: math-bold">ζ</span>=<span>1D6C7</span></span> - <span><span class="testfont" style="text-transform: math-bold">η</span>=<span>1D6C8</span></span> - <span><span class="testfont" style="text-transform: math-bold">θ</span>=<span>1D6C9</span></span> - <span><span class="testfont" style="text-transform: math-bold">ι</span>=<span>1D6CA</span></span> - <span><span class="testfont" style="text-transform: math-bold">κ</span>=<span>1D6CB</span></span> - <span><span class="testfont" style="text-transform: math-bold">λ</span>=<span>1D6CC</span></span> - <span><span class="testfont" style="text-transform: math-bold">μ</span>=<span>1D6CD</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">ν</span>=<span>1D6CE</span></span> - <span><span class="testfont" style="text-transform: math-bold">ξ</span>=<span>1D6CF</span></span> - <span><span class="testfont" style="text-transform: math-bold">ο</span>=<span>1D6D0</span></span> - <span><span class="testfont" style="text-transform: math-bold">π</span>=<span>1D6D1</span></span> - <span><span class="testfont" style="text-transform: math-bold">ρ</span>=<span>1D6D2</span></span> - <span><span class="testfont" style="text-transform: math-bold">ς</span>=<span>1D6D3</span></span> - <span><span class="testfont" style="text-transform: math-bold">σ</span>=<span>1D6D4</span></span> - <span><span class="testfont" style="text-transform: math-bold">τ</span>=<span>1D6D5</span></span> - <span><span class="testfont" style="text-transform: math-bold">υ</span>=<span>1D6D6</span></span> - <span><span class="testfont" style="text-transform: math-bold">φ</span>=<span>1D6D7</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">χ</span>=<span>1D6D8</span></span> - <span><span class="testfont" style="text-transform: math-bold">ψ</span>=<span>1D6D9</span></span> - <span><span class="testfont" style="text-transform: math-bold">ω</span>=<span>1D6DA</span></span> - <span><span class="testfont" style="text-transform: math-bold">ϑ</span>=<span>1D6DD</span></span> - <span><span class="testfont" style="text-transform: math-bold">ϕ</span>=<span>1D6DF</span></span> - <span><span class="testfont" style="text-transform: math-bold">ϖ</span>=<span>1D6E1</span></span> - <span><span class="testfont" style="text-transform: math-bold">Ϝ</span>=<span>1D7CA</span></span> - <span><span class="testfont" style="text-transform: math-bold">ϝ</span>=<span>1D7CB</span></span> - <span><span class="testfont" style="text-transform: math-bold">ϰ</span>=<span>1D6DE</span></span> - <span><span class="testfont" style="text-transform: math-bold">ϱ</span>=<span>1D6E0</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold">ϴ</span>=<span>1D6B9</span></span> - <span><span class="testfont" style="text-transform: math-bold">ϵ</span>=<span>1D6DC</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html.ini deleted file mode 100644 index 9b69ed9..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-bold-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative-ref.html deleted file mode 100644 index 36339bd..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative-ref.html +++ /dev/null
@@ -1,79 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-bold-fraktur (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-bold-fraktur.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝕬</span>=<span>1D56C</span></span> - <span><span class="testfont">𝕭</span>=<span>1D56D</span></span> - <span><span class="testfont">𝕮</span>=<span>1D56E</span></span> - <span><span class="testfont">𝕯</span>=<span>1D56F</span></span> - <span><span class="testfont">𝕰</span>=<span>1D570</span></span> - <span><span class="testfont">𝕱</span>=<span>1D571</span></span> - <span><span class="testfont">𝕲</span>=<span>1D572</span></span> - <span><span class="testfont">𝕳</span>=<span>1D573</span></span> - <span><span class="testfont">𝕴</span>=<span>1D574</span></span> - <span><span class="testfont">𝕵</span>=<span>1D575</span></span><br/> - <span><span class="testfont">𝕶</span>=<span>1D576</span></span> - <span><span class="testfont">𝕷</span>=<span>1D577</span></span> - <span><span class="testfont">𝕸</span>=<span>1D578</span></span> - <span><span class="testfont">𝕹</span>=<span>1D579</span></span> - <span><span class="testfont">𝕺</span>=<span>1D57A</span></span> - <span><span class="testfont">𝕻</span>=<span>1D57B</span></span> - <span><span class="testfont">𝕼</span>=<span>1D57C</span></span> - <span><span class="testfont">𝕽</span>=<span>1D57D</span></span> - <span><span class="testfont">𝕾</span>=<span>1D57E</span></span> - <span><span class="testfont">𝕿</span>=<span>1D57F</span></span><br/> - <span><span class="testfont">𝖀</span>=<span>1D580</span></span> - <span><span class="testfont">𝖁</span>=<span>1D581</span></span> - <span><span class="testfont">𝖂</span>=<span>1D582</span></span> - <span><span class="testfont">𝖃</span>=<span>1D583</span></span> - <span><span class="testfont">𝖄</span>=<span>1D584</span></span> - <span><span class="testfont">𝖅</span>=<span>1D585</span></span> - <span><span class="testfont">𝖆</span>=<span>1D586</span></span> - <span><span class="testfont">𝖇</span>=<span>1D587</span></span> - <span><span class="testfont">𝖈</span>=<span>1D588</span></span> - <span><span class="testfont">𝖉</span>=<span>1D589</span></span><br/> - <span><span class="testfont">𝖊</span>=<span>1D58A</span></span> - <span><span class="testfont">𝖋</span>=<span>1D58B</span></span> - <span><span class="testfont">𝖌</span>=<span>1D58C</span></span> - <span><span class="testfont">𝖍</span>=<span>1D58D</span></span> - <span><span class="testfont">𝖎</span>=<span>1D58E</span></span> - <span><span class="testfont">𝖏</span>=<span>1D58F</span></span> - <span><span class="testfont">𝖐</span>=<span>1D590</span></span> - <span><span class="testfont">𝖑</span>=<span>1D591</span></span> - <span><span class="testfont">𝖒</span>=<span>1D592</span></span> - <span><span class="testfont">𝖓</span>=<span>1D593</span></span><br/> - <span><span class="testfont">𝖔</span>=<span>1D594</span></span> - <span><span class="testfont">𝖕</span>=<span>1D595</span></span> - <span><span class="testfont">𝖖</span>=<span>1D596</span></span> - <span><span class="testfont">𝖗</span>=<span>1D597</span></span> - <span><span class="testfont">𝖘</span>=<span>1D598</span></span> - <span><span class="testfont">𝖙</span>=<span>1D599</span></span> - <span><span class="testfont">𝖚</span>=<span>1D59A</span></span> - <span><span class="testfont">𝖛</span>=<span>1D59B</span></span> - <span><span class="testfont">𝖜</span>=<span>1D59C</span></span> - <span><span class="testfont">𝖝</span>=<span>1D59D</span></span><br/> - <span><span class="testfont">𝖞</span>=<span>1D59E</span></span> - <span><span class="testfont">𝖟</span>=<span>1D59F</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html deleted file mode 100644 index 76de945..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html +++ /dev/null
@@ -1,84 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-bold-fraktur</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#bold-fraktur-mappings"> -<link rel="match" href="text-transform-math-bold-fraktur-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-bold-fraktur' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-bold-fraktur.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-bold-fraktur">A</span>=<span>1D56C</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">B</span>=<span>1D56D</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">C</span>=<span>1D56E</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">D</span>=<span>1D56F</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">E</span>=<span>1D570</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">F</span>=<span>1D571</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">G</span>=<span>1D572</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">H</span>=<span>1D573</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">I</span>=<span>1D574</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">J</span>=<span>1D575</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-fraktur">K</span>=<span>1D576</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">L</span>=<span>1D577</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">M</span>=<span>1D578</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">N</span>=<span>1D579</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">O</span>=<span>1D57A</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">P</span>=<span>1D57B</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">Q</span>=<span>1D57C</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">R</span>=<span>1D57D</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">S</span>=<span>1D57E</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">T</span>=<span>1D57F</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-fraktur">U</span>=<span>1D580</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">V</span>=<span>1D581</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">W</span>=<span>1D582</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">X</span>=<span>1D583</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">Y</span>=<span>1D584</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">Z</span>=<span>1D585</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">a</span>=<span>1D586</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">b</span>=<span>1D587</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">c</span>=<span>1D588</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">d</span>=<span>1D589</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-fraktur">e</span>=<span>1D58A</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">f</span>=<span>1D58B</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">g</span>=<span>1D58C</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">h</span>=<span>1D58D</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">i</span>=<span>1D58E</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">j</span>=<span>1D58F</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">k</span>=<span>1D590</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">l</span>=<span>1D591</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">m</span>=<span>1D592</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">n</span>=<span>1D593</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-fraktur">o</span>=<span>1D594</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">p</span>=<span>1D595</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">q</span>=<span>1D596</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">r</span>=<span>1D597</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">s</span>=<span>1D598</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">t</span>=<span>1D599</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">u</span>=<span>1D59A</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">v</span>=<span>1D59B</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">w</span>=<span>1D59C</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">x</span>=<span>1D59D</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-fraktur">y</span>=<span>1D59E</span></span> - <span><span class="testfont" style="text-transform: math-bold-fraktur">z</span>=<span>1D59F</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html.ini deleted file mode 100644 index ae16ce3e..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-bold-fraktur-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative-ref.html deleted file mode 100644 index e4e70cf..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative-ref.html +++ /dev/null
@@ -1,137 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-bold-italic (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-bold-italic.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝝏</span>=<span>1D74F</span></span> - <span><span class="testfont">𝜵</span>=<span>1D735</span></span> - <span><span class="testfont">𝑨</span>=<span>1D468</span></span> - <span><span class="testfont">𝑩</span>=<span>1D469</span></span> - <span><span class="testfont">𝑪</span>=<span>1D46A</span></span> - <span><span class="testfont">𝑫</span>=<span>1D46B</span></span> - <span><span class="testfont">𝑬</span>=<span>1D46C</span></span> - <span><span class="testfont">𝑭</span>=<span>1D46D</span></span> - <span><span class="testfont">𝑮</span>=<span>1D46E</span></span> - <span><span class="testfont">𝑯</span>=<span>1D46F</span></span><br/> - <span><span class="testfont">𝑰</span>=<span>1D470</span></span> - <span><span class="testfont">𝑱</span>=<span>1D471</span></span> - <span><span class="testfont">𝑲</span>=<span>1D472</span></span> - <span><span class="testfont">𝑳</span>=<span>1D473</span></span> - <span><span class="testfont">𝑴</span>=<span>1D474</span></span> - <span><span class="testfont">𝑵</span>=<span>1D475</span></span> - <span><span class="testfont">𝑶</span>=<span>1D476</span></span> - <span><span class="testfont">𝑷</span>=<span>1D477</span></span> - <span><span class="testfont">𝑸</span>=<span>1D478</span></span> - <span><span class="testfont">𝑹</span>=<span>1D479</span></span><br/> - <span><span class="testfont">𝑺</span>=<span>1D47A</span></span> - <span><span class="testfont">𝑻</span>=<span>1D47B</span></span> - <span><span class="testfont">𝑼</span>=<span>1D47C</span></span> - <span><span class="testfont">𝑽</span>=<span>1D47D</span></span> - <span><span class="testfont">𝑾</span>=<span>1D47E</span></span> - <span><span class="testfont">𝑿</span>=<span>1D47F</span></span> - <span><span class="testfont">𝒀</span>=<span>1D480</span></span> - <span><span class="testfont">𝒁</span>=<span>1D481</span></span> - <span><span class="testfont">𝒂</span>=<span>1D482</span></span> - <span><span class="testfont">𝒃</span>=<span>1D483</span></span><br/> - <span><span class="testfont">𝒄</span>=<span>1D484</span></span> - <span><span class="testfont">𝒅</span>=<span>1D485</span></span> - <span><span class="testfont">𝒆</span>=<span>1D486</span></span> - <span><span class="testfont">𝒇</span>=<span>1D487</span></span> - <span><span class="testfont">𝒈</span>=<span>1D488</span></span> - <span><span class="testfont">𝒉</span>=<span>1D489</span></span> - <span><span class="testfont">𝒊</span>=<span>1D48A</span></span> - <span><span class="testfont">𝒋</span>=<span>1D48B</span></span> - <span><span class="testfont">𝒌</span>=<span>1D48C</span></span> - <span><span class="testfont">𝒍</span>=<span>1D48D</span></span><br/> - <span><span class="testfont">𝒎</span>=<span>1D48E</span></span> - <span><span class="testfont">𝒏</span>=<span>1D48F</span></span> - <span><span class="testfont">𝒐</span>=<span>1D490</span></span> - <span><span class="testfont">𝒑</span>=<span>1D491</span></span> - <span><span class="testfont">𝒒</span>=<span>1D492</span></span> - <span><span class="testfont">𝒓</span>=<span>1D493</span></span> - <span><span class="testfont">𝒔</span>=<span>1D494</span></span> - <span><span class="testfont">𝒕</span>=<span>1D495</span></span> - <span><span class="testfont">𝒖</span>=<span>1D496</span></span> - <span><span class="testfont">𝒗</span>=<span>1D497</span></span><br/> - <span><span class="testfont">𝒘</span>=<span>1D498</span></span> - <span><span class="testfont">𝒙</span>=<span>1D499</span></span> - <span><span class="testfont">𝒚</span>=<span>1D49A</span></span> - <span><span class="testfont">𝒛</span>=<span>1D49B</span></span> - <span><span class="testfont">𝜜</span>=<span>1D71C</span></span> - <span><span class="testfont">𝜝</span>=<span>1D71D</span></span> - <span><span class="testfont">𝜞</span>=<span>1D71E</span></span> - <span><span class="testfont">𝜟</span>=<span>1D71F</span></span> - <span><span class="testfont">𝜠</span>=<span>1D720</span></span> - <span><span class="testfont">𝜡</span>=<span>1D721</span></span><br/> - <span><span class="testfont">𝜢</span>=<span>1D722</span></span> - <span><span class="testfont">𝜣</span>=<span>1D723</span></span> - <span><span class="testfont">𝜤</span>=<span>1D724</span></span> - <span><span class="testfont">𝜥</span>=<span>1D725</span></span> - <span><span class="testfont">𝜦</span>=<span>1D726</span></span> - <span><span class="testfont">𝜧</span>=<span>1D727</span></span> - <span><span class="testfont">𝜨</span>=<span>1D728</span></span> - <span><span class="testfont">𝜩</span>=<span>1D729</span></span> - <span><span class="testfont">𝜪</span>=<span>1D72A</span></span> - <span><span class="testfont">𝜫</span>=<span>1D72B</span></span><br/> - <span><span class="testfont">𝜬</span>=<span>1D72C</span></span> - <span><span class="testfont">𝜮</span>=<span>1D72E</span></span> - <span><span class="testfont">𝜯</span>=<span>1D72F</span></span> - <span><span class="testfont">𝜰</span>=<span>1D730</span></span> - <span><span class="testfont">𝜱</span>=<span>1D731</span></span> - <span><span class="testfont">𝜲</span>=<span>1D732</span></span> - <span><span class="testfont">𝜳</span>=<span>1D733</span></span> - <span><span class="testfont">𝜴</span>=<span>1D734</span></span> - <span><span class="testfont">𝜶</span>=<span>1D736</span></span> - <span><span class="testfont">𝜷</span>=<span>1D737</span></span><br/> - <span><span class="testfont">𝜸</span>=<span>1D738</span></span> - <span><span class="testfont">𝜹</span>=<span>1D739</span></span> - <span><span class="testfont">𝜺</span>=<span>1D73A</span></span> - <span><span class="testfont">𝜻</span>=<span>1D73B</span></span> - <span><span class="testfont">𝜼</span>=<span>1D73C</span></span> - <span><span class="testfont">𝜽</span>=<span>1D73D</span></span> - <span><span class="testfont">𝜾</span>=<span>1D73E</span></span> - <span><span class="testfont">𝜿</span>=<span>1D73F</span></span> - <span><span class="testfont">𝝀</span>=<span>1D740</span></span> - <span><span class="testfont">𝝁</span>=<span>1D741</span></span><br/> - <span><span class="testfont">𝝂</span>=<span>1D742</span></span> - <span><span class="testfont">𝝃</span>=<span>1D743</span></span> - <span><span class="testfont">𝝄</span>=<span>1D744</span></span> - <span><span class="testfont">𝝅</span>=<span>1D745</span></span> - <span><span class="testfont">𝝆</span>=<span>1D746</span></span> - <span><span class="testfont">𝝇</span>=<span>1D747</span></span> - <span><span class="testfont">𝝈</span>=<span>1D748</span></span> - <span><span class="testfont">𝝉</span>=<span>1D749</span></span> - <span><span class="testfont">𝝊</span>=<span>1D74A</span></span> - <span><span class="testfont">𝝋</span>=<span>1D74B</span></span><br/> - <span><span class="testfont">𝝌</span>=<span>1D74C</span></span> - <span><span class="testfont">𝝍</span>=<span>1D74D</span></span> - <span><span class="testfont">𝝎</span>=<span>1D74E</span></span> - <span><span class="testfont">𝝑</span>=<span>1D751</span></span> - <span><span class="testfont">𝝓</span>=<span>1D753</span></span> - <span><span class="testfont">𝝕</span>=<span>1D755</span></span> - <span><span class="testfont">𝝒</span>=<span>1D752</span></span> - <span><span class="testfont">𝝔</span>=<span>1D754</span></span> - <span><span class="testfont">𝜭</span>=<span>1D72D</span></span> - <span><span class="testfont">𝝐</span>=<span>1D750</span></span><br/> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html deleted file mode 100644 index 9a03fc7..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html +++ /dev/null
@@ -1,142 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-bold-italic</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#bold-italic-mappings"> -<link rel="match" href="text-transform-math-bold-italic-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-bold-italic' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-bold-italic.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-bold-italic">∂</span>=<span>1D74F</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">∇</span>=<span>1D735</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">A</span>=<span>1D468</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">B</span>=<span>1D469</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">C</span>=<span>1D46A</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">D</span>=<span>1D46B</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">E</span>=<span>1D46C</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">F</span>=<span>1D46D</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">G</span>=<span>1D46E</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">H</span>=<span>1D46F</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-italic">I</span>=<span>1D470</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">J</span>=<span>1D471</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">K</span>=<span>1D472</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">L</span>=<span>1D473</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">M</span>=<span>1D474</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">N</span>=<span>1D475</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">O</span>=<span>1D476</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">P</span>=<span>1D477</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Q</span>=<span>1D478</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">R</span>=<span>1D479</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-italic">S</span>=<span>1D47A</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">T</span>=<span>1D47B</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">U</span>=<span>1D47C</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">V</span>=<span>1D47D</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">W</span>=<span>1D47E</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">X</span>=<span>1D47F</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Y</span>=<span>1D480</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Z</span>=<span>1D481</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">a</span>=<span>1D482</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">b</span>=<span>1D483</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-italic">c</span>=<span>1D484</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">d</span>=<span>1D485</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">e</span>=<span>1D486</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">f</span>=<span>1D487</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">g</span>=<span>1D488</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">h</span>=<span>1D489</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">i</span>=<span>1D48A</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">j</span>=<span>1D48B</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">k</span>=<span>1D48C</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">l</span>=<span>1D48D</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-italic">m</span>=<span>1D48E</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">n</span>=<span>1D48F</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">o</span>=<span>1D490</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">p</span>=<span>1D491</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">q</span>=<span>1D492</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">r</span>=<span>1D493</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">s</span>=<span>1D494</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">t</span>=<span>1D495</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">u</span>=<span>1D496</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">v</span>=<span>1D497</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-italic">w</span>=<span>1D498</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">x</span>=<span>1D499</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">y</span>=<span>1D49A</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">z</span>=<span>1D49B</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Α</span>=<span>1D71C</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Β</span>=<span>1D71D</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Γ</span>=<span>1D71E</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Δ</span>=<span>1D71F</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Ε</span>=<span>1D720</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Ζ</span>=<span>1D721</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-italic">Η</span>=<span>1D722</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Θ</span>=<span>1D723</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Ι</span>=<span>1D724</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Κ</span>=<span>1D725</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Λ</span>=<span>1D726</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Μ</span>=<span>1D727</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Ν</span>=<span>1D728</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Ξ</span>=<span>1D729</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Ο</span>=<span>1D72A</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Π</span>=<span>1D72B</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-italic">Ρ</span>=<span>1D72C</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Σ</span>=<span>1D72E</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Τ</span>=<span>1D72F</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Υ</span>=<span>1D730</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Φ</span>=<span>1D731</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Χ</span>=<span>1D732</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Ψ</span>=<span>1D733</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">Ω</span>=<span>1D734</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">α</span>=<span>1D736</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">β</span>=<span>1D737</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-italic">γ</span>=<span>1D738</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">δ</span>=<span>1D739</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ε</span>=<span>1D73A</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ζ</span>=<span>1D73B</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">η</span>=<span>1D73C</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">θ</span>=<span>1D73D</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ι</span>=<span>1D73E</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">κ</span>=<span>1D73F</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">λ</span>=<span>1D740</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">μ</span>=<span>1D741</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-italic">ν</span>=<span>1D742</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ξ</span>=<span>1D743</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ο</span>=<span>1D744</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">π</span>=<span>1D745</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ρ</span>=<span>1D746</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ς</span>=<span>1D747</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">σ</span>=<span>1D748</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">τ</span>=<span>1D749</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">υ</span>=<span>1D74A</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">φ</span>=<span>1D74B</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-italic">χ</span>=<span>1D74C</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ψ</span>=<span>1D74D</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ω</span>=<span>1D74E</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ϑ</span>=<span>1D751</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ϕ</span>=<span>1D753</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ϖ</span>=<span>1D755</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ϰ</span>=<span>1D752</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ϱ</span>=<span>1D754</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ϴ</span>=<span>1D72D</span></span> - <span><span class="testfont" style="text-transform: math-bold-italic">ϵ</span>=<span>1D750</span></span><br/> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html.ini deleted file mode 100644 index 7424f50..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-bold-italic-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative-ref.html deleted file mode 100644 index e83fa69..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative-ref.html +++ /dev/null
@@ -1,147 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-bold-sans-serif (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-bold-sans-serif.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝞉</span>=<span>1D789</span></span> - <span><span class="testfont">𝝯</span>=<span>1D76F</span></span> - <span><span class="testfont">𝟬</span>=<span>1D7EC</span></span> - <span><span class="testfont">𝟭</span>=<span>1D7ED</span></span> - <span><span class="testfont">𝟮</span>=<span>1D7EE</span></span> - <span><span class="testfont">𝟯</span>=<span>1D7EF</span></span> - <span><span class="testfont">𝟰</span>=<span>1D7F0</span></span> - <span><span class="testfont">𝟱</span>=<span>1D7F1</span></span> - <span><span class="testfont">𝟲</span>=<span>1D7F2</span></span> - <span><span class="testfont">𝟳</span>=<span>1D7F3</span></span><br/> - <span><span class="testfont">𝟴</span>=<span>1D7F4</span></span> - <span><span class="testfont">𝟵</span>=<span>1D7F5</span></span> - <span><span class="testfont">𝗔</span>=<span>1D5D4</span></span> - <span><span class="testfont">𝗕</span>=<span>1D5D5</span></span> - <span><span class="testfont">𝗖</span>=<span>1D5D6</span></span> - <span><span class="testfont">𝗗</span>=<span>1D5D7</span></span> - <span><span class="testfont">𝗘</span>=<span>1D5D8</span></span> - <span><span class="testfont">𝗙</span>=<span>1D5D9</span></span> - <span><span class="testfont">𝗚</span>=<span>1D5DA</span></span> - <span><span class="testfont">𝗛</span>=<span>1D5DB</span></span><br/> - <span><span class="testfont">𝗜</span>=<span>1D5DC</span></span> - <span><span class="testfont">𝗝</span>=<span>1D5DD</span></span> - <span><span class="testfont">𝗞</span>=<span>1D5DE</span></span> - <span><span class="testfont">𝗟</span>=<span>1D5DF</span></span> - <span><span class="testfont">𝗠</span>=<span>1D5E0</span></span> - <span><span class="testfont">𝗡</span>=<span>1D5E1</span></span> - <span><span class="testfont">𝗢</span>=<span>1D5E2</span></span> - <span><span class="testfont">𝗣</span>=<span>1D5E3</span></span> - <span><span class="testfont">𝗤</span>=<span>1D5E4</span></span> - <span><span class="testfont">𝗥</span>=<span>1D5E5</span></span><br/> - <span><span class="testfont">𝗦</span>=<span>1D5E6</span></span> - <span><span class="testfont">𝗧</span>=<span>1D5E7</span></span> - <span><span class="testfont">𝗨</span>=<span>1D5E8</span></span> - <span><span class="testfont">𝗩</span>=<span>1D5E9</span></span> - <span><span class="testfont">𝗪</span>=<span>1D5EA</span></span> - <span><span class="testfont">𝗫</span>=<span>1D5EB</span></span> - <span><span class="testfont">𝗬</span>=<span>1D5EC</span></span> - <span><span class="testfont">𝗭</span>=<span>1D5ED</span></span> - <span><span class="testfont">𝗮</span>=<span>1D5EE</span></span> - <span><span class="testfont">𝗯</span>=<span>1D5EF</span></span><br/> - <span><span class="testfont">𝗰</span>=<span>1D5F0</span></span> - <span><span class="testfont">𝗱</span>=<span>1D5F1</span></span> - <span><span class="testfont">𝗲</span>=<span>1D5F2</span></span> - <span><span class="testfont">𝗳</span>=<span>1D5F3</span></span> - <span><span class="testfont">𝗴</span>=<span>1D5F4</span></span> - <span><span class="testfont">𝗵</span>=<span>1D5F5</span></span> - <span><span class="testfont">𝗶</span>=<span>1D5F6</span></span> - <span><span class="testfont">𝗷</span>=<span>1D5F7</span></span> - <span><span class="testfont">𝗸</span>=<span>1D5F8</span></span> - <span><span class="testfont">𝗹</span>=<span>1D5F9</span></span><br/> - <span><span class="testfont">𝗺</span>=<span>1D5FA</span></span> - <span><span class="testfont">𝗻</span>=<span>1D5FB</span></span> - <span><span class="testfont">𝗼</span>=<span>1D5FC</span></span> - <span><span class="testfont">𝗽</span>=<span>1D5FD</span></span> - <span><span class="testfont">𝗾</span>=<span>1D5FE</span></span> - <span><span class="testfont">𝗿</span>=<span>1D5FF</span></span> - <span><span class="testfont">𝘀</span>=<span>1D600</span></span> - <span><span class="testfont">𝘁</span>=<span>1D601</span></span> - <span><span class="testfont">𝘂</span>=<span>1D602</span></span> - <span><span class="testfont">𝘃</span>=<span>1D603</span></span><br/> - <span><span class="testfont">𝘄</span>=<span>1D604</span></span> - <span><span class="testfont">𝘅</span>=<span>1D605</span></span> - <span><span class="testfont">𝘆</span>=<span>1D606</span></span> - <span><span class="testfont">𝘇</span>=<span>1D607</span></span> - <span><span class="testfont">𝝖</span>=<span>1D756</span></span> - <span><span class="testfont">𝝗</span>=<span>1D757</span></span> - <span><span class="testfont">𝝘</span>=<span>1D758</span></span> - <span><span class="testfont">𝝙</span>=<span>1D759</span></span> - <span><span class="testfont">𝝚</span>=<span>1D75A</span></span> - <span><span class="testfont">𝝛</span>=<span>1D75B</span></span><br/> - <span><span class="testfont">𝝜</span>=<span>1D75C</span></span> - <span><span class="testfont">𝝝</span>=<span>1D75D</span></span> - <span><span class="testfont">𝝞</span>=<span>1D75E</span></span> - <span><span class="testfont">𝝟</span>=<span>1D75F</span></span> - <span><span class="testfont">𝝠</span>=<span>1D760</span></span> - <span><span class="testfont">𝝡</span>=<span>1D761</span></span> - <span><span class="testfont">𝝢</span>=<span>1D762</span></span> - <span><span class="testfont">𝝣</span>=<span>1D763</span></span> - <span><span class="testfont">𝝤</span>=<span>1D764</span></span> - <span><span class="testfont">𝝥</span>=<span>1D765</span></span><br/> - <span><span class="testfont">𝝦</span>=<span>1D766</span></span> - <span><span class="testfont">𝝨</span>=<span>1D768</span></span> - <span><span class="testfont">𝝩</span>=<span>1D769</span></span> - <span><span class="testfont">𝝪</span>=<span>1D76A</span></span> - <span><span class="testfont">𝝫</span>=<span>1D76B</span></span> - <span><span class="testfont">𝝬</span>=<span>1D76C</span></span> - <span><span class="testfont">𝝭</span>=<span>1D76D</span></span> - <span><span class="testfont">𝝮</span>=<span>1D76E</span></span> - <span><span class="testfont">𝝰</span>=<span>1D770</span></span> - <span><span class="testfont">𝝱</span>=<span>1D771</span></span><br/> - <span><span class="testfont">𝝲</span>=<span>1D772</span></span> - <span><span class="testfont">𝝳</span>=<span>1D773</span></span> - <span><span class="testfont">𝝴</span>=<span>1D774</span></span> - <span><span class="testfont">𝝵</span>=<span>1D775</span></span> - <span><span class="testfont">𝝶</span>=<span>1D776</span></span> - <span><span class="testfont">𝝷</span>=<span>1D777</span></span> - <span><span class="testfont">𝝸</span>=<span>1D778</span></span> - <span><span class="testfont">𝝹</span>=<span>1D779</span></span> - <span><span class="testfont">𝝺</span>=<span>1D77A</span></span> - <span><span class="testfont">𝝻</span>=<span>1D77B</span></span><br/> - <span><span class="testfont">𝝼</span>=<span>1D77C</span></span> - <span><span class="testfont">𝝽</span>=<span>1D77D</span></span> - <span><span class="testfont">𝝾</span>=<span>1D77E</span></span> - <span><span class="testfont">𝝿</span>=<span>1D77F</span></span> - <span><span class="testfont">𝞀</span>=<span>1D780</span></span> - <span><span class="testfont">𝞁</span>=<span>1D781</span></span> - <span><span class="testfont">𝞂</span>=<span>1D782</span></span> - <span><span class="testfont">𝞃</span>=<span>1D783</span></span> - <span><span class="testfont">𝞄</span>=<span>1D784</span></span> - <span><span class="testfont">𝞅</span>=<span>1D785</span></span><br/> - <span><span class="testfont">𝞆</span>=<span>1D786</span></span> - <span><span class="testfont">𝞇</span>=<span>1D787</span></span> - <span><span class="testfont">𝞈</span>=<span>1D788</span></span> - <span><span class="testfont">𝞋</span>=<span>1D78B</span></span> - <span><span class="testfont">𝞍</span>=<span>1D78D</span></span> - <span><span class="testfont">𝞏</span>=<span>1D78F</span></span> - <span><span class="testfont">𝞌</span>=<span>1D78C</span></span> - <span><span class="testfont">𝞎</span>=<span>1D78E</span></span> - <span><span class="testfont">𝝧</span>=<span>1D767</span></span> - <span><span class="testfont">𝞊</span>=<span>1D78A</span></span><br/> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html deleted file mode 100644 index 3cbfdb9..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html +++ /dev/null
@@ -1,152 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-bold-sans-serif</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#bold-sans-serif-mappings"> -<link rel="match" href="text-transform-math-bold-sans-serif-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-bold-sans-serif' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-bold-sans-serif.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">∂</span>=<span>1D789</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">∇</span>=<span>1D76F</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">0</span>=<span>1D7EC</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">1</span>=<span>1D7ED</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">2</span>=<span>1D7EE</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">3</span>=<span>1D7EF</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">4</span>=<span>1D7F0</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">5</span>=<span>1D7F1</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">6</span>=<span>1D7F2</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">7</span>=<span>1D7F3</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">8</span>=<span>1D7F4</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">9</span>=<span>1D7F5</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">A</span>=<span>1D5D4</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">B</span>=<span>1D5D5</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">C</span>=<span>1D5D6</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">D</span>=<span>1D5D7</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">E</span>=<span>1D5D8</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">F</span>=<span>1D5D9</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">G</span>=<span>1D5DA</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">H</span>=<span>1D5DB</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">I</span>=<span>1D5DC</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">J</span>=<span>1D5DD</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">K</span>=<span>1D5DE</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">L</span>=<span>1D5DF</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">M</span>=<span>1D5E0</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">N</span>=<span>1D5E1</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">O</span>=<span>1D5E2</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">P</span>=<span>1D5E3</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Q</span>=<span>1D5E4</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">R</span>=<span>1D5E5</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">S</span>=<span>1D5E6</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">T</span>=<span>1D5E7</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">U</span>=<span>1D5E8</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">V</span>=<span>1D5E9</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">W</span>=<span>1D5EA</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">X</span>=<span>1D5EB</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Y</span>=<span>1D5EC</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Z</span>=<span>1D5ED</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">a</span>=<span>1D5EE</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">b</span>=<span>1D5EF</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">c</span>=<span>1D5F0</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">d</span>=<span>1D5F1</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">e</span>=<span>1D5F2</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">f</span>=<span>1D5F3</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">g</span>=<span>1D5F4</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">h</span>=<span>1D5F5</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">i</span>=<span>1D5F6</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">j</span>=<span>1D5F7</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">k</span>=<span>1D5F8</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">l</span>=<span>1D5F9</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">m</span>=<span>1D5FA</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">n</span>=<span>1D5FB</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">o</span>=<span>1D5FC</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">p</span>=<span>1D5FD</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">q</span>=<span>1D5FE</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">r</span>=<span>1D5FF</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">s</span>=<span>1D600</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">t</span>=<span>1D601</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">u</span>=<span>1D602</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">v</span>=<span>1D603</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">w</span>=<span>1D604</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">x</span>=<span>1D605</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">y</span>=<span>1D606</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">z</span>=<span>1D607</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Α</span>=<span>1D756</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Β</span>=<span>1D757</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Γ</span>=<span>1D758</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Δ</span>=<span>1D759</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Ε</span>=<span>1D75A</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Ζ</span>=<span>1D75B</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Η</span>=<span>1D75C</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Θ</span>=<span>1D75D</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Ι</span>=<span>1D75E</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Κ</span>=<span>1D75F</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Λ</span>=<span>1D760</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Μ</span>=<span>1D761</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Ν</span>=<span>1D762</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Ξ</span>=<span>1D763</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Ο</span>=<span>1D764</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Π</span>=<span>1D765</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Ρ</span>=<span>1D766</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Σ</span>=<span>1D768</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Τ</span>=<span>1D769</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Υ</span>=<span>1D76A</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Φ</span>=<span>1D76B</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Χ</span>=<span>1D76C</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Ψ</span>=<span>1D76D</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">Ω</span>=<span>1D76E</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">α</span>=<span>1D770</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">β</span>=<span>1D771</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">γ</span>=<span>1D772</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">δ</span>=<span>1D773</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ε</span>=<span>1D774</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ζ</span>=<span>1D775</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">η</span>=<span>1D776</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">θ</span>=<span>1D777</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ι</span>=<span>1D778</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">κ</span>=<span>1D779</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">λ</span>=<span>1D77A</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">μ</span>=<span>1D77B</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ν</span>=<span>1D77C</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ξ</span>=<span>1D77D</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ο</span>=<span>1D77E</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">π</span>=<span>1D77F</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ρ</span>=<span>1D780</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ς</span>=<span>1D781</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">σ</span>=<span>1D782</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">τ</span>=<span>1D783</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">υ</span>=<span>1D784</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">φ</span>=<span>1D785</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">χ</span>=<span>1D786</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ψ</span>=<span>1D787</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ω</span>=<span>1D788</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ϑ</span>=<span>1D78B</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ϕ</span>=<span>1D78D</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ϖ</span>=<span>1D78F</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ϰ</span>=<span>1D78C</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ϱ</span>=<span>1D78E</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ϴ</span>=<span>1D767</span></span> - <span><span class="testfont" style="text-transform: math-bold-sans-serif">ϵ</span>=<span>1D78A</span></span><br/> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html.ini deleted file mode 100644 index e1bba62..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-bold-sans-serif-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative-ref.html deleted file mode 100644 index 1b5a74c..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative-ref.html +++ /dev/null
@@ -1,79 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-bold-script (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-bold-script.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝓐</span>=<span>1D4D0</span></span> - <span><span class="testfont">𝓑</span>=<span>1D4D1</span></span> - <span><span class="testfont">𝓒</span>=<span>1D4D2</span></span> - <span><span class="testfont">𝓓</span>=<span>1D4D3</span></span> - <span><span class="testfont">𝓔</span>=<span>1D4D4</span></span> - <span><span class="testfont">𝓕</span>=<span>1D4D5</span></span> - <span><span class="testfont">𝓖</span>=<span>1D4D6</span></span> - <span><span class="testfont">𝓗</span>=<span>1D4D7</span></span> - <span><span class="testfont">𝓘</span>=<span>1D4D8</span></span> - <span><span class="testfont">𝓙</span>=<span>1D4D9</span></span><br/> - <span><span class="testfont">𝓚</span>=<span>1D4DA</span></span> - <span><span class="testfont">𝓛</span>=<span>1D4DB</span></span> - <span><span class="testfont">𝓜</span>=<span>1D4DC</span></span> - <span><span class="testfont">𝓝</span>=<span>1D4DD</span></span> - <span><span class="testfont">𝓞</span>=<span>1D4DE</span></span> - <span><span class="testfont">𝓟</span>=<span>1D4DF</span></span> - <span><span class="testfont">𝓠</span>=<span>1D4E0</span></span> - <span><span class="testfont">𝓡</span>=<span>1D4E1</span></span> - <span><span class="testfont">𝓢</span>=<span>1D4E2</span></span> - <span><span class="testfont">𝓣</span>=<span>1D4E3</span></span><br/> - <span><span class="testfont">𝓤</span>=<span>1D4E4</span></span> - <span><span class="testfont">𝓥</span>=<span>1D4E5</span></span> - <span><span class="testfont">𝓦</span>=<span>1D4E6</span></span> - <span><span class="testfont">𝓧</span>=<span>1D4E7</span></span> - <span><span class="testfont">𝓨</span>=<span>1D4E8</span></span> - <span><span class="testfont">𝓩</span>=<span>1D4E9</span></span> - <span><span class="testfont">𝓪</span>=<span>1D4EA</span></span> - <span><span class="testfont">𝓫</span>=<span>1D4EB</span></span> - <span><span class="testfont">𝓬</span>=<span>1D4EC</span></span> - <span><span class="testfont">𝓭</span>=<span>1D4ED</span></span><br/> - <span><span class="testfont">𝓮</span>=<span>1D4EE</span></span> - <span><span class="testfont">𝓯</span>=<span>1D4EF</span></span> - <span><span class="testfont">𝓰</span>=<span>1D4F0</span></span> - <span><span class="testfont">𝓱</span>=<span>1D4F1</span></span> - <span><span class="testfont">𝓲</span>=<span>1D4F2</span></span> - <span><span class="testfont">𝓳</span>=<span>1D4F3</span></span> - <span><span class="testfont">𝓴</span>=<span>1D4F4</span></span> - <span><span class="testfont">𝓵</span>=<span>1D4F5</span></span> - <span><span class="testfont">𝓶</span>=<span>1D4F6</span></span> - <span><span class="testfont">𝓷</span>=<span>1D4F7</span></span><br/> - <span><span class="testfont">𝓸</span>=<span>1D4F8</span></span> - <span><span class="testfont">𝓹</span>=<span>1D4F9</span></span> - <span><span class="testfont">𝓺</span>=<span>1D4FA</span></span> - <span><span class="testfont">𝓻</span>=<span>1D4FB</span></span> - <span><span class="testfont">𝓼</span>=<span>1D4FC</span></span> - <span><span class="testfont">𝓽</span>=<span>1D4FD</span></span> - <span><span class="testfont">𝓾</span>=<span>1D4FE</span></span> - <span><span class="testfont">𝓿</span>=<span>1D4FF</span></span> - <span><span class="testfont">𝔀</span>=<span>1D500</span></span> - <span><span class="testfont">𝔁</span>=<span>1D501</span></span><br/> - <span><span class="testfont">𝔂</span>=<span>1D502</span></span> - <span><span class="testfont">𝔃</span>=<span>1D503</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html deleted file mode 100644 index b61a573e..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html +++ /dev/null
@@ -1,84 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-bold-script</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#bold-script-mappings"> -<link rel="match" href="text-transform-math-bold-script-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-bold-script' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-bold-script.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-bold-script">A</span>=<span>1D4D0</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">B</span>=<span>1D4D1</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">C</span>=<span>1D4D2</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">D</span>=<span>1D4D3</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">E</span>=<span>1D4D4</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">F</span>=<span>1D4D5</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">G</span>=<span>1D4D6</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">H</span>=<span>1D4D7</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">I</span>=<span>1D4D8</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">J</span>=<span>1D4D9</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-script">K</span>=<span>1D4DA</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">L</span>=<span>1D4DB</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">M</span>=<span>1D4DC</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">N</span>=<span>1D4DD</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">O</span>=<span>1D4DE</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">P</span>=<span>1D4DF</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">Q</span>=<span>1D4E0</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">R</span>=<span>1D4E1</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">S</span>=<span>1D4E2</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">T</span>=<span>1D4E3</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-script">U</span>=<span>1D4E4</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">V</span>=<span>1D4E5</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">W</span>=<span>1D4E6</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">X</span>=<span>1D4E7</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">Y</span>=<span>1D4E8</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">Z</span>=<span>1D4E9</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">a</span>=<span>1D4EA</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">b</span>=<span>1D4EB</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">c</span>=<span>1D4EC</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">d</span>=<span>1D4ED</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-script">e</span>=<span>1D4EE</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">f</span>=<span>1D4EF</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">g</span>=<span>1D4F0</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">h</span>=<span>1D4F1</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">i</span>=<span>1D4F2</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">j</span>=<span>1D4F3</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">k</span>=<span>1D4F4</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">l</span>=<span>1D4F5</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">m</span>=<span>1D4F6</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">n</span>=<span>1D4F7</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-script">o</span>=<span>1D4F8</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">p</span>=<span>1D4F9</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">q</span>=<span>1D4FA</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">r</span>=<span>1D4FB</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">s</span>=<span>1D4FC</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">t</span>=<span>1D4FD</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">u</span>=<span>1D4FE</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">v</span>=<span>1D4FF</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">w</span>=<span>1D500</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">x</span>=<span>1D501</span></span><br/> - <span><span class="testfont" style="text-transform: math-bold-script">y</span>=<span>1D502</span></span> - <span><span class="testfont" style="text-transform: math-bold-script">z</span>=<span>1D503</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html.ini deleted file mode 100644 index 56a28ee..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-bold-script-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative-ref.html deleted file mode 100644 index 09f137a..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative-ref.html +++ /dev/null
@@ -1,114 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-double-struck (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-double-struck.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𞺡</span>=<span>1EEA1</span></span> - <span><span class="testfont">𞺵</span>=<span>1EEB5</span></span> - <span><span class="testfont">𞺶</span>=<span>1EEB6</span></span> - <span><span class="testfont">𞺢</span>=<span>1EEA2</span></span> - <span><span class="testfont">𞺧</span>=<span>1EEA7</span></span> - <span><span class="testfont">𞺷</span>=<span>1EEB7</span></span> - <span><span class="testfont">𞺣</span>=<span>1EEA3</span></span> - <span><span class="testfont">𞺸</span>=<span>1EEB8</span></span> - <span><span class="testfont">𞺳</span>=<span>1EEB3</span></span> - <span><span class="testfont">𞺦</span>=<span>1EEA6</span></span><br/> - <span><span class="testfont">𝟛</span>=<span>1D7DB</span></span> - <span><span class="testfont">𝟜</span>=<span>1D7DC</span></span> - <span><span class="testfont">𝟝</span>=<span>1D7DD</span></span> - <span><span class="testfont">𞺹</span>=<span>1EEB9</span></span> - <span><span class="testfont">𞺨</span>=<span>1EEA8</span></span> - <span><span class="testfont">𞺺</span>=<span>1EEBA</span></span> - <span><span class="testfont">𝟡</span>=<span>1D7E1</span></span> - <span><span class="testfont">𞺻</span>=<span>1EEBB</span></span> - <span><span class="testfont">𞺰</span>=<span>1EEB0</span></span> - <span><span class="testfont">𞺲</span>=<span>1EEB2</span></span><br/> - <span><span class="testfont">ℂ</span>=<span>02102</span></span> - <span><span class="testfont">𞺫</span>=<span>1EEAB</span></span> - <span><span class="testfont">𞺬</span>=<span>1EEAC</span></span> - <span><span class="testfont">𞺭</span>=<span>1EEAD</span></span> - <span><span class="testfont">𝔾</span>=<span>1D53E</span></span> - <span><span class="testfont">𞺥</span>=<span>1EEA5</span></span> - <span><span class="testfont">𝕀</span>=<span>1D540</span></span> - <span><span class="testfont">𞺩</span>=<span>1EEA9</span></span> - <span><span class="testfont">𝕂</span>=<span>1D542</span></span> - <span><span class="testfont">𝕃</span>=<span>1D543</span></span><br/> - <span><span class="testfont">𝕄</span>=<span>1D544</span></span> - <span><span class="testfont">ℕ</span>=<span>02115</span></span> - <span><span class="testfont">𝕆</span>=<span>1D546</span></span> - <span><span class="testfont">ℙ</span>=<span>02119</span></span> - <span><span class="testfont">ℚ</span>=<span>0211A</span></span> - <span><span class="testfont">ℝ</span>=<span>0211D</span></span> - <span><span class="testfont">𝕊</span>=<span>1D54A</span></span> - <span><span class="testfont">𝕋</span>=<span>1D54B</span></span> - <span><span class="testfont">𝕌</span>=<span>1D54C</span></span> - <span><span class="testfont">𝕍</span>=<span>1D54D</span></span><br/> - <span><span class="testfont">𝕎</span>=<span>1D54E</span></span> - <span><span class="testfont">𝕏</span>=<span>1D54F</span></span> - <span><span class="testfont">𝕐</span>=<span>1D550</span></span> - <span><span class="testfont">ℤ</span>=<span>02124</span></span> - <span><span class="testfont">𝕒</span>=<span>1D552</span></span> - <span><span class="testfont">𝕓</span>=<span>1D553</span></span> - <span><span class="testfont">𝕔</span>=<span>1D554</span></span> - <span><span class="testfont">𝕕</span>=<span>1D555</span></span> - <span><span class="testfont">𝕖</span>=<span>1D556</span></span> - <span><span class="testfont">𝕗</span>=<span>1D557</span></span><br/> - <span><span class="testfont">𝕘</span>=<span>1D558</span></span> - <span><span class="testfont">𝕙</span>=<span>1D559</span></span> - <span><span class="testfont">𝕚</span>=<span>1D55A</span></span> - <span><span class="testfont">𝕛</span>=<span>1D55B</span></span> - <span><span class="testfont">𝕜</span>=<span>1D55C</span></span> - <span><span class="testfont">𝕝</span>=<span>1D55D</span></span> - <span><span class="testfont">𝕞</span>=<span>1D55E</span></span> - <span><span class="testfont">𝕟</span>=<span>1D55F</span></span> - <span><span class="testfont">𝕠</span>=<span>1D560</span></span> - <span><span class="testfont">𝕡</span>=<span>1D561</span></span><br/> - <span><span class="testfont">𝕢</span>=<span>1D562</span></span> - <span><span class="testfont">𝕣</span>=<span>1D563</span></span> - <span><span class="testfont">𝕤</span>=<span>1D564</span></span> - <span><span class="testfont">𝕥</span>=<span>1D565</span></span> - <span><span class="testfont">𝕦</span>=<span>1D566</span></span> - <span><span class="testfont">𝕧</span>=<span>1D567</span></span> - <span><span class="testfont">𝕨</span>=<span>1D568</span></span> - <span><span class="testfont">𝕩</span>=<span>1D569</span></span> - <span><span class="testfont">𝕪</span>=<span>1D56A</span></span> - <span><span class="testfont">𝕫</span>=<span>1D56B</span></span><br/> - <span><span class="testfont">𝟘</span>=<span>1D7D8</span></span> - <span><span class="testfont">𝟙</span>=<span>1D7D9</span></span> - <span><span class="testfont">𝟚</span>=<span>1D7DA</span></span> - <span><span class="testfont">𞺮</span>=<span>1EEAE</span></span> - <span><span class="testfont">𞺴</span>=<span>1EEB4</span></span> - <span><span class="testfont">𞺱</span>=<span>1EEB1</span></span> - <span><span class="testfont">𝟞</span>=<span>1D7DE</span></span> - <span><span class="testfont">𝟟</span>=<span>1D7DF</span></span> - <span><span class="testfont">𝟠</span>=<span>1D7E0</span></span> - <span><span class="testfont">𞺯</span>=<span>1EEAF</span></span><br/> - <span><span class="testfont">𝔸</span>=<span>1D538</span></span> - <span><span class="testfont">𝔹</span>=<span>1D539</span></span> - <span><span class="testfont">𝔻</span>=<span>1D53B</span></span> - <span><span class="testfont">𝔼</span>=<span>1D53C</span></span> - <span><span class="testfont">𝔽</span>=<span>1D53D</span></span> - <span><span class="testfont">ℍ</span>=<span>0210D</span></span> - <span><span class="testfont">𝕁</span>=<span>1D541</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html deleted file mode 100644 index df656d6..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html +++ /dev/null
@@ -1,119 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-double-struck</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#double-struck-mappings"> -<link rel="match" href="text-transform-math-double-struck-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-double-struck' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-double-struck.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-double-struck">ب</span>=<span>1EEA1</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ت</span>=<span>1EEB5</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ث</span>=<span>1EEB6</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ج</span>=<span>1EEA2</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ح</span>=<span>1EEA7</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">خ</span>=<span>1EEB7</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">د</span>=<span>1EEA3</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ذ</span>=<span>1EEB8</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ر</span>=<span>1EEB3</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ز</span>=<span>1EEA6</span></span><br/> - <span><span class="testfont" style="text-transform: math-double-struck">3</span>=<span>1D7DB</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">4</span>=<span>1D7DC</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">5</span>=<span>1D7DD</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ض</span>=<span>1EEB9</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ط</span>=<span>1EEA8</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ظ</span>=<span>1EEBA</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">9</span>=<span>1D7E1</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">غ</span>=<span>1EEBB</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ف</span>=<span>1EEB0</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ق</span>=<span>1EEB2</span></span><br/> - <span><span class="testfont" style="text-transform: math-double-struck">C</span>=<span>02102</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ل</span>=<span>1EEAB</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">م</span>=<span>1EEAC</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ن</span>=<span>1EEAD</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">G</span>=<span>1D53E</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">و</span>=<span>1EEA5</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">I</span>=<span>1D540</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ي</span>=<span>1EEA9</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">K</span>=<span>1D542</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">L</span>=<span>1D543</span></span><br/> - <span><span class="testfont" style="text-transform: math-double-struck">M</span>=<span>1D544</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">N</span>=<span>02115</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">O</span>=<span>1D546</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">P</span>=<span>02119</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">Q</span>=<span>0211A</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">R</span>=<span>0211D</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">S</span>=<span>1D54A</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">T</span>=<span>1D54B</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">U</span>=<span>1D54C</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">V</span>=<span>1D54D</span></span><br/> - <span><span class="testfont" style="text-transform: math-double-struck">W</span>=<span>1D54E</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">X</span>=<span>1D54F</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">Y</span>=<span>1D550</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">Z</span>=<span>02124</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">a</span>=<span>1D552</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">b</span>=<span>1D553</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">c</span>=<span>1D554</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">d</span>=<span>1D555</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">e</span>=<span>1D556</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">f</span>=<span>1D557</span></span><br/> - <span><span class="testfont" style="text-transform: math-double-struck">g</span>=<span>1D558</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">h</span>=<span>1D559</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">i</span>=<span>1D55A</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">j</span>=<span>1D55B</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">k</span>=<span>1D55C</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">l</span>=<span>1D55D</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">m</span>=<span>1D55E</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">n</span>=<span>1D55F</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">o</span>=<span>1D560</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">p</span>=<span>1D561</span></span><br/> - <span><span class="testfont" style="text-transform: math-double-struck">q</span>=<span>1D562</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">r</span>=<span>1D563</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">s</span>=<span>1D564</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">t</span>=<span>1D565</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">u</span>=<span>1D566</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">v</span>=<span>1D567</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">w</span>=<span>1D568</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">x</span>=<span>1D569</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">y</span>=<span>1D56A</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">z</span>=<span>1D56B</span></span><br/> - <span><span class="testfont" style="text-transform: math-double-struck">0</span>=<span>1D7D8</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">1</span>=<span>1D7D9</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">2</span>=<span>1D7DA</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">س</span>=<span>1EEAE</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ش</span>=<span>1EEB4</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ص</span>=<span>1EEB1</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">6</span>=<span>1D7DE</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">7</span>=<span>1D7DF</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">8</span>=<span>1D7E0</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">ع</span>=<span>1EEAF</span></span><br/> - <span><span class="testfont" style="text-transform: math-double-struck">A</span>=<span>1D538</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">B</span>=<span>1D539</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">D</span>=<span>1D53B</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">E</span>=<span>1D53C</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">F</span>=<span>1D53D</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">H</span>=<span>0210D</span></span> - <span><span class="testfont" style="text-transform: math-double-struck">J</span>=<span>1D541</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html.ini deleted file mode 100644 index f73391d..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-double-struck-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative-ref.html deleted file mode 100644 index 09ea70498..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative-ref.html +++ /dev/null
@@ -1,79 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-fraktur (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-fraktur.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝔄</span>=<span>1D504</span></span> - <span><span class="testfont">𝔅</span>=<span>1D505</span></span> - <span><span class="testfont">ℭ</span>=<span>0212D</span></span> - <span><span class="testfont">𝔇</span>=<span>1D507</span></span> - <span><span class="testfont">𝔈</span>=<span>1D508</span></span> - <span><span class="testfont">𝔉</span>=<span>1D509</span></span> - <span><span class="testfont">𝔊</span>=<span>1D50A</span></span> - <span><span class="testfont">ℌ</span>=<span>0210C</span></span> - <span><span class="testfont">ℑ</span>=<span>02111</span></span> - <span><span class="testfont">𝔍</span>=<span>1D50D</span></span><br/> - <span><span class="testfont">𝔎</span>=<span>1D50E</span></span> - <span><span class="testfont">𝔏</span>=<span>1D50F</span></span> - <span><span class="testfont">𝔐</span>=<span>1D510</span></span> - <span><span class="testfont">𝔑</span>=<span>1D511</span></span> - <span><span class="testfont">𝔒</span>=<span>1D512</span></span> - <span><span class="testfont">𝔓</span>=<span>1D513</span></span> - <span><span class="testfont">𝔔</span>=<span>1D514</span></span> - <span><span class="testfont">ℜ</span>=<span>0211C</span></span> - <span><span class="testfont">𝔖</span>=<span>1D516</span></span> - <span><span class="testfont">𝔗</span>=<span>1D517</span></span><br/> - <span><span class="testfont">𝔘</span>=<span>1D518</span></span> - <span><span class="testfont">𝔙</span>=<span>1D519</span></span> - <span><span class="testfont">𝔚</span>=<span>1D51A</span></span> - <span><span class="testfont">𝔛</span>=<span>1D51B</span></span> - <span><span class="testfont">𝔜</span>=<span>1D51C</span></span> - <span><span class="testfont">ℨ</span>=<span>02128</span></span> - <span><span class="testfont">𝔞</span>=<span>1D51E</span></span> - <span><span class="testfont">𝔟</span>=<span>1D51F</span></span> - <span><span class="testfont">𝔠</span>=<span>1D520</span></span> - <span><span class="testfont">𝔡</span>=<span>1D521</span></span><br/> - <span><span class="testfont">𝔢</span>=<span>1D522</span></span> - <span><span class="testfont">𝔣</span>=<span>1D523</span></span> - <span><span class="testfont">𝔤</span>=<span>1D524</span></span> - <span><span class="testfont">𝔥</span>=<span>1D525</span></span> - <span><span class="testfont">𝔦</span>=<span>1D526</span></span> - <span><span class="testfont">𝔧</span>=<span>1D527</span></span> - <span><span class="testfont">𝔨</span>=<span>1D528</span></span> - <span><span class="testfont">𝔩</span>=<span>1D529</span></span> - <span><span class="testfont">𝔪</span>=<span>1D52A</span></span> - <span><span class="testfont">𝔫</span>=<span>1D52B</span></span><br/> - <span><span class="testfont">𝔬</span>=<span>1D52C</span></span> - <span><span class="testfont">𝔭</span>=<span>1D52D</span></span> - <span><span class="testfont">𝔮</span>=<span>1D52E</span></span> - <span><span class="testfont">𝔯</span>=<span>1D52F</span></span> - <span><span class="testfont">𝔰</span>=<span>1D530</span></span> - <span><span class="testfont">𝔱</span>=<span>1D531</span></span> - <span><span class="testfont">𝔲</span>=<span>1D532</span></span> - <span><span class="testfont">𝔳</span>=<span>1D533</span></span> - <span><span class="testfont">𝔴</span>=<span>1D534</span></span> - <span><span class="testfont">𝔵</span>=<span>1D535</span></span><br/> - <span><span class="testfont">𝔶</span>=<span>1D536</span></span> - <span><span class="testfont">𝔷</span>=<span>1D537</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html deleted file mode 100644 index 99310b8f..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html +++ /dev/null
@@ -1,84 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-fraktur</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fraktur-mappings"> -<link rel="match" href="text-transform-math-fraktur-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-fraktur' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-fraktur.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-fraktur">A</span>=<span>1D504</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">B</span>=<span>1D505</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">C</span>=<span>0212D</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">D</span>=<span>1D507</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">E</span>=<span>1D508</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">F</span>=<span>1D509</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">G</span>=<span>1D50A</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">H</span>=<span>0210C</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">I</span>=<span>02111</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">J</span>=<span>1D50D</span></span><br/> - <span><span class="testfont" style="text-transform: math-fraktur">K</span>=<span>1D50E</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">L</span>=<span>1D50F</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">M</span>=<span>1D510</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">N</span>=<span>1D511</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">O</span>=<span>1D512</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">P</span>=<span>1D513</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">Q</span>=<span>1D514</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">R</span>=<span>0211C</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">S</span>=<span>1D516</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">T</span>=<span>1D517</span></span><br/> - <span><span class="testfont" style="text-transform: math-fraktur">U</span>=<span>1D518</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">V</span>=<span>1D519</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">W</span>=<span>1D51A</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">X</span>=<span>1D51B</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">Y</span>=<span>1D51C</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">Z</span>=<span>02128</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">a</span>=<span>1D51E</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">b</span>=<span>1D51F</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">c</span>=<span>1D520</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">d</span>=<span>1D521</span></span><br/> - <span><span class="testfont" style="text-transform: math-fraktur">e</span>=<span>1D522</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">f</span>=<span>1D523</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">g</span>=<span>1D524</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">h</span>=<span>1D525</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">i</span>=<span>1D526</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">j</span>=<span>1D527</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">k</span>=<span>1D528</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">l</span>=<span>1D529</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">m</span>=<span>1D52A</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">n</span>=<span>1D52B</span></span><br/> - <span><span class="testfont" style="text-transform: math-fraktur">o</span>=<span>1D52C</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">p</span>=<span>1D52D</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">q</span>=<span>1D52E</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">r</span>=<span>1D52F</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">s</span>=<span>1D530</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">t</span>=<span>1D531</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">u</span>=<span>1D532</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">v</span>=<span>1D533</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">w</span>=<span>1D534</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">x</span>=<span>1D535</span></span><br/> - <span><span class="testfont" style="text-transform: math-fraktur">y</span>=<span>1D536</span></span> - <span><span class="testfont" style="text-transform: math-fraktur">z</span>=<span>1D537</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html.ini deleted file mode 100644 index f6b353e..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-fraktur-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-initial-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-initial-001.tentative-ref.html deleted file mode 100644 index 0c15bca..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-initial-001.tentative-ref.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-initial (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-initial.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𞸰</span>=<span>1EE30</span></span> - <span><span class="testfont">𞸲</span>=<span>1EE32</span></span> - <span><span class="testfont">𞸪</span>=<span>1EE2A</span></span> - <span><span class="testfont">𞸫</span>=<span>1EE2B</span></span> - <span><span class="testfont">𞸬</span>=<span>1EE2C</span></span> - <span><span class="testfont">𞸭</span>=<span>1EE2D</span></span> - <span><span class="testfont">𞸤</span>=<span>1EE24</span></span> - <span><span class="testfont">𞸡</span>=<span>1EE21</span></span> - <span><span class="testfont">𞸩</span>=<span>1EE29</span></span> - <span><span class="testfont">𞸶</span>=<span>1EE36</span></span><br/> - <span><span class="testfont">𞸢</span>=<span>1EE22</span></span> - <span><span class="testfont">𞸧</span>=<span>1EE27</span></span> - <span><span class="testfont">𞸷</span>=<span>1EE37</span></span> - <span><span class="testfont">𞸮</span>=<span>1EE2E</span></span> - <span><span class="testfont">𞸴</span>=<span>1EE34</span></span> - <span><span class="testfont">𞸱</span>=<span>1EE31</span></span> - <span><span class="testfont">𞸹</span>=<span>1EE39</span></span> - <span><span class="testfont">𞸯</span>=<span>1EE2F</span></span> - <span><span class="testfont">𞸻</span>=<span>1EE3B</span></span> - <span><span class="testfont">𞸵</span>=<span>1EE35</span></span><br/> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html deleted file mode 100644 index 42f3be7..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html +++ /dev/null
@@ -1,52 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-initial</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#initial-mappings"> -<link rel="match" href="text-transform-math-initial-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-initial' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-initial.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-initial">ف</span>=<span>1EE30</span></span> - <span><span class="testfont" style="text-transform: math-initial">ق</span>=<span>1EE32</span></span> - <span><span class="testfont" style="text-transform: math-initial">ك</span>=<span>1EE2A</span></span> - <span><span class="testfont" style="text-transform: math-initial">ل</span>=<span>1EE2B</span></span> - <span><span class="testfont" style="text-transform: math-initial">م</span>=<span>1EE2C</span></span> - <span><span class="testfont" style="text-transform: math-initial">ن</span>=<span>1EE2D</span></span> - <span><span class="testfont" style="text-transform: math-initial">ه</span>=<span>1EE24</span></span> - <span><span class="testfont" style="text-transform: math-initial">ب</span>=<span>1EE21</span></span> - <span><span class="testfont" style="text-transform: math-initial">ي</span>=<span>1EE29</span></span> - <span><span class="testfont" style="text-transform: math-initial">ث</span>=<span>1EE36</span></span><br/> - <span><span class="testfont" style="text-transform: math-initial">ج</span>=<span>1EE22</span></span> - <span><span class="testfont" style="text-transform: math-initial">ح</span>=<span>1EE27</span></span> - <span><span class="testfont" style="text-transform: math-initial">خ</span>=<span>1EE37</span></span> - <span><span class="testfont" style="text-transform: math-initial">س</span>=<span>1EE2E</span></span> - <span><span class="testfont" style="text-transform: math-initial">ش</span>=<span>1EE34</span></span> - <span><span class="testfont" style="text-transform: math-initial">ص</span>=<span>1EE31</span></span> - <span><span class="testfont" style="text-transform: math-initial">ض</span>=<span>1EE39</span></span> - <span><span class="testfont" style="text-transform: math-initial">ع</span>=<span>1EE2F</span></span> - <span><span class="testfont" style="text-transform: math-initial">غ</span>=<span>1EE3B</span></span> - <span><span class="testfont" style="text-transform: math-initial">ت</span>=<span>1EE35</span></span><br/> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html.ini deleted file mode 100644 index 7e663c0da..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-initial-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-italic-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-italic-001.tentative-ref.html deleted file mode 100644 index e1a90faf..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-italic-001.tentative-ref.html +++ /dev/null
@@ -1,139 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-italic (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-italic.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝜕</span>=<span>1D715</span></span> - <span><span class="testfont">𝛻</span>=<span>1D6FB</span></span> - <span><span class="testfont">𝚥</span>=<span>1D6A5</span></span> - <span><span class="testfont">𝐴</span>=<span>1D434</span></span> - <span><span class="testfont">𝐵</span>=<span>1D435</span></span> - <span><span class="testfont">𝐶</span>=<span>1D436</span></span> - <span><span class="testfont">𝐷</span>=<span>1D437</span></span> - <span><span class="testfont">𝐸</span>=<span>1D438</span></span> - <span><span class="testfont">𝐹</span>=<span>1D439</span></span> - <span><span class="testfont">𝐺</span>=<span>1D43A</span></span><br/> - <span><span class="testfont">𝐻</span>=<span>1D43B</span></span> - <span><span class="testfont">𝐼</span>=<span>1D43C</span></span> - <span><span class="testfont">𝐽</span>=<span>1D43D</span></span> - <span><span class="testfont">𝐾</span>=<span>1D43E</span></span> - <span><span class="testfont">𝐿</span>=<span>1D43F</span></span> - <span><span class="testfont">𝑀</span>=<span>1D440</span></span> - <span><span class="testfont">𝑁</span>=<span>1D441</span></span> - <span><span class="testfont">𝑂</span>=<span>1D442</span></span> - <span><span class="testfont">𝑃</span>=<span>1D443</span></span> - <span><span class="testfont">𝑄</span>=<span>1D444</span></span><br/> - <span><span class="testfont">𝑅</span>=<span>1D445</span></span> - <span><span class="testfont">𝑆</span>=<span>1D446</span></span> - <span><span class="testfont">𝑇</span>=<span>1D447</span></span> - <span><span class="testfont">𝑈</span>=<span>1D448</span></span> - <span><span class="testfont">𝑉</span>=<span>1D449</span></span> - <span><span class="testfont">𝑊</span>=<span>1D44A</span></span> - <span><span class="testfont">𝑋</span>=<span>1D44B</span></span> - <span><span class="testfont">𝑌</span>=<span>1D44C</span></span> - <span><span class="testfont">𝑍</span>=<span>1D44D</span></span> - <span><span class="testfont">𝑎</span>=<span>1D44E</span></span><br/> - <span><span class="testfont">𝑏</span>=<span>1D44F</span></span> - <span><span class="testfont">𝑐</span>=<span>1D450</span></span> - <span><span class="testfont">𝑑</span>=<span>1D451</span></span> - <span><span class="testfont">𝑒</span>=<span>1D452</span></span> - <span><span class="testfont">𝑓</span>=<span>1D453</span></span> - <span><span class="testfont">𝑔</span>=<span>1D454</span></span> - <span><span class="testfont">ℎ</span>=<span>0210E</span></span> - <span><span class="testfont">𝑖</span>=<span>1D456</span></span> - <span><span class="testfont">𝑗</span>=<span>1D457</span></span> - <span><span class="testfont">𝑘</span>=<span>1D458</span></span><br/> - <span><span class="testfont">𝑙</span>=<span>1D459</span></span> - <span><span class="testfont">𝑚</span>=<span>1D45A</span></span> - <span><span class="testfont">𝑛</span>=<span>1D45B</span></span> - <span><span class="testfont">𝑜</span>=<span>1D45C</span></span> - <span><span class="testfont">𝑝</span>=<span>1D45D</span></span> - <span><span class="testfont">𝑞</span>=<span>1D45E</span></span> - <span><span class="testfont">𝑟</span>=<span>1D45F</span></span> - <span><span class="testfont">𝑠</span>=<span>1D460</span></span> - <span><span class="testfont">𝑡</span>=<span>1D461</span></span> - <span><span class="testfont">𝑢</span>=<span>1D462</span></span><br/> - <span><span class="testfont">𝑣</span>=<span>1D463</span></span> - <span><span class="testfont">𝑤</span>=<span>1D464</span></span> - <span><span class="testfont">𝑥</span>=<span>1D465</span></span> - <span><span class="testfont">𝑦</span>=<span>1D466</span></span> - <span><span class="testfont">𝑧</span>=<span>1D467</span></span> - <span><span class="testfont">𝚤</span>=<span>1D6A4</span></span> - <span><span class="testfont">𝛢</span>=<span>1D6E2</span></span> - <span><span class="testfont">𝛣</span>=<span>1D6E3</span></span> - <span><span class="testfont">𝛤</span>=<span>1D6E4</span></span> - <span><span class="testfont">𝛥</span>=<span>1D6E5</span></span><br/> - <span><span class="testfont">𝛦</span>=<span>1D6E6</span></span> - <span><span class="testfont">𝛧</span>=<span>1D6E7</span></span> - <span><span class="testfont">𝛨</span>=<span>1D6E8</span></span> - <span><span class="testfont">𝛩</span>=<span>1D6E9</span></span> - <span><span class="testfont">𝛪</span>=<span>1D6EA</span></span> - <span><span class="testfont">𝛫</span>=<span>1D6EB</span></span> - <span><span class="testfont">𝛬</span>=<span>1D6EC</span></span> - <span><span class="testfont">𝛭</span>=<span>1D6ED</span></span> - <span><span class="testfont">𝛮</span>=<span>1D6EE</span></span> - <span><span class="testfont">𝛯</span>=<span>1D6EF</span></span><br/> - <span><span class="testfont">𝛰</span>=<span>1D6F0</span></span> - <span><span class="testfont">𝛱</span>=<span>1D6F1</span></span> - <span><span class="testfont">𝛲</span>=<span>1D6F2</span></span> - <span><span class="testfont">𝛴</span>=<span>1D6F4</span></span> - <span><span class="testfont">𝛵</span>=<span>1D6F5</span></span> - <span><span class="testfont">𝛶</span>=<span>1D6F6</span></span> - <span><span class="testfont">𝛷</span>=<span>1D6F7</span></span> - <span><span class="testfont">𝛸</span>=<span>1D6F8</span></span> - <span><span class="testfont">𝛹</span>=<span>1D6F9</span></span> - <span><span class="testfont">𝛺</span>=<span>1D6FA</span></span><br/> - <span><span class="testfont">𝛼</span>=<span>1D6FC</span></span> - <span><span class="testfont">𝛽</span>=<span>1D6FD</span></span> - <span><span class="testfont">𝛾</span>=<span>1D6FE</span></span> - <span><span class="testfont">𝛿</span>=<span>1D6FF</span></span> - <span><span class="testfont">𝜀</span>=<span>1D700</span></span> - <span><span class="testfont">𝜁</span>=<span>1D701</span></span> - <span><span class="testfont">𝜂</span>=<span>1D702</span></span> - <span><span class="testfont">𝜃</span>=<span>1D703</span></span> - <span><span class="testfont">𝜄</span>=<span>1D704</span></span> - <span><span class="testfont">𝜅</span>=<span>1D705</span></span><br/> - <span><span class="testfont">𝜆</span>=<span>1D706</span></span> - <span><span class="testfont">𝜇</span>=<span>1D707</span></span> - <span><span class="testfont">𝜈</span>=<span>1D708</span></span> - <span><span class="testfont">𝜉</span>=<span>1D709</span></span> - <span><span class="testfont">𝜊</span>=<span>1D70A</span></span> - <span><span class="testfont">𝜋</span>=<span>1D70B</span></span> - <span><span class="testfont">𝜌</span>=<span>1D70C</span></span> - <span><span class="testfont">𝜍</span>=<span>1D70D</span></span> - <span><span class="testfont">𝜎</span>=<span>1D70E</span></span> - <span><span class="testfont">𝜏</span>=<span>1D70F</span></span><br/> - <span><span class="testfont">𝜐</span>=<span>1D710</span></span> - <span><span class="testfont">𝜑</span>=<span>1D711</span></span> - <span><span class="testfont">𝜒</span>=<span>1D712</span></span> - <span><span class="testfont">𝜓</span>=<span>1D713</span></span> - <span><span class="testfont">𝜔</span>=<span>1D714</span></span> - <span><span class="testfont">𝜗</span>=<span>1D717</span></span> - <span><span class="testfont">𝜙</span>=<span>1D719</span></span> - <span><span class="testfont">𝜛</span>=<span>1D71B</span></span> - <span><span class="testfont">𝜘</span>=<span>1D718</span></span> - <span><span class="testfont">𝜚</span>=<span>1D71A</span></span><br/> - <span><span class="testfont">𝛳</span>=<span>1D6F3</span></span> - <span><span class="testfont">𝜖</span>=<span>1D716</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html deleted file mode 100644 index 86e9a84..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html +++ /dev/null
@@ -1,144 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-italic</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#italic-mappings"> -<link rel="match" href="text-transform-math-italic-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-italic' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-italic.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-italic">∂</span>=<span>1D715</span></span> - <span><span class="testfont" style="text-transform: math-italic">∇</span>=<span>1D6FB</span></span> - <span><span class="testfont" style="text-transform: math-italic">ȷ</span>=<span>1D6A5</span></span> - <span><span class="testfont" style="text-transform: math-italic">A</span>=<span>1D434</span></span> - <span><span class="testfont" style="text-transform: math-italic">B</span>=<span>1D435</span></span> - <span><span class="testfont" style="text-transform: math-italic">C</span>=<span>1D436</span></span> - <span><span class="testfont" style="text-transform: math-italic">D</span>=<span>1D437</span></span> - <span><span class="testfont" style="text-transform: math-italic">E</span>=<span>1D438</span></span> - <span><span class="testfont" style="text-transform: math-italic">F</span>=<span>1D439</span></span> - <span><span class="testfont" style="text-transform: math-italic">G</span>=<span>1D43A</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">H</span>=<span>1D43B</span></span> - <span><span class="testfont" style="text-transform: math-italic">I</span>=<span>1D43C</span></span> - <span><span class="testfont" style="text-transform: math-italic">J</span>=<span>1D43D</span></span> - <span><span class="testfont" style="text-transform: math-italic">K</span>=<span>1D43E</span></span> - <span><span class="testfont" style="text-transform: math-italic">L</span>=<span>1D43F</span></span> - <span><span class="testfont" style="text-transform: math-italic">M</span>=<span>1D440</span></span> - <span><span class="testfont" style="text-transform: math-italic">N</span>=<span>1D441</span></span> - <span><span class="testfont" style="text-transform: math-italic">O</span>=<span>1D442</span></span> - <span><span class="testfont" style="text-transform: math-italic">P</span>=<span>1D443</span></span> - <span><span class="testfont" style="text-transform: math-italic">Q</span>=<span>1D444</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">R</span>=<span>1D445</span></span> - <span><span class="testfont" style="text-transform: math-italic">S</span>=<span>1D446</span></span> - <span><span class="testfont" style="text-transform: math-italic">T</span>=<span>1D447</span></span> - <span><span class="testfont" style="text-transform: math-italic">U</span>=<span>1D448</span></span> - <span><span class="testfont" style="text-transform: math-italic">V</span>=<span>1D449</span></span> - <span><span class="testfont" style="text-transform: math-italic">W</span>=<span>1D44A</span></span> - <span><span class="testfont" style="text-transform: math-italic">X</span>=<span>1D44B</span></span> - <span><span class="testfont" style="text-transform: math-italic">Y</span>=<span>1D44C</span></span> - <span><span class="testfont" style="text-transform: math-italic">Z</span>=<span>1D44D</span></span> - <span><span class="testfont" style="text-transform: math-italic">a</span>=<span>1D44E</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">b</span>=<span>1D44F</span></span> - <span><span class="testfont" style="text-transform: math-italic">c</span>=<span>1D450</span></span> - <span><span class="testfont" style="text-transform: math-italic">d</span>=<span>1D451</span></span> - <span><span class="testfont" style="text-transform: math-italic">e</span>=<span>1D452</span></span> - <span><span class="testfont" style="text-transform: math-italic">f</span>=<span>1D453</span></span> - <span><span class="testfont" style="text-transform: math-italic">g</span>=<span>1D454</span></span> - <span><span class="testfont" style="text-transform: math-italic">h</span>=<span>0210E</span></span> - <span><span class="testfont" style="text-transform: math-italic">i</span>=<span>1D456</span></span> - <span><span class="testfont" style="text-transform: math-italic">j</span>=<span>1D457</span></span> - <span><span class="testfont" style="text-transform: math-italic">k</span>=<span>1D458</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">l</span>=<span>1D459</span></span> - <span><span class="testfont" style="text-transform: math-italic">m</span>=<span>1D45A</span></span> - <span><span class="testfont" style="text-transform: math-italic">n</span>=<span>1D45B</span></span> - <span><span class="testfont" style="text-transform: math-italic">o</span>=<span>1D45C</span></span> - <span><span class="testfont" style="text-transform: math-italic">p</span>=<span>1D45D</span></span> - <span><span class="testfont" style="text-transform: math-italic">q</span>=<span>1D45E</span></span> - <span><span class="testfont" style="text-transform: math-italic">r</span>=<span>1D45F</span></span> - <span><span class="testfont" style="text-transform: math-italic">s</span>=<span>1D460</span></span> - <span><span class="testfont" style="text-transform: math-italic">t</span>=<span>1D461</span></span> - <span><span class="testfont" style="text-transform: math-italic">u</span>=<span>1D462</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">v</span>=<span>1D463</span></span> - <span><span class="testfont" style="text-transform: math-italic">w</span>=<span>1D464</span></span> - <span><span class="testfont" style="text-transform: math-italic">x</span>=<span>1D465</span></span> - <span><span class="testfont" style="text-transform: math-italic">y</span>=<span>1D466</span></span> - <span><span class="testfont" style="text-transform: math-italic">z</span>=<span>1D467</span></span> - <span><span class="testfont" style="text-transform: math-italic">ı</span>=<span>1D6A4</span></span> - <span><span class="testfont" style="text-transform: math-italic">Α</span>=<span>1D6E2</span></span> - <span><span class="testfont" style="text-transform: math-italic">Β</span>=<span>1D6E3</span></span> - <span><span class="testfont" style="text-transform: math-italic">Γ</span>=<span>1D6E4</span></span> - <span><span class="testfont" style="text-transform: math-italic">Δ</span>=<span>1D6E5</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">Ε</span>=<span>1D6E6</span></span> - <span><span class="testfont" style="text-transform: math-italic">Ζ</span>=<span>1D6E7</span></span> - <span><span class="testfont" style="text-transform: math-italic">Η</span>=<span>1D6E8</span></span> - <span><span class="testfont" style="text-transform: math-italic">Θ</span>=<span>1D6E9</span></span> - <span><span class="testfont" style="text-transform: math-italic">Ι</span>=<span>1D6EA</span></span> - <span><span class="testfont" style="text-transform: math-italic">Κ</span>=<span>1D6EB</span></span> - <span><span class="testfont" style="text-transform: math-italic">Λ</span>=<span>1D6EC</span></span> - <span><span class="testfont" style="text-transform: math-italic">Μ</span>=<span>1D6ED</span></span> - <span><span class="testfont" style="text-transform: math-italic">Ν</span>=<span>1D6EE</span></span> - <span><span class="testfont" style="text-transform: math-italic">Ξ</span>=<span>1D6EF</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">Ο</span>=<span>1D6F0</span></span> - <span><span class="testfont" style="text-transform: math-italic">Π</span>=<span>1D6F1</span></span> - <span><span class="testfont" style="text-transform: math-italic">Ρ</span>=<span>1D6F2</span></span> - <span><span class="testfont" style="text-transform: math-italic">Σ</span>=<span>1D6F4</span></span> - <span><span class="testfont" style="text-transform: math-italic">Τ</span>=<span>1D6F5</span></span> - <span><span class="testfont" style="text-transform: math-italic">Υ</span>=<span>1D6F6</span></span> - <span><span class="testfont" style="text-transform: math-italic">Φ</span>=<span>1D6F7</span></span> - <span><span class="testfont" style="text-transform: math-italic">Χ</span>=<span>1D6F8</span></span> - <span><span class="testfont" style="text-transform: math-italic">Ψ</span>=<span>1D6F9</span></span> - <span><span class="testfont" style="text-transform: math-italic">Ω</span>=<span>1D6FA</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">α</span>=<span>1D6FC</span></span> - <span><span class="testfont" style="text-transform: math-italic">β</span>=<span>1D6FD</span></span> - <span><span class="testfont" style="text-transform: math-italic">γ</span>=<span>1D6FE</span></span> - <span><span class="testfont" style="text-transform: math-italic">δ</span>=<span>1D6FF</span></span> - <span><span class="testfont" style="text-transform: math-italic">ε</span>=<span>1D700</span></span> - <span><span class="testfont" style="text-transform: math-italic">ζ</span>=<span>1D701</span></span> - <span><span class="testfont" style="text-transform: math-italic">η</span>=<span>1D702</span></span> - <span><span class="testfont" style="text-transform: math-italic">θ</span>=<span>1D703</span></span> - <span><span class="testfont" style="text-transform: math-italic">ι</span>=<span>1D704</span></span> - <span><span class="testfont" style="text-transform: math-italic">κ</span>=<span>1D705</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">λ</span>=<span>1D706</span></span> - <span><span class="testfont" style="text-transform: math-italic">μ</span>=<span>1D707</span></span> - <span><span class="testfont" style="text-transform: math-italic">ν</span>=<span>1D708</span></span> - <span><span class="testfont" style="text-transform: math-italic">ξ</span>=<span>1D709</span></span> - <span><span class="testfont" style="text-transform: math-italic">ο</span>=<span>1D70A</span></span> - <span><span class="testfont" style="text-transform: math-italic">π</span>=<span>1D70B</span></span> - <span><span class="testfont" style="text-transform: math-italic">ρ</span>=<span>1D70C</span></span> - <span><span class="testfont" style="text-transform: math-italic">ς</span>=<span>1D70D</span></span> - <span><span class="testfont" style="text-transform: math-italic">σ</span>=<span>1D70E</span></span> - <span><span class="testfont" style="text-transform: math-italic">τ</span>=<span>1D70F</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">υ</span>=<span>1D710</span></span> - <span><span class="testfont" style="text-transform: math-italic">φ</span>=<span>1D711</span></span> - <span><span class="testfont" style="text-transform: math-italic">χ</span>=<span>1D712</span></span> - <span><span class="testfont" style="text-transform: math-italic">ψ</span>=<span>1D713</span></span> - <span><span class="testfont" style="text-transform: math-italic">ω</span>=<span>1D714</span></span> - <span><span class="testfont" style="text-transform: math-italic">ϑ</span>=<span>1D717</span></span> - <span><span class="testfont" style="text-transform: math-italic">ϕ</span>=<span>1D719</span></span> - <span><span class="testfont" style="text-transform: math-italic">ϖ</span>=<span>1D71B</span></span> - <span><span class="testfont" style="text-transform: math-italic">ϰ</span>=<span>1D718</span></span> - <span><span class="testfont" style="text-transform: math-italic">ϱ</span>=<span>1D71A</span></span><br/> - <span><span class="testfont" style="text-transform: math-italic">ϴ</span>=<span>1D6F3</span></span> - <span><span class="testfont" style="text-transform: math-italic">ϵ</span>=<span>1D716</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html.ini deleted file mode 100644 index d8389c2..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-italic-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-looped-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-looped-001.tentative-ref.html deleted file mode 100644 index 89b52e2..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-looped-001.tentative-ref.html +++ /dev/null
@@ -1,54 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-looped (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-looped.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𞺀</span>=<span>1EE80</span></span> - <span><span class="testfont">𞺁</span>=<span>1EE81</span></span> - <span><span class="testfont">𞺕</span>=<span>1EE95</span></span> - <span><span class="testfont">𞺖</span>=<span>1EE96</span></span> - <span><span class="testfont">𞺂</span>=<span>1EE82</span></span> - <span><span class="testfont">𞺇</span>=<span>1EE87</span></span> - <span><span class="testfont">𞺗</span>=<span>1EE97</span></span> - <span><span class="testfont">𞺃</span>=<span>1EE83</span></span> - <span><span class="testfont">𞺘</span>=<span>1EE98</span></span> - <span><span class="testfont">𞺓</span>=<span>1EE93</span></span><br/> - <span><span class="testfont">𞺆</span>=<span>1EE86</span></span> - <span><span class="testfont">𞺎</span>=<span>1EE8E</span></span> - <span><span class="testfont">𞺔</span>=<span>1EE94</span></span> - <span><span class="testfont">𞺑</span>=<span>1EE91</span></span> - <span><span class="testfont">𞺙</span>=<span>1EE99</span></span> - <span><span class="testfont">𞺈</span>=<span>1EE88</span></span> - <span><span class="testfont">𞺚</span>=<span>1EE9A</span></span> - <span><span class="testfont">𞺏</span>=<span>1EE8F</span></span> - <span><span class="testfont">𞺛</span>=<span>1EE9B</span></span> - <span><span class="testfont">𞺐</span>=<span>1EE90</span></span><br/> - <span><span class="testfont">𞺒</span>=<span>1EE92</span></span> - <span><span class="testfont">𞺋</span>=<span>1EE8B</span></span> - <span><span class="testfont">𞺌</span>=<span>1EE8C</span></span> - <span><span class="testfont">𞺍</span>=<span>1EE8D</span></span> - <span><span class="testfont">𞺄</span>=<span>1EE84</span></span> - <span><span class="testfont">𞺅</span>=<span>1EE85</span></span> - <span><span class="testfont">𞺉</span>=<span>1EE89</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html deleted file mode 100644 index d46cbc1..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html +++ /dev/null
@@ -1,59 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-looped</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#looped-mappings"> -<link rel="match" href="text-transform-math-looped-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-looped' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-looped.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-looped">ا</span>=<span>1EE80</span></span> - <span><span class="testfont" style="text-transform: math-looped">ب</span>=<span>1EE81</span></span> - <span><span class="testfont" style="text-transform: math-looped">ت</span>=<span>1EE95</span></span> - <span><span class="testfont" style="text-transform: math-looped">ث</span>=<span>1EE96</span></span> - <span><span class="testfont" style="text-transform: math-looped">ج</span>=<span>1EE82</span></span> - <span><span class="testfont" style="text-transform: math-looped">ح</span>=<span>1EE87</span></span> - <span><span class="testfont" style="text-transform: math-looped">خ</span>=<span>1EE97</span></span> - <span><span class="testfont" style="text-transform: math-looped">د</span>=<span>1EE83</span></span> - <span><span class="testfont" style="text-transform: math-looped">ذ</span>=<span>1EE98</span></span> - <span><span class="testfont" style="text-transform: math-looped">ر</span>=<span>1EE93</span></span><br/> - <span><span class="testfont" style="text-transform: math-looped">ز</span>=<span>1EE86</span></span> - <span><span class="testfont" style="text-transform: math-looped">س</span>=<span>1EE8E</span></span> - <span><span class="testfont" style="text-transform: math-looped">ش</span>=<span>1EE94</span></span> - <span><span class="testfont" style="text-transform: math-looped">ص</span>=<span>1EE91</span></span> - <span><span class="testfont" style="text-transform: math-looped">ض</span>=<span>1EE99</span></span> - <span><span class="testfont" style="text-transform: math-looped">ط</span>=<span>1EE88</span></span> - <span><span class="testfont" style="text-transform: math-looped">ظ</span>=<span>1EE9A</span></span> - <span><span class="testfont" style="text-transform: math-looped">ع</span>=<span>1EE8F</span></span> - <span><span class="testfont" style="text-transform: math-looped">غ</span>=<span>1EE9B</span></span> - <span><span class="testfont" style="text-transform: math-looped">ف</span>=<span>1EE90</span></span><br/> - <span><span class="testfont" style="text-transform: math-looped">ق</span>=<span>1EE92</span></span> - <span><span class="testfont" style="text-transform: math-looped">ل</span>=<span>1EE8B</span></span> - <span><span class="testfont" style="text-transform: math-looped">م</span>=<span>1EE8C</span></span> - <span><span class="testfont" style="text-transform: math-looped">ن</span>=<span>1EE8D</span></span> - <span><span class="testfont" style="text-transform: math-looped">ه</span>=<span>1EE84</span></span> - <span><span class="testfont" style="text-transform: math-looped">و</span>=<span>1EE85</span></span> - <span><span class="testfont" style="text-transform: math-looped">ي</span>=<span>1EE89</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html.ini deleted file mode 100644 index 5a8165d4..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-looped-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative-ref.html deleted file mode 100644 index e254e1c0..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative-ref.html +++ /dev/null
@@ -1,89 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-monospace (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-monospace.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝟶</span>=<span>1D7F6</span></span> - <span><span class="testfont">𝟷</span>=<span>1D7F7</span></span> - <span><span class="testfont">𝟸</span>=<span>1D7F8</span></span> - <span><span class="testfont">𝟹</span>=<span>1D7F9</span></span> - <span><span class="testfont">𝟺</span>=<span>1D7FA</span></span> - <span><span class="testfont">𝟻</span>=<span>1D7FB</span></span> - <span><span class="testfont">𝟼</span>=<span>1D7FC</span></span> - <span><span class="testfont">𝟽</span>=<span>1D7FD</span></span> - <span><span class="testfont">𝟾</span>=<span>1D7FE</span></span> - <span><span class="testfont">𝟿</span>=<span>1D7FF</span></span><br/> - <span><span class="testfont">𝙰</span>=<span>1D670</span></span> - <span><span class="testfont">𝙱</span>=<span>1D671</span></span> - <span><span class="testfont">𝙲</span>=<span>1D672</span></span> - <span><span class="testfont">𝙳</span>=<span>1D673</span></span> - <span><span class="testfont">𝙴</span>=<span>1D674</span></span> - <span><span class="testfont">𝙵</span>=<span>1D675</span></span> - <span><span class="testfont">𝙶</span>=<span>1D676</span></span> - <span><span class="testfont">𝙷</span>=<span>1D677</span></span> - <span><span class="testfont">𝙸</span>=<span>1D678</span></span> - <span><span class="testfont">𝙹</span>=<span>1D679</span></span><br/> - <span><span class="testfont">𝙺</span>=<span>1D67A</span></span> - <span><span class="testfont">𝙻</span>=<span>1D67B</span></span> - <span><span class="testfont">𝙼</span>=<span>1D67C</span></span> - <span><span class="testfont">𝙽</span>=<span>1D67D</span></span> - <span><span class="testfont">𝙾</span>=<span>1D67E</span></span> - <span><span class="testfont">𝙿</span>=<span>1D67F</span></span> - <span><span class="testfont">𝚀</span>=<span>1D680</span></span> - <span><span class="testfont">𝚁</span>=<span>1D681</span></span> - <span><span class="testfont">𝚂</span>=<span>1D682</span></span> - <span><span class="testfont">𝚃</span>=<span>1D683</span></span><br/> - <span><span class="testfont">𝚄</span>=<span>1D684</span></span> - <span><span class="testfont">𝚅</span>=<span>1D685</span></span> - <span><span class="testfont">𝚆</span>=<span>1D686</span></span> - <span><span class="testfont">𝚇</span>=<span>1D687</span></span> - <span><span class="testfont">𝚈</span>=<span>1D688</span></span> - <span><span class="testfont">𝚉</span>=<span>1D689</span></span> - <span><span class="testfont">𝚊</span>=<span>1D68A</span></span> - <span><span class="testfont">𝚋</span>=<span>1D68B</span></span> - <span><span class="testfont">𝚌</span>=<span>1D68C</span></span> - <span><span class="testfont">𝚍</span>=<span>1D68D</span></span><br/> - <span><span class="testfont">𝚎</span>=<span>1D68E</span></span> - <span><span class="testfont">𝚏</span>=<span>1D68F</span></span> - <span><span class="testfont">𝚐</span>=<span>1D690</span></span> - <span><span class="testfont">𝚑</span>=<span>1D691</span></span> - <span><span class="testfont">𝚒</span>=<span>1D692</span></span> - <span><span class="testfont">𝚓</span>=<span>1D693</span></span> - <span><span class="testfont">𝚔</span>=<span>1D694</span></span> - <span><span class="testfont">𝚕</span>=<span>1D695</span></span> - <span><span class="testfont">𝚖</span>=<span>1D696</span></span> - <span><span class="testfont">𝚗</span>=<span>1D697</span></span><br/> - <span><span class="testfont">𝚘</span>=<span>1D698</span></span> - <span><span class="testfont">𝚙</span>=<span>1D699</span></span> - <span><span class="testfont">𝚚</span>=<span>1D69A</span></span> - <span><span class="testfont">𝚛</span>=<span>1D69B</span></span> - <span><span class="testfont">𝚜</span>=<span>1D69C</span></span> - <span><span class="testfont">𝚝</span>=<span>1D69D</span></span> - <span><span class="testfont">𝚞</span>=<span>1D69E</span></span> - <span><span class="testfont">𝚟</span>=<span>1D69F</span></span> - <span><span class="testfont">𝚠</span>=<span>1D6A0</span></span> - <span><span class="testfont">𝚡</span>=<span>1D6A1</span></span><br/> - <span><span class="testfont">𝚢</span>=<span>1D6A2</span></span> - <span><span class="testfont">𝚣</span>=<span>1D6A3</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html deleted file mode 100644 index 86a4d113..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html +++ /dev/null
@@ -1,94 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-monospace</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#monospace-mappings"> -<link rel="match" href="text-transform-math-monospace-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-monospace' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-monospace.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-monospace">0</span>=<span>1D7F6</span></span> - <span><span class="testfont" style="text-transform: math-monospace">1</span>=<span>1D7F7</span></span> - <span><span class="testfont" style="text-transform: math-monospace">2</span>=<span>1D7F8</span></span> - <span><span class="testfont" style="text-transform: math-monospace">3</span>=<span>1D7F9</span></span> - <span><span class="testfont" style="text-transform: math-monospace">4</span>=<span>1D7FA</span></span> - <span><span class="testfont" style="text-transform: math-monospace">5</span>=<span>1D7FB</span></span> - <span><span class="testfont" style="text-transform: math-monospace">6</span>=<span>1D7FC</span></span> - <span><span class="testfont" style="text-transform: math-monospace">7</span>=<span>1D7FD</span></span> - <span><span class="testfont" style="text-transform: math-monospace">8</span>=<span>1D7FE</span></span> - <span><span class="testfont" style="text-transform: math-monospace">9</span>=<span>1D7FF</span></span><br/> - <span><span class="testfont" style="text-transform: math-monospace">A</span>=<span>1D670</span></span> - <span><span class="testfont" style="text-transform: math-monospace">B</span>=<span>1D671</span></span> - <span><span class="testfont" style="text-transform: math-monospace">C</span>=<span>1D672</span></span> - <span><span class="testfont" style="text-transform: math-monospace">D</span>=<span>1D673</span></span> - <span><span class="testfont" style="text-transform: math-monospace">E</span>=<span>1D674</span></span> - <span><span class="testfont" style="text-transform: math-monospace">F</span>=<span>1D675</span></span> - <span><span class="testfont" style="text-transform: math-monospace">G</span>=<span>1D676</span></span> - <span><span class="testfont" style="text-transform: math-monospace">H</span>=<span>1D677</span></span> - <span><span class="testfont" style="text-transform: math-monospace">I</span>=<span>1D678</span></span> - <span><span class="testfont" style="text-transform: math-monospace">J</span>=<span>1D679</span></span><br/> - <span><span class="testfont" style="text-transform: math-monospace">K</span>=<span>1D67A</span></span> - <span><span class="testfont" style="text-transform: math-monospace">L</span>=<span>1D67B</span></span> - <span><span class="testfont" style="text-transform: math-monospace">M</span>=<span>1D67C</span></span> - <span><span class="testfont" style="text-transform: math-monospace">N</span>=<span>1D67D</span></span> - <span><span class="testfont" style="text-transform: math-monospace">O</span>=<span>1D67E</span></span> - <span><span class="testfont" style="text-transform: math-monospace">P</span>=<span>1D67F</span></span> - <span><span class="testfont" style="text-transform: math-monospace">Q</span>=<span>1D680</span></span> - <span><span class="testfont" style="text-transform: math-monospace">R</span>=<span>1D681</span></span> - <span><span class="testfont" style="text-transform: math-monospace">S</span>=<span>1D682</span></span> - <span><span class="testfont" style="text-transform: math-monospace">T</span>=<span>1D683</span></span><br/> - <span><span class="testfont" style="text-transform: math-monospace">U</span>=<span>1D684</span></span> - <span><span class="testfont" style="text-transform: math-monospace">V</span>=<span>1D685</span></span> - <span><span class="testfont" style="text-transform: math-monospace">W</span>=<span>1D686</span></span> - <span><span class="testfont" style="text-transform: math-monospace">X</span>=<span>1D687</span></span> - <span><span class="testfont" style="text-transform: math-monospace">Y</span>=<span>1D688</span></span> - <span><span class="testfont" style="text-transform: math-monospace">Z</span>=<span>1D689</span></span> - <span><span class="testfont" style="text-transform: math-monospace">a</span>=<span>1D68A</span></span> - <span><span class="testfont" style="text-transform: math-monospace">b</span>=<span>1D68B</span></span> - <span><span class="testfont" style="text-transform: math-monospace">c</span>=<span>1D68C</span></span> - <span><span class="testfont" style="text-transform: math-monospace">d</span>=<span>1D68D</span></span><br/> - <span><span class="testfont" style="text-transform: math-monospace">e</span>=<span>1D68E</span></span> - <span><span class="testfont" style="text-transform: math-monospace">f</span>=<span>1D68F</span></span> - <span><span class="testfont" style="text-transform: math-monospace">g</span>=<span>1D690</span></span> - <span><span class="testfont" style="text-transform: math-monospace">h</span>=<span>1D691</span></span> - <span><span class="testfont" style="text-transform: math-monospace">i</span>=<span>1D692</span></span> - <span><span class="testfont" style="text-transform: math-monospace">j</span>=<span>1D693</span></span> - <span><span class="testfont" style="text-transform: math-monospace">k</span>=<span>1D694</span></span> - <span><span class="testfont" style="text-transform: math-monospace">l</span>=<span>1D695</span></span> - <span><span class="testfont" style="text-transform: math-monospace">m</span>=<span>1D696</span></span> - <span><span class="testfont" style="text-transform: math-monospace">n</span>=<span>1D697</span></span><br/> - <span><span class="testfont" style="text-transform: math-monospace">o</span>=<span>1D698</span></span> - <span><span class="testfont" style="text-transform: math-monospace">p</span>=<span>1D699</span></span> - <span><span class="testfont" style="text-transform: math-monospace">q</span>=<span>1D69A</span></span> - <span><span class="testfont" style="text-transform: math-monospace">r</span>=<span>1D69B</span></span> - <span><span class="testfont" style="text-transform: math-monospace">s</span>=<span>1D69C</span></span> - <span><span class="testfont" style="text-transform: math-monospace">t</span>=<span>1D69D</span></span> - <span><span class="testfont" style="text-transform: math-monospace">u</span>=<span>1D69E</span></span> - <span><span class="testfont" style="text-transform: math-monospace">v</span>=<span>1D69F</span></span> - <span><span class="testfont" style="text-transform: math-monospace">w</span>=<span>1D6A0</span></span> - <span><span class="testfont" style="text-transform: math-monospace">x</span>=<span>1D6A1</span></span><br/> - <span><span class="testfont" style="text-transform: math-monospace">y</span>=<span>1D6A2</span></span> - <span><span class="testfont" style="text-transform: math-monospace">z</span>=<span>1D6A3</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html.ini deleted file mode 100644 index 18f0027..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-monospace-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative-ref.html deleted file mode 100644 index 8b75a6f..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative-ref.html +++ /dev/null
@@ -1,89 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-sans-serif (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-sans-serif.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝟢</span>=<span>1D7E2</span></span> - <span><span class="testfont">𝟣</span>=<span>1D7E3</span></span> - <span><span class="testfont">𝟤</span>=<span>1D7E4</span></span> - <span><span class="testfont">𝟥</span>=<span>1D7E5</span></span> - <span><span class="testfont">𝟦</span>=<span>1D7E6</span></span> - <span><span class="testfont">𝟧</span>=<span>1D7E7</span></span> - <span><span class="testfont">𝟨</span>=<span>1D7E8</span></span> - <span><span class="testfont">𝟩</span>=<span>1D7E9</span></span> - <span><span class="testfont">𝟪</span>=<span>1D7EA</span></span> - <span><span class="testfont">𝟫</span>=<span>1D7EB</span></span><br/> - <span><span class="testfont">𝖠</span>=<span>1D5A0</span></span> - <span><span class="testfont">𝖡</span>=<span>1D5A1</span></span> - <span><span class="testfont">𝖢</span>=<span>1D5A2</span></span> - <span><span class="testfont">𝖣</span>=<span>1D5A3</span></span> - <span><span class="testfont">𝖤</span>=<span>1D5A4</span></span> - <span><span class="testfont">𝖥</span>=<span>1D5A5</span></span> - <span><span class="testfont">𝖦</span>=<span>1D5A6</span></span> - <span><span class="testfont">𝖧</span>=<span>1D5A7</span></span> - <span><span class="testfont">𝖨</span>=<span>1D5A8</span></span> - <span><span class="testfont">𝖩</span>=<span>1D5A9</span></span><br/> - <span><span class="testfont">𝖪</span>=<span>1D5AA</span></span> - <span><span class="testfont">𝖫</span>=<span>1D5AB</span></span> - <span><span class="testfont">𝖬</span>=<span>1D5AC</span></span> - <span><span class="testfont">𝖭</span>=<span>1D5AD</span></span> - <span><span class="testfont">𝖮</span>=<span>1D5AE</span></span> - <span><span class="testfont">𝖯</span>=<span>1D5AF</span></span> - <span><span class="testfont">𝖰</span>=<span>1D5B0</span></span> - <span><span class="testfont">𝖱</span>=<span>1D5B1</span></span> - <span><span class="testfont">𝖲</span>=<span>1D5B2</span></span> - <span><span class="testfont">𝖳</span>=<span>1D5B3</span></span><br/> - <span><span class="testfont">𝖴</span>=<span>1D5B4</span></span> - <span><span class="testfont">𝖵</span>=<span>1D5B5</span></span> - <span><span class="testfont">𝖶</span>=<span>1D5B6</span></span> - <span><span class="testfont">𝖷</span>=<span>1D5B7</span></span> - <span><span class="testfont">𝖸</span>=<span>1D5B8</span></span> - <span><span class="testfont">𝖹</span>=<span>1D5B9</span></span> - <span><span class="testfont">𝖺</span>=<span>1D5BA</span></span> - <span><span class="testfont">𝖻</span>=<span>1D5BB</span></span> - <span><span class="testfont">𝖼</span>=<span>1D5BC</span></span> - <span><span class="testfont">𝖽</span>=<span>1D5BD</span></span><br/> - <span><span class="testfont">𝖾</span>=<span>1D5BE</span></span> - <span><span class="testfont">𝖿</span>=<span>1D5BF</span></span> - <span><span class="testfont">𝗀</span>=<span>1D5C0</span></span> - <span><span class="testfont">𝗁</span>=<span>1D5C1</span></span> - <span><span class="testfont">𝗂</span>=<span>1D5C2</span></span> - <span><span class="testfont">𝗃</span>=<span>1D5C3</span></span> - <span><span class="testfont">𝗄</span>=<span>1D5C4</span></span> - <span><span class="testfont">𝗅</span>=<span>1D5C5</span></span> - <span><span class="testfont">𝗆</span>=<span>1D5C6</span></span> - <span><span class="testfont">𝗇</span>=<span>1D5C7</span></span><br/> - <span><span class="testfont">𝗈</span>=<span>1D5C8</span></span> - <span><span class="testfont">𝗉</span>=<span>1D5C9</span></span> - <span><span class="testfont">𝗊</span>=<span>1D5CA</span></span> - <span><span class="testfont">𝗋</span>=<span>1D5CB</span></span> - <span><span class="testfont">𝗌</span>=<span>1D5CC</span></span> - <span><span class="testfont">𝗍</span>=<span>1D5CD</span></span> - <span><span class="testfont">𝗎</span>=<span>1D5CE</span></span> - <span><span class="testfont">𝗏</span>=<span>1D5CF</span></span> - <span><span class="testfont">𝗐</span>=<span>1D5D0</span></span> - <span><span class="testfont">𝗑</span>=<span>1D5D1</span></span><br/> - <span><span class="testfont">𝗒</span>=<span>1D5D2</span></span> - <span><span class="testfont">𝗓</span>=<span>1D5D3</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html deleted file mode 100644 index 41a5cc94..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html +++ /dev/null
@@ -1,94 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-sans-serif</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#sans-serif-mappings"> -<link rel="match" href="text-transform-math-sans-serif-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-sans-serif' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-sans-serif.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-sans-serif">0</span>=<span>1D7E2</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">1</span>=<span>1D7E3</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">2</span>=<span>1D7E4</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">3</span>=<span>1D7E5</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">4</span>=<span>1D7E6</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">5</span>=<span>1D7E7</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">6</span>=<span>1D7E8</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">7</span>=<span>1D7E9</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">8</span>=<span>1D7EA</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">9</span>=<span>1D7EB</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif">A</span>=<span>1D5A0</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">B</span>=<span>1D5A1</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">C</span>=<span>1D5A2</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">D</span>=<span>1D5A3</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">E</span>=<span>1D5A4</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">F</span>=<span>1D5A5</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">G</span>=<span>1D5A6</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">H</span>=<span>1D5A7</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">I</span>=<span>1D5A8</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">J</span>=<span>1D5A9</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif">K</span>=<span>1D5AA</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">L</span>=<span>1D5AB</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">M</span>=<span>1D5AC</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">N</span>=<span>1D5AD</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">O</span>=<span>1D5AE</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">P</span>=<span>1D5AF</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">Q</span>=<span>1D5B0</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">R</span>=<span>1D5B1</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">S</span>=<span>1D5B2</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">T</span>=<span>1D5B3</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif">U</span>=<span>1D5B4</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">V</span>=<span>1D5B5</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">W</span>=<span>1D5B6</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">X</span>=<span>1D5B7</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">Y</span>=<span>1D5B8</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">Z</span>=<span>1D5B9</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">a</span>=<span>1D5BA</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">b</span>=<span>1D5BB</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">c</span>=<span>1D5BC</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">d</span>=<span>1D5BD</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif">e</span>=<span>1D5BE</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">f</span>=<span>1D5BF</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">g</span>=<span>1D5C0</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">h</span>=<span>1D5C1</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">i</span>=<span>1D5C2</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">j</span>=<span>1D5C3</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">k</span>=<span>1D5C4</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">l</span>=<span>1D5C5</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">m</span>=<span>1D5C6</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">n</span>=<span>1D5C7</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif">o</span>=<span>1D5C8</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">p</span>=<span>1D5C9</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">q</span>=<span>1D5CA</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">r</span>=<span>1D5CB</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">s</span>=<span>1D5CC</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">t</span>=<span>1D5CD</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">u</span>=<span>1D5CE</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">v</span>=<span>1D5CF</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">w</span>=<span>1D5D0</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">x</span>=<span>1D5D1</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif">y</span>=<span>1D5D2</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif">z</span>=<span>1D5D3</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html.ini deleted file mode 100644 index b1f8403..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-sans-serif-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative-ref.html deleted file mode 100644 index 7f71dc4..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative-ref.html +++ /dev/null
@@ -1,137 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-sans-serif-bold-italic (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-sans-serif-bold-italic.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝟃</span>=<span>1D7C3</span></span> - <span><span class="testfont">𝞩</span>=<span>1D7A9</span></span> - <span><span class="testfont">𝘼</span>=<span>1D63C</span></span> - <span><span class="testfont">𝘽</span>=<span>1D63D</span></span> - <span><span class="testfont">𝘾</span>=<span>1D63E</span></span> - <span><span class="testfont">𝘿</span>=<span>1D63F</span></span> - <span><span class="testfont">𝙀</span>=<span>1D640</span></span> - <span><span class="testfont">𝙁</span>=<span>1D641</span></span> - <span><span class="testfont">𝙂</span>=<span>1D642</span></span> - <span><span class="testfont">𝙃</span>=<span>1D643</span></span><br/> - <span><span class="testfont">𝙄</span>=<span>1D644</span></span> - <span><span class="testfont">𝙅</span>=<span>1D645</span></span> - <span><span class="testfont">𝙆</span>=<span>1D646</span></span> - <span><span class="testfont">𝙇</span>=<span>1D647</span></span> - <span><span class="testfont">𝙈</span>=<span>1D648</span></span> - <span><span class="testfont">𝙉</span>=<span>1D649</span></span> - <span><span class="testfont">𝙊</span>=<span>1D64A</span></span> - <span><span class="testfont">𝙋</span>=<span>1D64B</span></span> - <span><span class="testfont">𝙌</span>=<span>1D64C</span></span> - <span><span class="testfont">𝙍</span>=<span>1D64D</span></span><br/> - <span><span class="testfont">𝙎</span>=<span>1D64E</span></span> - <span><span class="testfont">𝙏</span>=<span>1D64F</span></span> - <span><span class="testfont">𝙐</span>=<span>1D650</span></span> - <span><span class="testfont">𝙑</span>=<span>1D651</span></span> - <span><span class="testfont">𝙒</span>=<span>1D652</span></span> - <span><span class="testfont">𝙓</span>=<span>1D653</span></span> - <span><span class="testfont">𝙔</span>=<span>1D654</span></span> - <span><span class="testfont">𝙕</span>=<span>1D655</span></span> - <span><span class="testfont">𝙖</span>=<span>1D656</span></span> - <span><span class="testfont">𝙗</span>=<span>1D657</span></span><br/> - <span><span class="testfont">𝙘</span>=<span>1D658</span></span> - <span><span class="testfont">𝙙</span>=<span>1D659</span></span> - <span><span class="testfont">𝙚</span>=<span>1D65A</span></span> - <span><span class="testfont">𝙛</span>=<span>1D65B</span></span> - <span><span class="testfont">𝙜</span>=<span>1D65C</span></span> - <span><span class="testfont">𝙝</span>=<span>1D65D</span></span> - <span><span class="testfont">𝙞</span>=<span>1D65E</span></span> - <span><span class="testfont">𝙟</span>=<span>1D65F</span></span> - <span><span class="testfont">𝙠</span>=<span>1D660</span></span> - <span><span class="testfont">𝙡</span>=<span>1D661</span></span><br/> - <span><span class="testfont">𝙢</span>=<span>1D662</span></span> - <span><span class="testfont">𝙣</span>=<span>1D663</span></span> - <span><span class="testfont">𝙤</span>=<span>1D664</span></span> - <span><span class="testfont">𝙥</span>=<span>1D665</span></span> - <span><span class="testfont">𝙦</span>=<span>1D666</span></span> - <span><span class="testfont">𝙧</span>=<span>1D667</span></span> - <span><span class="testfont">𝙨</span>=<span>1D668</span></span> - <span><span class="testfont">𝙩</span>=<span>1D669</span></span> - <span><span class="testfont">𝙪</span>=<span>1D66A</span></span> - <span><span class="testfont">𝙫</span>=<span>1D66B</span></span><br/> - <span><span class="testfont">𝙬</span>=<span>1D66C</span></span> - <span><span class="testfont">𝙭</span>=<span>1D66D</span></span> - <span><span class="testfont">𝙮</span>=<span>1D66E</span></span> - <span><span class="testfont">𝙯</span>=<span>1D66F</span></span> - <span><span class="testfont">𝞐</span>=<span>1D790</span></span> - <span><span class="testfont">𝞑</span>=<span>1D791</span></span> - <span><span class="testfont">𝞒</span>=<span>1D792</span></span> - <span><span class="testfont">𝞓</span>=<span>1D793</span></span> - <span><span class="testfont">𝞔</span>=<span>1D794</span></span> - <span><span class="testfont">𝞕</span>=<span>1D795</span></span><br/> - <span><span class="testfont">𝞖</span>=<span>1D796</span></span> - <span><span class="testfont">𝞗</span>=<span>1D797</span></span> - <span><span class="testfont">𝞘</span>=<span>1D798</span></span> - <span><span class="testfont">𝞙</span>=<span>1D799</span></span> - <span><span class="testfont">𝞚</span>=<span>1D79A</span></span> - <span><span class="testfont">𝞛</span>=<span>1D79B</span></span> - <span><span class="testfont">𝞜</span>=<span>1D79C</span></span> - <span><span class="testfont">𝞝</span>=<span>1D79D</span></span> - <span><span class="testfont">𝞞</span>=<span>1D79E</span></span> - <span><span class="testfont">𝞟</span>=<span>1D79F</span></span><br/> - <span><span class="testfont">𝞠</span>=<span>1D7A0</span></span> - <span><span class="testfont">𝞢</span>=<span>1D7A2</span></span> - <span><span class="testfont">𝞣</span>=<span>1D7A3</span></span> - <span><span class="testfont">𝞤</span>=<span>1D7A4</span></span> - <span><span class="testfont">𝞥</span>=<span>1D7A5</span></span> - <span><span class="testfont">𝞦</span>=<span>1D7A6</span></span> - <span><span class="testfont">𝞧</span>=<span>1D7A7</span></span> - <span><span class="testfont">𝞨</span>=<span>1D7A8</span></span> - <span><span class="testfont">𝞪</span>=<span>1D7AA</span></span> - <span><span class="testfont">𝞫</span>=<span>1D7AB</span></span><br/> - <span><span class="testfont">𝞬</span>=<span>1D7AC</span></span> - <span><span class="testfont">𝞭</span>=<span>1D7AD</span></span> - <span><span class="testfont">𝞮</span>=<span>1D7AE</span></span> - <span><span class="testfont">𝞯</span>=<span>1D7AF</span></span> - <span><span class="testfont">𝞰</span>=<span>1D7B0</span></span> - <span><span class="testfont">𝞱</span>=<span>1D7B1</span></span> - <span><span class="testfont">𝞲</span>=<span>1D7B2</span></span> - <span><span class="testfont">𝞳</span>=<span>1D7B3</span></span> - <span><span class="testfont">𝞴</span>=<span>1D7B4</span></span> - <span><span class="testfont">𝞵</span>=<span>1D7B5</span></span><br/> - <span><span class="testfont">𝞶</span>=<span>1D7B6</span></span> - <span><span class="testfont">𝞷</span>=<span>1D7B7</span></span> - <span><span class="testfont">𝞸</span>=<span>1D7B8</span></span> - <span><span class="testfont">𝞹</span>=<span>1D7B9</span></span> - <span><span class="testfont">𝞺</span>=<span>1D7BA</span></span> - <span><span class="testfont">𝞻</span>=<span>1D7BB</span></span> - <span><span class="testfont">𝞼</span>=<span>1D7BC</span></span> - <span><span class="testfont">𝞽</span>=<span>1D7BD</span></span> - <span><span class="testfont">𝞾</span>=<span>1D7BE</span></span> - <span><span class="testfont">𝞿</span>=<span>1D7BF</span></span><br/> - <span><span class="testfont">𝟀</span>=<span>1D7C0</span></span> - <span><span class="testfont">𝟁</span>=<span>1D7C1</span></span> - <span><span class="testfont">𝟂</span>=<span>1D7C2</span></span> - <span><span class="testfont">𝟅</span>=<span>1D7C5</span></span> - <span><span class="testfont">𝟇</span>=<span>1D7C7</span></span> - <span><span class="testfont">𝟉</span>=<span>1D7C9</span></span> - <span><span class="testfont">𝟆</span>=<span>1D7C6</span></span> - <span><span class="testfont">𝟈</span>=<span>1D7C8</span></span> - <span><span class="testfont">𝞡</span>=<span>1D7A1</span></span> - <span><span class="testfont">𝟄</span>=<span>1D7C4</span></span><br/> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html deleted file mode 100644 index 955c54a..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html +++ /dev/null
@@ -1,142 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-sans-serif-bold-italic</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#sans-serif-bold-italic-mappings"> -<link rel="match" href="text-transform-math-sans-serif-bold-italic-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-sans-serif-bold-italic' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-sans-serif-bold-italic.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">∂</span>=<span>1D7C3</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">∇</span>=<span>1D7A9</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">A</span>=<span>1D63C</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">B</span>=<span>1D63D</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">C</span>=<span>1D63E</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">D</span>=<span>1D63F</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">E</span>=<span>1D640</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">F</span>=<span>1D641</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">G</span>=<span>1D642</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">H</span>=<span>1D643</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">I</span>=<span>1D644</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">J</span>=<span>1D645</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">K</span>=<span>1D646</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">L</span>=<span>1D647</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">M</span>=<span>1D648</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">N</span>=<span>1D649</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">O</span>=<span>1D64A</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">P</span>=<span>1D64B</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Q</span>=<span>1D64C</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">R</span>=<span>1D64D</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">S</span>=<span>1D64E</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">T</span>=<span>1D64F</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">U</span>=<span>1D650</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">V</span>=<span>1D651</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">W</span>=<span>1D652</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">X</span>=<span>1D653</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Y</span>=<span>1D654</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Z</span>=<span>1D655</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">a</span>=<span>1D656</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">b</span>=<span>1D657</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">c</span>=<span>1D658</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">d</span>=<span>1D659</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">e</span>=<span>1D65A</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">f</span>=<span>1D65B</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">g</span>=<span>1D65C</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">h</span>=<span>1D65D</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">i</span>=<span>1D65E</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">j</span>=<span>1D65F</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">k</span>=<span>1D660</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">l</span>=<span>1D661</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">m</span>=<span>1D662</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">n</span>=<span>1D663</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">o</span>=<span>1D664</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">p</span>=<span>1D665</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">q</span>=<span>1D666</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">r</span>=<span>1D667</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">s</span>=<span>1D668</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">t</span>=<span>1D669</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">u</span>=<span>1D66A</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">v</span>=<span>1D66B</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">w</span>=<span>1D66C</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">x</span>=<span>1D66D</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">y</span>=<span>1D66E</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">z</span>=<span>1D66F</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Α</span>=<span>1D790</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Β</span>=<span>1D791</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Γ</span>=<span>1D792</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Δ</span>=<span>1D793</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Ε</span>=<span>1D794</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Ζ</span>=<span>1D795</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Η</span>=<span>1D796</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Θ</span>=<span>1D797</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Ι</span>=<span>1D798</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Κ</span>=<span>1D799</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Λ</span>=<span>1D79A</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Μ</span>=<span>1D79B</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Ν</span>=<span>1D79C</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Ξ</span>=<span>1D79D</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Ο</span>=<span>1D79E</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Π</span>=<span>1D79F</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Ρ</span>=<span>1D7A0</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Σ</span>=<span>1D7A2</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Τ</span>=<span>1D7A3</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Υ</span>=<span>1D7A4</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Φ</span>=<span>1D7A5</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Χ</span>=<span>1D7A6</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Ψ</span>=<span>1D7A7</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">Ω</span>=<span>1D7A8</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">α</span>=<span>1D7AA</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">β</span>=<span>1D7AB</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">γ</span>=<span>1D7AC</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">δ</span>=<span>1D7AD</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ε</span>=<span>1D7AE</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ζ</span>=<span>1D7AF</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">η</span>=<span>1D7B0</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">θ</span>=<span>1D7B1</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ι</span>=<span>1D7B2</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">κ</span>=<span>1D7B3</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">λ</span>=<span>1D7B4</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">μ</span>=<span>1D7B5</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ν</span>=<span>1D7B6</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ξ</span>=<span>1D7B7</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ο</span>=<span>1D7B8</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">π</span>=<span>1D7B9</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ρ</span>=<span>1D7BA</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ς</span>=<span>1D7BB</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">σ</span>=<span>1D7BC</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">τ</span>=<span>1D7BD</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">υ</span>=<span>1D7BE</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">φ</span>=<span>1D7BF</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">χ</span>=<span>1D7C0</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ψ</span>=<span>1D7C1</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ω</span>=<span>1D7C2</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ϑ</span>=<span>1D7C5</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ϕ</span>=<span>1D7C7</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ϖ</span>=<span>1D7C9</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ϰ</span>=<span>1D7C6</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ϱ</span>=<span>1D7C8</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ϴ</span>=<span>1D7A1</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">ϵ</span>=<span>1D7C4</span></span><br/> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html.ini deleted file mode 100644 index 18147ddb..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-sans-serif-bold-italic-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative-ref.html deleted file mode 100644 index f352596..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative-ref.html +++ /dev/null
@@ -1,79 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-sans-serif-italic (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-sans-serif-italic.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝘈</span>=<span>1D608</span></span> - <span><span class="testfont">𝘉</span>=<span>1D609</span></span> - <span><span class="testfont">𝘊</span>=<span>1D60A</span></span> - <span><span class="testfont">𝘋</span>=<span>1D60B</span></span> - <span><span class="testfont">𝘌</span>=<span>1D60C</span></span> - <span><span class="testfont">𝘍</span>=<span>1D60D</span></span> - <span><span class="testfont">𝘎</span>=<span>1D60E</span></span> - <span><span class="testfont">𝘏</span>=<span>1D60F</span></span> - <span><span class="testfont">𝘐</span>=<span>1D610</span></span> - <span><span class="testfont">𝘑</span>=<span>1D611</span></span><br/> - <span><span class="testfont">𝘒</span>=<span>1D612</span></span> - <span><span class="testfont">𝘓</span>=<span>1D613</span></span> - <span><span class="testfont">𝘔</span>=<span>1D614</span></span> - <span><span class="testfont">𝘕</span>=<span>1D615</span></span> - <span><span class="testfont">𝘖</span>=<span>1D616</span></span> - <span><span class="testfont">𝘗</span>=<span>1D617</span></span> - <span><span class="testfont">𝘘</span>=<span>1D618</span></span> - <span><span class="testfont">𝘙</span>=<span>1D619</span></span> - <span><span class="testfont">𝘚</span>=<span>1D61A</span></span> - <span><span class="testfont">𝘛</span>=<span>1D61B</span></span><br/> - <span><span class="testfont">𝘜</span>=<span>1D61C</span></span> - <span><span class="testfont">𝘝</span>=<span>1D61D</span></span> - <span><span class="testfont">𝘞</span>=<span>1D61E</span></span> - <span><span class="testfont">𝘟</span>=<span>1D61F</span></span> - <span><span class="testfont">𝘠</span>=<span>1D620</span></span> - <span><span class="testfont">𝘡</span>=<span>1D621</span></span> - <span><span class="testfont">𝘢</span>=<span>1D622</span></span> - <span><span class="testfont">𝘣</span>=<span>1D623</span></span> - <span><span class="testfont">𝘤</span>=<span>1D624</span></span> - <span><span class="testfont">𝘥</span>=<span>1D625</span></span><br/> - <span><span class="testfont">𝘦</span>=<span>1D626</span></span> - <span><span class="testfont">𝘧</span>=<span>1D627</span></span> - <span><span class="testfont">𝘨</span>=<span>1D628</span></span> - <span><span class="testfont">𝘩</span>=<span>1D629</span></span> - <span><span class="testfont">𝘪</span>=<span>1D62A</span></span> - <span><span class="testfont">𝘫</span>=<span>1D62B</span></span> - <span><span class="testfont">𝘬</span>=<span>1D62C</span></span> - <span><span class="testfont">𝘭</span>=<span>1D62D</span></span> - <span><span class="testfont">𝘮</span>=<span>1D62E</span></span> - <span><span class="testfont">𝘯</span>=<span>1D62F</span></span><br/> - <span><span class="testfont">𝘰</span>=<span>1D630</span></span> - <span><span class="testfont">𝘱</span>=<span>1D631</span></span> - <span><span class="testfont">𝘲</span>=<span>1D632</span></span> - <span><span class="testfont">𝘳</span>=<span>1D633</span></span> - <span><span class="testfont">𝘴</span>=<span>1D634</span></span> - <span><span class="testfont">𝘵</span>=<span>1D635</span></span> - <span><span class="testfont">𝘶</span>=<span>1D636</span></span> - <span><span class="testfont">𝘷</span>=<span>1D637</span></span> - <span><span class="testfont">𝘸</span>=<span>1D638</span></span> - <span><span class="testfont">𝘹</span>=<span>1D639</span></span><br/> - <span><span class="testfont">𝘺</span>=<span>1D63A</span></span> - <span><span class="testfont">𝘻</span>=<span>1D63B</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html deleted file mode 100644 index 03afa9a..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html +++ /dev/null
@@ -1,84 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-sans-serif-italic</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#sans-serif-italic-mappings"> -<link rel="match" href="text-transform-math-sans-serif-italic-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-sans-serif-italic' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-sans-serif-italic.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">A</span>=<span>1D608</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">B</span>=<span>1D609</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">C</span>=<span>1D60A</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">D</span>=<span>1D60B</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">E</span>=<span>1D60C</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">F</span>=<span>1D60D</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">G</span>=<span>1D60E</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">H</span>=<span>1D60F</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">I</span>=<span>1D610</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">J</span>=<span>1D611</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">K</span>=<span>1D612</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">L</span>=<span>1D613</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">M</span>=<span>1D614</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">N</span>=<span>1D615</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">O</span>=<span>1D616</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">P</span>=<span>1D617</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">Q</span>=<span>1D618</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">R</span>=<span>1D619</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">S</span>=<span>1D61A</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">T</span>=<span>1D61B</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">U</span>=<span>1D61C</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">V</span>=<span>1D61D</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">W</span>=<span>1D61E</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">X</span>=<span>1D61F</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">Y</span>=<span>1D620</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">Z</span>=<span>1D621</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">a</span>=<span>1D622</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">b</span>=<span>1D623</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">c</span>=<span>1D624</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">d</span>=<span>1D625</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">e</span>=<span>1D626</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">f</span>=<span>1D627</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">g</span>=<span>1D628</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">h</span>=<span>1D629</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">i</span>=<span>1D62A</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">j</span>=<span>1D62B</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">k</span>=<span>1D62C</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">l</span>=<span>1D62D</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">m</span>=<span>1D62E</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">n</span>=<span>1D62F</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">o</span>=<span>1D630</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">p</span>=<span>1D631</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">q</span>=<span>1D632</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">r</span>=<span>1D633</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">s</span>=<span>1D634</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">t</span>=<span>1D635</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">u</span>=<span>1D636</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">v</span>=<span>1D637</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">w</span>=<span>1D638</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">x</span>=<span>1D639</span></span><br/> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">y</span>=<span>1D63A</span></span> - <span><span class="testfont" style="text-transform: math-sans-serif-italic">z</span>=<span>1D63B</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html.ini deleted file mode 100644 index 8abd0c6f..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-sans-serif-italic-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-script-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-script-001.tentative-ref.html deleted file mode 100644 index 6cbe296..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-script-001.tentative-ref.html +++ /dev/null
@@ -1,79 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-script (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-script.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𝒜</span>=<span>1D49C</span></span> - <span><span class="testfont">ℬ</span>=<span>0212C</span></span> - <span><span class="testfont">𝒞</span>=<span>1D49E</span></span> - <span><span class="testfont">𝒟</span>=<span>1D49F</span></span> - <span><span class="testfont">ℰ</span>=<span>02130</span></span> - <span><span class="testfont">ℱ</span>=<span>02131</span></span> - <span><span class="testfont">𝒢</span>=<span>1D4A2</span></span> - <span><span class="testfont">ℋ</span>=<span>0210B</span></span> - <span><span class="testfont">ℐ</span>=<span>02110</span></span> - <span><span class="testfont">𝒥</span>=<span>1D4A5</span></span><br/> - <span><span class="testfont">𝒦</span>=<span>1D4A6</span></span> - <span><span class="testfont">ℒ</span>=<span>02112</span></span> - <span><span class="testfont">ℳ</span>=<span>02133</span></span> - <span><span class="testfont">𝒩</span>=<span>1D4A9</span></span> - <span><span class="testfont">𝒪</span>=<span>1D4AA</span></span> - <span><span class="testfont">𝒫</span>=<span>1D4AB</span></span> - <span><span class="testfont">𝒬</span>=<span>1D4AC</span></span> - <span><span class="testfont">ℛ</span>=<span>0211B</span></span> - <span><span class="testfont">𝒮</span>=<span>1D4AE</span></span> - <span><span class="testfont">𝒯</span>=<span>1D4AF</span></span><br/> - <span><span class="testfont">𝒰</span>=<span>1D4B0</span></span> - <span><span class="testfont">𝒱</span>=<span>1D4B1</span></span> - <span><span class="testfont">𝒲</span>=<span>1D4B2</span></span> - <span><span class="testfont">𝒳</span>=<span>1D4B3</span></span> - <span><span class="testfont">𝒴</span>=<span>1D4B4</span></span> - <span><span class="testfont">𝒵</span>=<span>1D4B5</span></span> - <span><span class="testfont">𝒶</span>=<span>1D4B6</span></span> - <span><span class="testfont">𝒷</span>=<span>1D4B7</span></span> - <span><span class="testfont">𝒸</span>=<span>1D4B8</span></span> - <span><span class="testfont">𝒹</span>=<span>1D4B9</span></span><br/> - <span><span class="testfont">ℯ</span>=<span>0212F</span></span> - <span><span class="testfont">𝒻</span>=<span>1D4BB</span></span> - <span><span class="testfont">ℊ</span>=<span>0210A</span></span> - <span><span class="testfont">𝒽</span>=<span>1D4BD</span></span> - <span><span class="testfont">𝒾</span>=<span>1D4BE</span></span> - <span><span class="testfont">𝒿</span>=<span>1D4BF</span></span> - <span><span class="testfont">𝓀</span>=<span>1D4C0</span></span> - <span><span class="testfont">𝓁</span>=<span>1D4C1</span></span> - <span><span class="testfont">𝓂</span>=<span>1D4C2</span></span> - <span><span class="testfont">𝓃</span>=<span>1D4C3</span></span><br/> - <span><span class="testfont">ℴ</span>=<span>02134</span></span> - <span><span class="testfont">𝓅</span>=<span>1D4C5</span></span> - <span><span class="testfont">𝓆</span>=<span>1D4C6</span></span> - <span><span class="testfont">𝓇</span>=<span>1D4C7</span></span> - <span><span class="testfont">𝓈</span>=<span>1D4C8</span></span> - <span><span class="testfont">𝓉</span>=<span>1D4C9</span></span> - <span><span class="testfont">𝓊</span>=<span>1D4CA</span></span> - <span><span class="testfont">𝓋</span>=<span>1D4CB</span></span> - <span><span class="testfont">𝓌</span>=<span>1D4CC</span></span> - <span><span class="testfont">𝓍</span>=<span>1D4CD</span></span><br/> - <span><span class="testfont">𝓎</span>=<span>1D4CE</span></span> - <span><span class="testfont">𝓏</span>=<span>1D4CF</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html deleted file mode 100644 index bd17ecc..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html +++ /dev/null
@@ -1,84 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-script</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#script-mappings"> -<link rel="match" href="text-transform-math-script-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-script' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-script.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-script">A</span>=<span>1D49C</span></span> - <span><span class="testfont" style="text-transform: math-script">B</span>=<span>0212C</span></span> - <span><span class="testfont" style="text-transform: math-script">C</span>=<span>1D49E</span></span> - <span><span class="testfont" style="text-transform: math-script">D</span>=<span>1D49F</span></span> - <span><span class="testfont" style="text-transform: math-script">E</span>=<span>02130</span></span> - <span><span class="testfont" style="text-transform: math-script">F</span>=<span>02131</span></span> - <span><span class="testfont" style="text-transform: math-script">G</span>=<span>1D4A2</span></span> - <span><span class="testfont" style="text-transform: math-script">H</span>=<span>0210B</span></span> - <span><span class="testfont" style="text-transform: math-script">I</span>=<span>02110</span></span> - <span><span class="testfont" style="text-transform: math-script">J</span>=<span>1D4A5</span></span><br/> - <span><span class="testfont" style="text-transform: math-script">K</span>=<span>1D4A6</span></span> - <span><span class="testfont" style="text-transform: math-script">L</span>=<span>02112</span></span> - <span><span class="testfont" style="text-transform: math-script">M</span>=<span>02133</span></span> - <span><span class="testfont" style="text-transform: math-script">N</span>=<span>1D4A9</span></span> - <span><span class="testfont" style="text-transform: math-script">O</span>=<span>1D4AA</span></span> - <span><span class="testfont" style="text-transform: math-script">P</span>=<span>1D4AB</span></span> - <span><span class="testfont" style="text-transform: math-script">Q</span>=<span>1D4AC</span></span> - <span><span class="testfont" style="text-transform: math-script">R</span>=<span>0211B</span></span> - <span><span class="testfont" style="text-transform: math-script">S</span>=<span>1D4AE</span></span> - <span><span class="testfont" style="text-transform: math-script">T</span>=<span>1D4AF</span></span><br/> - <span><span class="testfont" style="text-transform: math-script">U</span>=<span>1D4B0</span></span> - <span><span class="testfont" style="text-transform: math-script">V</span>=<span>1D4B1</span></span> - <span><span class="testfont" style="text-transform: math-script">W</span>=<span>1D4B2</span></span> - <span><span class="testfont" style="text-transform: math-script">X</span>=<span>1D4B3</span></span> - <span><span class="testfont" style="text-transform: math-script">Y</span>=<span>1D4B4</span></span> - <span><span class="testfont" style="text-transform: math-script">Z</span>=<span>1D4B5</span></span> - <span><span class="testfont" style="text-transform: math-script">a</span>=<span>1D4B6</span></span> - <span><span class="testfont" style="text-transform: math-script">b</span>=<span>1D4B7</span></span> - <span><span class="testfont" style="text-transform: math-script">c</span>=<span>1D4B8</span></span> - <span><span class="testfont" style="text-transform: math-script">d</span>=<span>1D4B9</span></span><br/> - <span><span class="testfont" style="text-transform: math-script">e</span>=<span>0212F</span></span> - <span><span class="testfont" style="text-transform: math-script">f</span>=<span>1D4BB</span></span> - <span><span class="testfont" style="text-transform: math-script">g</span>=<span>0210A</span></span> - <span><span class="testfont" style="text-transform: math-script">h</span>=<span>1D4BD</span></span> - <span><span class="testfont" style="text-transform: math-script">i</span>=<span>1D4BE</span></span> - <span><span class="testfont" style="text-transform: math-script">j</span>=<span>1D4BF</span></span> - <span><span class="testfont" style="text-transform: math-script">k</span>=<span>1D4C0</span></span> - <span><span class="testfont" style="text-transform: math-script">l</span>=<span>1D4C1</span></span> - <span><span class="testfont" style="text-transform: math-script">m</span>=<span>1D4C2</span></span> - <span><span class="testfont" style="text-transform: math-script">n</span>=<span>1D4C3</span></span><br/> - <span><span class="testfont" style="text-transform: math-script">o</span>=<span>02134</span></span> - <span><span class="testfont" style="text-transform: math-script">p</span>=<span>1D4C5</span></span> - <span><span class="testfont" style="text-transform: math-script">q</span>=<span>1D4C6</span></span> - <span><span class="testfont" style="text-transform: math-script">r</span>=<span>1D4C7</span></span> - <span><span class="testfont" style="text-transform: math-script">s</span>=<span>1D4C8</span></span> - <span><span class="testfont" style="text-transform: math-script">t</span>=<span>1D4C9</span></span> - <span><span class="testfont" style="text-transform: math-script">u</span>=<span>1D4CA</span></span> - <span><span class="testfont" style="text-transform: math-script">v</span>=<span>1D4CB</span></span> - <span><span class="testfont" style="text-transform: math-script">w</span>=<span>1D4CC</span></span> - <span><span class="testfont" style="text-transform: math-script">x</span>=<span>1D4CD</span></span><br/> - <span><span class="testfont" style="text-transform: math-script">y</span>=<span>1D4CE</span></span> - <span><span class="testfont" style="text-transform: math-script">z</span>=<span>1D4CF</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html.ini deleted file mode 100644 index ca266818..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-script-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative-ref.html deleted file mode 100644 index e4fa35e..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative-ref.html +++ /dev/null
@@ -1,50 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-stretched (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-stretched.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𞹾</span>=<span>1EE7E</span></span> - <span><span class="testfont">𞹡</span>=<span>1EE61</span></span> - <span><span class="testfont">𞹵</span>=<span>1EE75</span></span> - <span><span class="testfont">𞹶</span>=<span>1EE76</span></span> - <span><span class="testfont">𞹢</span>=<span>1EE62</span></span> - <span><span class="testfont">𞹧</span>=<span>1EE67</span></span> - <span><span class="testfont">𞹷</span>=<span>1EE77</span></span> - <span><span class="testfont">𞹮</span>=<span>1EE6E</span></span> - <span><span class="testfont">𞹴</span>=<span>1EE74</span></span> - <span><span class="testfont">𞹱</span>=<span>1EE71</span></span><br/> - <span><span class="testfont">𞹹</span>=<span>1EE79</span></span> - <span><span class="testfont">𞹨</span>=<span>1EE68</span></span> - <span><span class="testfont">𞹺</span>=<span>1EE7A</span></span> - <span><span class="testfont">𞹯</span>=<span>1EE6F</span></span> - <span><span class="testfont">𞹻</span>=<span>1EE7B</span></span> - <span><span class="testfont">𞹰</span>=<span>1EE70</span></span> - <span><span class="testfont">𞹲</span>=<span>1EE72</span></span> - <span><span class="testfont">𞹪</span>=<span>1EE6A</span></span> - <span><span class="testfont">𞹬</span>=<span>1EE6C</span></span> - <span><span class="testfont">𞹭</span>=<span>1EE6D</span></span><br/> - <span><span class="testfont">𞹤</span>=<span>1EE64</span></span> - <span><span class="testfont">𞹩</span>=<span>1EE69</span></span> - <span><span class="testfont">𞹼</span>=<span>1EE7C</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html deleted file mode 100644 index 87dd88e9..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html +++ /dev/null
@@ -1,55 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-stretched</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#stretched-mappings"> -<link rel="match" href="text-transform-math-stretched-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-stretched' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-stretched.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-stretched">ڡ</span>=<span>1EE7E</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ب</span>=<span>1EE61</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ت</span>=<span>1EE75</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ث</span>=<span>1EE76</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ج</span>=<span>1EE62</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ح</span>=<span>1EE67</span></span> - <span><span class="testfont" style="text-transform: math-stretched">خ</span>=<span>1EE77</span></span> - <span><span class="testfont" style="text-transform: math-stretched">س</span>=<span>1EE6E</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ش</span>=<span>1EE74</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ص</span>=<span>1EE71</span></span><br/> - <span><span class="testfont" style="text-transform: math-stretched">ض</span>=<span>1EE79</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ط</span>=<span>1EE68</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ظ</span>=<span>1EE7A</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ع</span>=<span>1EE6F</span></span> - <span><span class="testfont" style="text-transform: math-stretched">غ</span>=<span>1EE7B</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ف</span>=<span>1EE70</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ق</span>=<span>1EE72</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ك</span>=<span>1EE6A</span></span> - <span><span class="testfont" style="text-transform: math-stretched">م</span>=<span>1EE6C</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ن</span>=<span>1EE6D</span></span><br/> - <span><span class="testfont" style="text-transform: math-stretched">ه</span>=<span>1EE64</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ي</span>=<span>1EE69</span></span> - <span><span class="testfont" style="text-transform: math-stretched">ٮ</span>=<span>1EE7C</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html.ini deleted file mode 100644 index 1fa080b..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-stretched-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative-ref.html deleted file mode 100644 index 7a1c9b00..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative-ref.html +++ /dev/null
@@ -1,42 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-tailed (reference)</title> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-tailed.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont">𞹒</span>=<span>1EE52</span></span> - <span><span class="testfont">𞹋</span>=<span>1EE4B</span></span> - <span><span class="testfont">𞹍</span>=<span>1EE4D</span></span> - <span><span class="testfont">𞹉</span>=<span>1EE49</span></span> - <span><span class="testfont">𞹂</span>=<span>1EE42</span></span> - <span><span class="testfont">𞹇</span>=<span>1EE47</span></span> - <span><span class="testfont">𞹗</span>=<span>1EE57</span></span> - <span><span class="testfont">𞹟</span>=<span>1EE5F</span></span> - <span><span class="testfont">𞹎</span>=<span>1EE4E</span></span> - <span><span class="testfont">𞹔</span>=<span>1EE54</span></span><br/> - <span><span class="testfont">𞹑</span>=<span>1EE51</span></span> - <span><span class="testfont">𞹙</span>=<span>1EE59</span></span> - <span><span class="testfont">𞹏</span>=<span>1EE4F</span></span> - <span><span class="testfont">𞹛</span>=<span>1EE5B</span></span> - <span><span class="testfont">𞹝</span>=<span>1EE5D</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html deleted file mode 100644 index f08c4657..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"/> -<title>text-transform math-tailed</title> -<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values"> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#tailed-mappings"> -<link rel="match" href="text-transform-math-tailed-001.tentative-ref.html"/> -<meta name="assert" content="Verify that a character with 'text-transform: math-tailed' renders the same as the transformed unicode character."> -<style> - @font-face { - font-family: TestFont; - src: url("/fonts/math/mathvariant-tailed.woff"); - } - body > span { - padding: 10px; - } - span > span { - font-family: monospace; - font-size: 10px; - } - .testfont { - font-family: TestFont; - font-size: 10px; - } -</style> -<body> - <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> - <p>Test passes if all the equalities below are true.</p> - <span><span class="testfont" style="text-transform: math-tailed">ق</span>=<span>1EE52</span></span> - <span><span class="testfont" style="text-transform: math-tailed">ل</span>=<span>1EE4B</span></span> - <span><span class="testfont" style="text-transform: math-tailed">ن</span>=<span>1EE4D</span></span> - <span><span class="testfont" style="text-transform: math-tailed">ي</span>=<span>1EE49</span></span> - <span><span class="testfont" style="text-transform: math-tailed">ج</span>=<span>1EE42</span></span> - <span><span class="testfont" style="text-transform: math-tailed">ح</span>=<span>1EE47</span></span> - <span><span class="testfont" style="text-transform: math-tailed">خ</span>=<span>1EE57</span></span> - <span><span class="testfont" style="text-transform: math-tailed">ٯ</span>=<span>1EE5F</span></span> - <span><span class="testfont" style="text-transform: math-tailed">س</span>=<span>1EE4E</span></span> - <span><span class="testfont" style="text-transform: math-tailed">ش</span>=<span>1EE54</span></span><br/> - <span><span class="testfont" style="text-transform: math-tailed">ص</span>=<span>1EE51</span></span> - <span><span class="testfont" style="text-transform: math-tailed">ض</span>=<span>1EE59</span></span> - <span><span class="testfont" style="text-transform: math-tailed">ع</span>=<span>1EE4F</span></span> - <span><span class="testfont" style="text-transform: math-tailed">غ</span>=<span>1EE5B</span></span> - <span><span class="testfont" style="text-transform: math-tailed">ں</span>=<span>1EE5D</span></span> -</body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html.ini deleted file mode 100644 index 76cfaa95..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html.ini +++ /dev/null
@@ -1,2 +0,0 @@ -[text-transform-math-tailed-001.tentative.html] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html.ini new file mode 100644 index 0000000..5e986e01 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html.ini
@@ -0,0 +1,2 @@ +[kind-of-widget-fallback-input-reset-border-left-color-001.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html.ini new file mode 100644 index 0000000..8a96e9f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html.ini
@@ -0,0 +1,2 @@ +[kind-of-widget-fallback-input-submit-border-block-start-width-001.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html.ini new file mode 100644 index 0000000..e98ff63 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html.ini
@@ -0,0 +1,2 @@ +[kind-of-widget-fallback-input-text-border-image-slice-001.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html.ini new file mode 100644 index 0000000..c15fb2013 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html.ini
@@ -0,0 +1,2 @@ +[kind-of-widget-fallback-input-text-border-inline-start-width-001.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html.ini new file mode 100644 index 0000000..91ce904 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html.ini
@@ -0,0 +1,2 @@ +[kind-of-widget-fallback-input-text-border-right-style-001.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html.ini new file mode 100644 index 0000000..7507d0d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html.ini
@@ -0,0 +1,2 @@ +[kind-of-widget-fallback-textarea-border-start-start-radius-001.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-edge-pixels.html.ini b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-edge-pixels.html.ini new file mode 100644 index 0000000..eae5460c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-edge-pixels.html.ini
@@ -0,0 +1,2 @@ +[backdrop-filter-edge-pixels.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-plus-will-change-opacity.html.ini b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-plus-will-change-opacity.html.ini new file mode 100644 index 0000000..8a96055 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-plus-will-change-opacity.html.ini
@@ -0,0 +1,2 @@ +[backdrop-filter-plus-will-change-opacity.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/css-backdrop-filters-animation-combined.html.ini b/third_party/blink/web_tests/external/wpt/css/filter-effects/css-backdrop-filters-animation-combined.html.ini new file mode 100644 index 0000000..ca94199 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/css-backdrop-filters-animation-combined.html.ini
@@ -0,0 +1,2 @@ +[css-backdrop-filters-animation-combined.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/css-backdrop-filters-animation-contrast.html.ini b/third_party/blink/web_tests/external/wpt/css/filter-effects/css-backdrop-filters-animation-contrast.html.ini new file mode 100644 index 0000000..de16b0ac --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/css-backdrop-filters-animation-contrast.html.ini
@@ -0,0 +1,2 @@ +[css-backdrop-filters-animation-contrast.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-non-integer-innerheight.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-non-integer-innerheight.html.ini new file mode 100644 index 0000000..aadc15b7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-non-integer-innerheight.html.ini
@@ -0,0 +1,2 @@ +[open-features-non-integer-innerheight.html] + expected: [ERROR, OK]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-innerheight-innerwidth.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-innerheight-innerwidth.html.ini new file mode 100644 index 0000000..0689c51 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-innerheight-innerwidth.html.ini
@@ -0,0 +1,2 @@ +[open-features-tokenization-innerheight-innerwidth.html] + expected: [ERROR, OK]
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 new file mode 100644 index 0000000..4143b18 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-noopener.html.ini
@@ -0,0 +1,2 @@ +[window-open-noopener.html?indexed] + expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window-expected.txt index 7ecbf9ce..5fb1dc3 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window-expected.txt
@@ -1,8 +1,10 @@ This is a testharness.js-based test. PASS dedicated-worker PASS fetch same-origin + credentialless worker +PASS fetch same-origin + require_corp worker PASS fetch same-origin PASS fetch cross-origin FAIL fetch cross-origin + credentialless worker assert_equals: coep:none => expected (undefined) undefined but got (string) "cross_origin" +FAIL fetch cross-origin + require_corp worker assert_equals: coep:credentialless => expected (string) "cross_origin" but got (undefined) undefined Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js index 7807805..b06ec56 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js
@@ -41,8 +41,7 @@ const dedicatedWorkerTest = function( description, origin, coep_for_worker, expected_cookies_control, - expected_cookies_credentialless) - { + expected_cookies_credentialless) { promise_test_parallel(async t => { // Create workers for both window. const worker_token_1 = token(); @@ -50,7 +49,7 @@ // Used to check for errors creating the DedicatedWorker. const worker_error_1 = token(); - const worker_error_2 = token(); + const worker_error_2 = token(); const w_worker_src_1 = same_origin + executor_worker_path + coep_for_worker + `&uuid=${worker_token_1}`; @@ -106,6 +105,11 @@ cookie_same_origin, cookie_same_origin); + dedicatedWorkerTest("same-origin + require_corp worker", + same_origin, coep_require_corp, + cookie_same_origin, + cookie_same_origin); + dedicatedWorkerTest("same-origin", same_origin, coep_none, cookie_same_origin, @@ -114,10 +118,20 @@ dedicatedWorkerTest("cross-origin", cross_origin, coep_none, cookie_cross_origin, - "Worker blocked"); + "Worker blocked" // Owner's policy is credentialles, so we can't + // create a worker with coep_none. + ); dedicatedWorkerTest("cross-origin + credentialless worker", cross_origin, coep_credentialless, - undefined, - undefined); + undefined, // Worker created successfully with credentialless, and fetch doesn't get credentials + undefined // Worker created successfully with credentialless, and fetch doesn't get credentials + ); + + dedicatedWorkerTest("cross-origin + require_corp worker", + cross_origin, coep_require_corp, + cookie_cross_origin, + cookie_cross_origin // The worker's policy is require_corp and doing a + // fetch within it has nothing to do with the Owner's policy. + ); })
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js.ini index b6774be..41e7c4c 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js.ini
@@ -1,5 +1,6 @@ [dedicated-worker.https.window.html] - expected: - if product == "chrome": [OK, ERROR] [fetch cross-origin + credentialless worker] expected: FAIL + + [fetch cross-origin + require_corp worker] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.ini index 5fc35bf..681a0371 100644 --- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.ini
@@ -1,11 +1,14 @@ -[iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?5-6] +[iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?1-2] expected: ERROR [iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?3-4] expected: ERROR +[iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?5-6] + expected: ERROR + [iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?7-8] expected: ERROR -[iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?1-2] - expected: ERROR +[iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?9-last] + expected: [ERROR, OK]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-load.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-load.html.ini new file mode 100644 index 0000000..365b6cf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-load.html.ini
@@ -0,0 +1,3 @@ +[resource-selection-invoke-load.html] + [invoking resource selection with load()] + expected: 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 new file mode 100644 index 0000000..e2ed607 --- /dev/null +++ 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
@@ -0,0 +1,4 @@ +[resource-selection-invoke-pause-networkState.html] + expected: [OK, TIMEOUT] + [NOT invoking resource selection with pause() when networkState is not NETWORK_EMPTY] + expected: [FAIL, PASS]
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 new file mode 100644 index 0000000..b5b4f9d --- /dev/null +++ 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
@@ -0,0 +1,5 @@ +[resource-selection-invoke-set-src-not-in-document.html] + [invoking load by setting src on video not in a document] + expected: + if product == "content_shell": [FAIL, PASS] + FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/textfieldselection/select-event.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/forms/textfieldselection/select-event.html.ini index a58f1cea..b076c60 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/textfieldselection/select-event.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/textfieldselection/select-event.html.ini
@@ -4,39 +4,58 @@ [input type password: select() event queue] expected: - if (product == "content_shell") and (os == "linux") and (flag_specific == ""): PASS + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] FAIL [input type password: select() twice in disconnected node (must fire select only once)] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] if product == "chrome": FAIL [input type password: selectionDirection a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + FAIL [input type password: selectionDirection disconnected node] expected: FAIL [input type password: selectionDirection event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL if product == "chrome": FAIL [input type password: selectionDirection twice in disconnected node (must fire select only once)] expected: FAIL [input type password: selectionEnd a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + FAIL [input type password: selectionEnd disconnected node] expected: FAIL [input type password: selectionEnd event queue] expected: + if (product == "content_shell") and (os == "win") and (port == "win11"): PASS + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL + if (product == "content_shell") and (os == "linux") and (flag_specific == "highdpi"): PASS if product == "chrome": FAIL + [PASS, FAIL] [input type password: selectionEnd out of range a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS FAIL [input type password: selectionEnd out of range disconnected node] @@ -44,32 +63,48 @@ [input type password: selectionEnd out of range event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type password: selectionEnd out of range twice in disconnected node (must fire select only once)] expected: FAIL [input type password: selectionEnd twice in disconnected node (must fire select only once)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + FAIL [input type password: selectionStart a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + FAIL [input type password: selectionStart disconnected node] expected: FAIL [input type password: selectionStart event queue] expected: + if (product == "content_shell") and (os == "win") and (port == "win11"): PASS + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL + if (product == "content_shell") and (os == "linux") and (flag_specific == "highdpi"): PASS if product == "chrome": FAIL + [PASS, FAIL] [input type password: selectionStart out of range a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + FAIL [input type password: selectionStart out of range disconnected node] expected: FAIL [input type password: selectionStart out of range event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type password: selectionStart out of range twice in disconnected node (must fire select only once)] @@ -79,13 +114,18 @@ expected: FAIL [input type password: setRangeText() a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + FAIL [input type password: setRangeText() disconnected node] expected: FAIL [input type password: setRangeText() event queue] expected: + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type password: setRangeText() twice in disconnected node (must fire select only once)] @@ -93,7 +133,8 @@ [input type password: setSelectionRange out of range a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [input type password: setSelectionRange out of range disconnected node] @@ -101,6 +142,7 @@ [input type password: setSelectionRange out of range event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type password: setSelectionRange out of range twice in disconnected node (must fire select only once)] @@ -108,7 +150,8 @@ [input type password: setSelectionRange() a second time (must not fire select)] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [input type password: setSelectionRange() disconnected node] @@ -116,13 +159,12 @@ [input type password: setSelectionRange() event queue] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type password: setSelectionRange() twice in disconnected node (must fire select only once)] - expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - FAIL + expected: FAIL [input type search: select() disconnected node] expected: FAIL @@ -134,19 +176,26 @@ [input type search: select() twice in disconnected node (must fire select only once)] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): FAIL + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] if product == "chrome": FAIL [input type search: selectionDirection a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] FAIL [input type search: selectionDirection disconnected node] - expected: FAIL + expected: + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + FAIL [input type search: selectionDirection event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL [input type search: selectionDirection twice in disconnected node (must fire select only once)] @@ -154,7 +203,9 @@ [input type search: selectionEnd a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] FAIL [input type search: selectionEnd disconnected node] @@ -162,11 +213,13 @@ [input type search: selectionEnd event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL [input type search: selectionEnd out of range a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] FAIL [input type search: selectionEnd out of range disconnected node] @@ -174,29 +227,36 @@ [input type search: selectionEnd out of range event queue] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if product == "chrome": FAIL [input type search: selectionEnd out of range twice in disconnected node (must fire select only once)] expected: FAIL [input type search: selectionEnd twice in disconnected node (must fire select only once)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + FAIL [input type search: selectionStart a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] - FAIL + if (product == "content_shell") and (os == "linux") and (flag_specific == "highdpi"): FAIL + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): FAIL + if (product == "content_shell") and (os == "win") and (port == "win11"): FAIL + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] [input type search: selectionStart disconnected node] expected: FAIL [input type search: selectionStart event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): FAIL + if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL [input type search: selectionStart out of range a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] FAIL [input type search: selectionStart out of range disconnected node] @@ -204,17 +264,20 @@ [input type search: selectionStart out of range event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type search: selectionStart out of range twice in disconnected node (must fire select only once)] expected: FAIL [input type search: selectionStart twice in disconnected node (must fire select only once)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + FAIL [input type search: setRangeText() a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] FAIL [input type search: setRangeText() disconnected node] @@ -222,32 +285,41 @@ [input type search: setRangeText() event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type search: setRangeText() twice in disconnected node (must fire select only once)] expected: FAIL [input type search: setSelectionRange out of range a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + FAIL [input type search: setSelectionRange out of range disconnected node] expected: FAIL [input type search: setSelectionRange out of range event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type search: setSelectionRange out of range twice in disconnected node (must fire select only once)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + FAIL [input type search: setSelectionRange() a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + FAIL [input type search: setSelectionRange() disconnected node] expected: FAIL [input type search: setSelectionRange() event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type search: setSelectionRange() twice in disconnected node (must fire select only once)] @@ -258,16 +330,21 @@ [input type tel: select() event queue] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] FAIL [input type tel: select() twice in disconnected node (must fire select only once)] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): FAIL + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] if product == "chrome": FAIL [input type tel: selectionDirection a second time (must not fire select)] expected: + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] if (product == "content_shell") and (os == "mac"): [FAIL, PASS] FAIL @@ -278,6 +355,8 @@ [input type tel: selectionDirection event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL @@ -286,8 +365,8 @@ [input type tel: selectionEnd a second time (must not fire select)] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - if product == "chrome": [FAIL, PASS] FAIL [input type tel: selectionEnd disconnected node] @@ -295,29 +374,36 @@ [input type tel: selectionEnd event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL [input type tel: selectionEnd out of range a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + FAIL [input type tel: selectionEnd out of range disconnected node] expected: FAIL [input type tel: selectionEnd out of range event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type tel: selectionEnd out of range twice in disconnected node (must fire select only once)] expected: FAIL [input type tel: selectionEnd twice in disconnected node (must fire select only once)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + FAIL [input type tel: selectionStart a second time (must not fire select)] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - if product == "chrome": [FAIL, PASS] FAIL [input type tel: selectionStart disconnected node] @@ -325,46 +411,65 @@ [input type tel: selectionStart event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): FAIL if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL [input type tel: selectionStart out of range a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + FAIL [input type tel: selectionStart out of range disconnected node] expected: FAIL [input type tel: selectionStart out of range event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type tel: selectionStart out of range twice in disconnected node (must fire select only once)] expected: FAIL [input type tel: selectionStart twice in disconnected node (must fire select only once)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + FAIL [input type tel: setRangeText() a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + FAIL [input type tel: setRangeText() disconnected node] expected: FAIL [input type tel: setRangeText() event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type tel: setRangeText() twice in disconnected node (must fire select only once)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + FAIL [input type tel: setSelectionRange out of range a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + FAIL [input type tel: setSelectionRange out of range disconnected node] expected: FAIL [input type tel: setSelectionRange out of range event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type tel: setSelectionRange out of range twice in disconnected node (must fire select only once)] @@ -372,7 +477,9 @@ [input type tel: setSelectionRange() a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] FAIL [input type tel: setSelectionRange() disconnected node] @@ -380,24 +487,35 @@ [input type tel: setSelectionRange() event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] if product == "chrome": FAIL [input type tel: setSelectionRange() twice in disconnected node (must fire select only once)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + FAIL [input type text: select() disconnected node] expected: FAIL [input type text: select() event queue] - expected: FAIL + expected: + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + FAIL [input type text: select() twice in disconnected node (must fire select only once)] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): FAIL + if (product == "content_shell") and (os == "mac"): FAIL if product == "chrome": FAIL [input type text: selectionDirection a second time (must not fire select)] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] if (product == "content_shell") and (os == "mac"): [FAIL, PASS] FAIL @@ -408,6 +526,8 @@ [input type text: selectionDirection event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL @@ -416,7 +536,9 @@ [input type text: selectionEnd a second time (must not fire select)] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] FAIL [input type text: selectionEnd disconnected node] @@ -424,13 +546,14 @@ [input type text: selectionEnd event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL [input type text: selectionEnd out of range a second time (must not fire select)] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [input type text: selectionEnd out of range disconnected node] @@ -438,7 +561,7 @@ [input type text: selectionEnd out of range event queue] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type text: selectionEnd out of range twice in disconnected node (must fire select only once)] @@ -446,30 +569,29 @@ [input type text: selectionEnd twice in disconnected node (must fire select only once)] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [input type text: selectionStart a second time (must not fire select)] expected: - if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS if (product == "content_shell") and (os == "mac"): [PASS, FAIL] - if product == "chrome": [FAIL, PASS] FAIL [input type text: selectionStart disconnected node] - expected: - if product == "chrome": [FAIL, PASS] - FAIL + expected: FAIL [input type text: selectionStart event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): FAIL if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL [input type text: selectionStart out of range a second time (must not fire select)] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [input type text: selectionStart out of range disconnected node] @@ -477,7 +599,7 @@ [input type text: selectionStart out of range event queue] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type text: selectionStart out of range twice in disconnected node (must fire select only once)] @@ -485,12 +607,12 @@ [input type text: selectionStart twice in disconnected node (must fire select only once)] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [input type text: setRangeText() a second time (must not fire select)] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [input type text: setRangeText() disconnected node] @@ -498,16 +620,15 @@ [input type text: setRangeText() event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL - [PASS, FAIL] [input type text: setRangeText() twice in disconnected node (must fire select only once)] expected: FAIL [input type text: setSelectionRange out of range a second time (must not fire select)] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [input type text: setSelectionRange out of range disconnected node] @@ -515,17 +636,16 @@ [input type text: setSelectionRange out of range event queue] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type text: setSelectionRange out of range twice in disconnected node (must fire select only once)] - expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - FAIL + expected: FAIL [input type text: setSelectionRange() a second time (must not fire select)] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] FAIL [input type text: setSelectionRange() disconnected node] @@ -533,12 +653,14 @@ [input type text: setSelectionRange() event queue] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] if product == "chrome": FAIL [input type text: setSelectionRange() twice in disconnected node (must fire select only once)] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] FAIL [input type url: select() disconnected node] @@ -546,27 +668,33 @@ [input type url: select() event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] if (product == "content_shell") and (os == "mac"): [FAIL, PASS] FAIL [input type url: select() twice in disconnected node (must fire select only once)] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] - if product == "chrome": FAIL + if (product == "content_shell") and (os == "win") and (port == "win11"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "highdpi"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + FAIL [input type url: selectionDirection a second time (must not fire select)] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] FAIL [input type url: selectionDirection disconnected node] - expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - FAIL + expected: FAIL [input type url: selectionDirection event queue] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] if product == "chrome": FAIL [input type url: selectionDirection twice in disconnected node (must fire select only once)] @@ -574,6 +702,9 @@ [input type url: selectionEnd a second time (must not fire select)] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS if (product == "content_shell") and (os == "mac"): [FAIL, PASS] FAIL @@ -582,12 +713,15 @@ [input type url: selectionEnd event queue] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL + if (product == "content_shell") and (os == "win") and (port == "win11"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == "highdpi"): PASS if product == "chrome": FAIL + [PASS, FAIL] [input type url: selectionEnd out of range a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [input type url: selectionEnd out of range disconnected node] @@ -595,7 +729,8 @@ [input type url: selectionEnd out of range event queue] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if product == "chrome": FAIL [input type url: selectionEnd out of range twice in disconnected node (must fire select only once)] expected: FAIL @@ -605,6 +740,9 @@ [input type url: selectionStart a second time (must not fire select)] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS if (product == "content_shell") and (os == "mac"): [FAIL, PASS] FAIL @@ -613,12 +751,16 @@ [input type url: selectionStart event queue] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL + if (product == "content_shell") and (os == "win") and (port == "win11"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == "highdpi"): PASS if product == "chrome": FAIL + [PASS, FAIL] [input type url: selectionStart out of range a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [input type url: selectionStart out of range disconnected node] @@ -626,37 +768,50 @@ [input type url: selectionStart out of range event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] if product == "chrome": FAIL [input type url: selectionStart out of range twice in disconnected node (must fire select only once)] - expected: FAIL - - [input type url: selectionStart twice in disconnected node (must fire select only once)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] FAIL - [input type url: setRangeText() a second time (must not fire select)] + [input type url: selectionStart twice in disconnected node (must fire select only once)] expected: FAIL + [input type url: setRangeText() a second time (must not fire select)] + expected: + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + FAIL + [input type url: setRangeText() disconnected node] expected: FAIL [input type url: setRangeText() event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] if product == "chrome": FAIL [input type url: setRangeText() twice in disconnected node (must fire select only once)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + FAIL [input type url: setSelectionRange out of range a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + FAIL [input type url: setSelectionRange out of range disconnected node] expected: FAIL [input type url: setSelectionRange out of range event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type url: setSelectionRange out of range twice in disconnected node (must fire select only once)] @@ -664,7 +819,9 @@ [input type url: setSelectionRange() a second time (must not fire select)] expected: - if product == "chrome": [FAIL, PASS] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] FAIL [input type url: setSelectionRange() disconnected node] @@ -672,6 +829,8 @@ [input type url: setSelectionRange() event queue] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] if product == "chrome": FAIL [input type url: setSelectionRange() twice in disconnected node (must fire select only once)] @@ -679,41 +838,37 @@ [textarea: select() disconnected node] expected: - if product == "chrome": [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if product == "chrome": FAIL [textarea: select() event queue] expected: - if product == "chrome": [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] + if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if product == "chrome": PASS FAIL [textarea: select() twice in disconnected node (must fire select only once)] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] FAIL [textarea: selectionDirection a second time (must not fire select)] - expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - if product == "chrome": [FAIL, PASS] - FAIL + expected: FAIL [textarea: selectionDirection disconnected node] - expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - FAIL + expected: FAIL [textarea: selectionDirection event queue] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL [textarea: selectionDirection twice in disconnected node (must fire select only once)] expected: FAIL [textarea: selectionEnd a second time (must not fire select)] - expected: - if product == "chrome": PASS - FAIL + expected: FAIL [textarea: selectionEnd disconnected node] expected: FAIL @@ -739,32 +894,42 @@ expected: FAIL [textarea: selectionStart a second time (must not fire select)] - expected: [PASS, FAIL] + expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if product == "chrome": FAIL [textarea: selectionStart disconnected node] expected: FAIL [textarea: selectionStart event queue] expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac"): [PASS, FAIL] FAIL [textarea: selectionStart out of range a second time (must not fire select)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + FAIL [textarea: selectionStart out of range disconnected node] expected: FAIL [textarea: selectionStart out of range event queue] expected: + if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL [textarea: selectionStart out of range twice in disconnected node (must fire select only once)] - expected: FAIL + expected: + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] + FAIL [textarea: selectionStart twice in disconnected node (must fire select only once)] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac"): [FAIL, PASS] if product == "chrome": FAIL [textarea: setRangeText() a second time (must not fire select)] @@ -794,19 +959,14 @@ expected: FAIL [textarea: setSelectionRange() a second time (must not fire select)] - expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - FAIL + expected: FAIL [textarea: setSelectionRange() disconnected node] expected: FAIL [textarea: setSelectionRange() event queue] expected: - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] if product == "chrome": FAIL [textarea: setSelectionRange() twice in disconnected node (must fire select only once)] - expected: - if (product == "content_shell") and (os == "mac"): [FAIL, PASS] - FAIL + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js.ini b/third_party/blink/web_tests/external/wpt/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js.ini new file mode 100644 index 0000000..659aea9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js.ini
@@ -0,0 +1,2 @@ +[queue-microtask-exceptions.any.worker.html] + expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable-expected.txt b/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable-expected.txt new file mode 100644 index 0000000..b9ad0e89 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable-expected.txt
@@ -0,0 +1,16 @@ +This is a testharness.js-based test. +PASS <span inert>a[bc</span><span>de]f</span> +PASS <span>a[bc</span><span inert>de]f</span> +PASS <span inert>d[ef</span><span>ab]c</span> +PASS <span>d[ef</span><span inert>ab]c</span> +PASS a[bc<span inert>XYZ</span>de]f +PASS <span inert style="display:contents">a[bc</span><span>de]f</span> +PASS <span inert style="display:contents">{abc</span><span>de]f</span> +PASS <span inert><span style="display:contents">a[bc</span></span><span>de]f</span> +PASS <span inert><span style="display:contents">{abc</span></span><span>de]f</span> +FAIL <span inert style="display:none">a[bc</span><span>de]f</span> assert_equals: execCommand("delete") at <span inert style="display:none">a[bc</span><span>de]f</span>: <span> content should not be deleted because anchor node of Selection is in the <span inert> expected "<span inert=\"\" style=\"display:none\">abc</span><span>def</span>" but got "<span>f</span>" +FAIL <span inert style="display:none">{abc</span><span>de]f</span> assert_equals: execCommand("delete") at <span inert style="display:none">{abc</span><span>de]f</span>: <span> content should not be deleted because anchor node of Selection is in the <span inert> expected "<span inert=\"\" style=\"display:none\">abc</span><span>def</span>" but got "<span>f</span>" +PASS <span inert><span style="display:none">a[bc</span></span><span>de]f</span> +PASS <span inert><span style="display:none">{abc</span></span><span>de]f</span> +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable.html b/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable.html index ff00e16a..c22c798 100644 --- a/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable.html +++ b/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable.html
@@ -85,6 +85,102 @@ const desc = `execCommand("delete") at ${t.name}` assert_equals(editingHost.innerHTML, "af", `${desc}: <span inert> should be deleted`); }, "a[bc<span inert>XYZ</span>de]f"); + + test(t => { + utils.setupEditingHost(t.name, { selection: "setBaseAndExtent" }); + const initialInnerHTML = editingHost.innerHTML; + document.execCommand("delete"); + const desc = `execCommand("delete") at ${t.name}` + assert_equals( + editingHost.innerHTML, + initialInnerHTML, + `${desc}: <span> content should not be deleted because anchor node of Selection is in the <span inert>` + ); + }, `<span inert style="display:contents">a[bc</span><span>de]f</span>`); + + test(t => { + utils.setupEditingHost(t.name, { selection: "setBaseAndExtent" }); + const initialInnerHTML = editingHost.innerHTML; + document.execCommand("delete"); + const desc = `execCommand("delete") at ${t.name}` + assert_equals( + editingHost.innerHTML, + initialInnerHTML, + `${desc}: <span> content should not be deleted because anchor node of Selection is in the <span inert>` + ); + }, `<span inert style="display:contents">{abc</span><span>de]f</span>`); + + test(t => { + utils.setupEditingHost(t.name, { selection: "setBaseAndExtent" }); + const initialInnerHTML = editingHost.innerHTML; + document.execCommand("delete"); + const desc = `execCommand("delete") at ${t.name}` + assert_equals( + editingHost.innerHTML, + initialInnerHTML, + `${desc}: <span> content should not be deleted because anchor node of Selection is in the <span inert>` + ); + }, `<span inert><span style="display:contents">a[bc</span></span><span>de]f</span>`); + + test(t => { + utils.setupEditingHost(t.name, { selection: "setBaseAndExtent" }); + const initialInnerHTML = editingHost.innerHTML; + document.execCommand("delete"); + const desc = `execCommand("delete") at ${t.name}` + assert_equals( + editingHost.innerHTML, + initialInnerHTML, + `${desc}: <span> content should not be deleted because anchor node of Selection is in the <span inert>` + ); + }, `<span inert><span style="display:contents">{abc</span></span><span>de]f</span>`); + + test(t => { + utils.setupEditingHost(t.name, { selection: "setBaseAndExtent" }); + const initialInnerHTML = editingHost.innerHTML; + document.execCommand("delete"); + const desc = `execCommand("delete") at ${t.name}` + assert_equals( + editingHost.innerHTML, + initialInnerHTML, + `${desc}: <span> content should not be deleted because anchor node of Selection is in the <span inert>` + ); + }, `<span inert style="display:none">a[bc</span><span>de]f</span>`); + + test(t => { + utils.setupEditingHost(t.name, { selection: "setBaseAndExtent" }); + const initialInnerHTML = editingHost.innerHTML; + document.execCommand("delete"); + const desc = `execCommand("delete") at ${t.name}` + assert_equals( + editingHost.innerHTML, + initialInnerHTML, + `${desc}: <span> content should not be deleted because anchor node of Selection is in the <span inert>` + ); + }, `<span inert style="display:none">{abc</span><span>de]f</span>`); + + test(t => { + utils.setupEditingHost(t.name, { selection: "setBaseAndExtent" }); + const initialInnerHTML = editingHost.innerHTML; + document.execCommand("delete"); + const desc = `execCommand("delete") at ${t.name}` + assert_equals( + editingHost.innerHTML, + initialInnerHTML, + `${desc}: <span> content should not be deleted because anchor node of Selection is in the <span inert>` + ); + }, `<span inert><span style="display:none">a[bc</span></span><span>de]f</span>`); + + test(t => { + utils.setupEditingHost(t.name, { selection: "setBaseAndExtent" }); + const initialInnerHTML = editingHost.innerHTML; + document.execCommand("delete"); + const desc = `execCommand("delete") at ${t.name}` + assert_equals( + editingHost.innerHTML, + initialInnerHTML, + `${desc}: <span> content should not be deleted because anchor node of Selection is in the <span inert>` + ); + }, `<span inert><span style="display:none">{abc</span></span><span>de]f</span>`); }); </script> </head>
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable.html.ini b/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable.html.ini new file mode 100644 index 0000000..2d0927a2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable.html.ini
@@ -0,0 +1,8 @@ +[inert-inlines-around-selection-range-in-contenteditable.html] + expected: + if (product == "content_shell") and (os == "win") and (port == "win11"): [OK, TIMEOUT] + [<span inert style="display:none">a[bc</span><span>de\]f</span>] + expected: FAIL + + [<span inert style="display:none">{abc</span><span>de\]f</span>] + expected: FAIL
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 00fabef..73c2850b 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
@@ -5,15 +5,16 @@ [iframeDocument.scrollingElement.scrollTop = 250] expected: if (product == "content_shell") and (os == "linux") and (flag_specific == ""): FAIL - if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): [PASS, FAIL] [topDocument.scrollingElement.scrollTop = 100] expected: + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): [FAIL, PASS] if (product == "content_shell") and (os == "mac"): FAIL [topDocument.scrollingElement.scrollTop = 200] expected: + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): [PASS, FAIL] if (product == "content_shell") and (os == "win") and (port == "win11"): PASS - if (product == "content_shell") and (os == "mac"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac"): PASS FAIL
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002-expected.txt b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002-expected.txt index 43328421..fa1126812 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002-expected.txt +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002-expected.txt
@@ -1,130 +1,130 @@ This is a testharness.js-based test. -Found 128 tests; 96 PASS, 32 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL mathvariant on the math element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +Found 128 tests; 97 PASS, 31 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL mathvariant on the math element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the math element is mapped to math-depth(...) PASS invalid scriptlevel values on the math element are not mapped to math-depth(...) PASS displaystyle on the math element is mapped to CSS math-style -FAIL mathvariant on the annotation element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the annotation element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the annotation element is mapped to math-depth(...) PASS invalid scriptlevel values on the annotation element are not mapped to math-depth(...) PASS displaystyle on the annotation element is mapped to CSS math-style -FAIL mathvariant on the annotation-xml element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the annotation-xml element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the annotation-xml element is mapped to math-depth(...) PASS invalid scriptlevel values on the annotation-xml element are not mapped to math-depth(...) PASS displaystyle on the annotation-xml element is mapped to CSS math-style -FAIL mathvariant on the maction element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the maction element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the maction element is mapped to math-depth(...) PASS invalid scriptlevel values on the maction element are not mapped to math-depth(...) PASS displaystyle on the maction element is mapped to CSS math-style -FAIL mathvariant on the menclose element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the menclose element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the menclose element is mapped to math-depth(...) PASS invalid scriptlevel values on the menclose element are not mapped to math-depth(...) PASS displaystyle on the menclose element is mapped to CSS math-style -FAIL mathvariant on the merror element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the merror element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the merror element is mapped to math-depth(...) PASS invalid scriptlevel values on the merror element are not mapped to math-depth(...) PASS displaystyle on the merror element is mapped to CSS math-style -FAIL mathvariant on the mfrac element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mfrac element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mfrac element is mapped to math-depth(...) PASS invalid scriptlevel values on the mfrac element are not mapped to math-depth(...) PASS displaystyle on the mfrac element is mapped to CSS math-style -FAIL mathvariant on the mi element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "math-auto" +PASS mathvariant on the mi element is mapped to CSS text-transform PASS scriptlevel on the mi element is mapped to math-depth(...) PASS invalid scriptlevel values on the mi element are not mapped to math-depth(...) PASS displaystyle on the mi element is mapped to CSS math-style -FAIL mathvariant on the mmultiscripts element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mmultiscripts element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mmultiscripts element is mapped to math-depth(...) PASS invalid scriptlevel values on the mmultiscripts element are not mapped to math-depth(...) PASS displaystyle on the mmultiscripts element is mapped to CSS math-style -FAIL mathvariant on the mn element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mn element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mn element is mapped to math-depth(...) PASS invalid scriptlevel values on the mn element are not mapped to math-depth(...) PASS displaystyle on the mn element is mapped to CSS math-style -FAIL mathvariant on the mo element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mo element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mo element is mapped to math-depth(...) PASS invalid scriptlevel values on the mo element are not mapped to math-depth(...) PASS displaystyle on the mo element is mapped to CSS math-style -FAIL mathvariant on the mover element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mover element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mover element is mapped to math-depth(...) PASS invalid scriptlevel values on the mover element are not mapped to math-depth(...) PASS displaystyle on the mover element is mapped to CSS math-style -FAIL mathvariant on the mpadded element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mpadded element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mpadded element is mapped to math-depth(...) PASS invalid scriptlevel values on the mpadded element are not mapped to math-depth(...) PASS displaystyle on the mpadded element is mapped to CSS math-style -FAIL mathvariant on the mphantom element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mphantom element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mphantom element is mapped to math-depth(...) PASS invalid scriptlevel values on the mphantom element are not mapped to math-depth(...) PASS displaystyle on the mphantom element is mapped to CSS math-style -FAIL mathvariant on the mprescripts element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mprescripts element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mprescripts element is mapped to math-depth(...) PASS invalid scriptlevel values on the mprescripts element are not mapped to math-depth(...) PASS displaystyle on the mprescripts element is mapped to CSS math-style -FAIL mathvariant on the mroot element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mroot element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mroot element is mapped to math-depth(...) PASS invalid scriptlevel values on the mroot element are not mapped to math-depth(...) PASS displaystyle on the mroot element is mapped to CSS math-style -FAIL mathvariant on the mrow element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mrow element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mrow element is mapped to math-depth(...) PASS invalid scriptlevel values on the mrow element are not mapped to math-depth(...) PASS displaystyle on the mrow element is mapped to CSS math-style -FAIL mathvariant on the ms element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the ms element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the ms element is mapped to math-depth(...) PASS invalid scriptlevel values on the ms element are not mapped to math-depth(...) PASS displaystyle on the ms element is mapped to CSS math-style -FAIL mathvariant on the mspace element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mspace element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mspace element is mapped to math-depth(...) PASS invalid scriptlevel values on the mspace element are not mapped to math-depth(...) PASS displaystyle on the mspace element is mapped to CSS math-style -FAIL mathvariant on the msqrt element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the msqrt element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the msqrt element is mapped to math-depth(...) PASS invalid scriptlevel values on the msqrt element are not mapped to math-depth(...) PASS displaystyle on the msqrt element is mapped to CSS math-style -FAIL mathvariant on the mstyle element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mstyle element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mstyle element is mapped to math-depth(...) PASS invalid scriptlevel values on the mstyle element are not mapped to math-depth(...) PASS displaystyle on the mstyle element is mapped to CSS math-style -FAIL mathvariant on the msub element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the msub element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the msub element is mapped to math-depth(...) PASS invalid scriptlevel values on the msub element are not mapped to math-depth(...) PASS displaystyle on the msub element is mapped to CSS math-style -FAIL mathvariant on the msubsup element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the msubsup element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the msubsup element is mapped to math-depth(...) PASS invalid scriptlevel values on the msubsup element are not mapped to math-depth(...) PASS displaystyle on the msubsup element is mapped to CSS math-style -FAIL mathvariant on the msup element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the msup element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the msup element is mapped to math-depth(...) PASS invalid scriptlevel values on the msup element are not mapped to math-depth(...) PASS displaystyle on the msup element is mapped to CSS math-style -FAIL mathvariant on the mtable element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mtable element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mtable element is mapped to math-depth(...) PASS invalid scriptlevel values on the mtable element are not mapped to math-depth(...) PASS displaystyle on the mtable element is mapped to CSS math-style -FAIL mathvariant on the mtd element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mtd element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mtd element is mapped to math-depth(...) PASS invalid scriptlevel values on the mtd element are not mapped to math-depth(...) PASS displaystyle on the mtd element is mapped to CSS math-style -FAIL mathvariant on the mtext element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mtext element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mtext element is mapped to math-depth(...) PASS invalid scriptlevel values on the mtext element are not mapped to math-depth(...) PASS displaystyle on the mtext element is mapped to CSS math-style -FAIL mathvariant on the mtr element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the mtr element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the mtr element is mapped to math-depth(...) PASS invalid scriptlevel values on the mtr element are not mapped to math-depth(...) PASS displaystyle on the mtr element is mapped to CSS math-style -FAIL mathvariant on the munder element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the munder element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the munder element is mapped to math-depth(...) PASS invalid scriptlevel values on the munder element are not mapped to math-depth(...) PASS displaystyle on the munder element is mapped to CSS math-style -FAIL mathvariant on the munderover element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the munderover element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the munderover element is mapped to math-depth(...) PASS invalid scriptlevel values on the munderover element are not mapped to math-depth(...) PASS displaystyle on the munderover element is mapped to CSS math-style -FAIL mathvariant on the none element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the none element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the none element is mapped to math-depth(...) PASS invalid scriptlevel values on the none element are not mapped to math-depth(...) PASS displaystyle on the none element is mapped to CSS math-style -FAIL mathvariant on the semantics element is mapped to CSS text-transform assert_equals: attribute specified expected "math-fraktur" but got "none" +FAIL mathvariant on the semantics element is not mapped to CSS text-transform assert_equals: attribute specified expected "uppercase" but got "none" PASS scriptlevel on the semantics element is mapped to math-depth(...) PASS invalid scriptlevel values on the semantics element are not mapped to math-depth(...) PASS displaystyle on the semantics element is mapped to CSS math-style
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002.html index 388b141..cad2677 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002.html
@@ -26,7 +26,7 @@ function runTests() { var container = document.getElementById("container"); for (tag in MathMLFragments) { - container.insertAdjacentHTML("beforeend", `<math>${MathMLFragments[tag]}</math>`); + container.insertAdjacentHTML("beforeend", `<math><mrow>${MathMLFragments[tag]}</mrow></math>`); } Array.from(document.getElementsByClassName("element")).forEach(element => { var tag = element.tagName; @@ -36,11 +36,17 @@ assert_equals(style.getPropertyValue("text-transform"), tag === "mi" ? "math-auto" : "none", "no attribute"); - element.setAttribute("mathvariant", "fraktur"); - assert_equals(style.getPropertyValue("text-transform"), "math-fraktur", "attribute specified"); - element.setAttribute("mathvariant", "DoUbLe-StRuCk"); - assert_equals(style.getPropertyValue("text-transform"), "math-double-struck", "case insensitive"); - }, `mathvariant on the ${tag} element is mapped to CSS text-transform`) + element.parentNode.setAttribute("style", "text-transform: uppercase"); + assert_equals(style.getPropertyValue("text-transform"), + tag === "mi" ? "math-auto" : "uppercase", + "text-transform on parent"); + element.setAttribute("mathvariant", "normal"); + assert_equals(style.getPropertyValue("text-transform"), + tag === "mi" ? "none" : "uppercase", "attribute specified"); + element.setAttribute("mathvariant", "NoRmAl"); + assert_equals(style.getPropertyValue("text-transform"), + tag === "mi" ? "none" : "uppercase", "case insensitive"); + }, `mathvariant on the ${tag} element is ${tag === "mi" ? "" : "not"} mapped to CSS text-transform`) test(function() { // none and mprescripts appear as scripts @@ -94,7 +100,7 @@ <body> <div id="log"></div> <div id="container"> - <math class="element"></math> + <div><math class="element"></math></div> </div> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002.html.ini b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002.html.ini index b41ad0e..143e7e30 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002.html.ini +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/attribute-mapping-002.html.ini
@@ -1,96 +1,189 @@ [attribute-mapping-002.html] - [mathvariant on the math element is mapped to CSS text-transform] + [mathvariant on the annotation element is mapped to CSS text-transform] expected: FAIL - [mathvariant on the annotation element is mapped to CSS text-transform] + [mathvariant on the annotation element is not mapped to CSS text-transform] expected: FAIL [mathvariant on the annotation-xml element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the annotation-xml element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the maction element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the maction element is not mapped to CSS text-transform] + expected: FAIL + + [mathvariant on the math element is mapped to CSS text-transform] + expected: FAIL + + [mathvariant on the math element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the menclose element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the menclose element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the merror element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the merror element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mfrac element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mfrac element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mi element is mapped to CSS text-transform] expected: FAIL [mathvariant on the mmultiscripts element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mmultiscripts element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mn element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mn element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mo element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mo element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mover element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mover element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mpadded element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mpadded element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mphantom element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mphantom element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mprescripts element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mprescripts element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mroot element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mroot element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mrow element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mrow element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the ms element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the ms element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mspace element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mspace element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the msqrt element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the msqrt element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mstyle element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mstyle element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the msub element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the msub element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the msubsup element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the msubsup element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the msup element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the msup element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mtable element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mtable element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mtd element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mtd element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mtext element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mtext element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the mtr element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the mtr element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the munder element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the munder element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the munderover element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the munderover element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the none element is mapped to CSS text-transform] expected: FAIL + [mathvariant on the none element is not mapped to CSS text-transform] + expected: FAIL + [mathvariant on the semantics element is mapped to CSS text-transform] expected: FAIL + + [mathvariant on the semantics element is not mapped to CSS text-transform] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-auto-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-auto-ref.html index f8eaf7a7..105ba41 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-auto-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-auto-ref.html
@@ -23,68 +23,66 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mi>𝜕</mi></math>=<span>1D715</span></span> - <span><math class="testfont"><mi>𝛻</mi></math>=<span>1D6FB</span></span> - <span><math class="testfont"><mi>𝚥</mi></math>=<span>1D6A5</span></span> <span><math class="testfont"><mi>𝐴</mi></math>=<span>1D434</span></span> <span><math class="testfont"><mi>𝐵</mi></math>=<span>1D435</span></span> <span><math class="testfont"><mi>𝐶</mi></math>=<span>1D436</span></span> <span><math class="testfont"><mi>𝐷</mi></math>=<span>1D437</span></span> <span><math class="testfont"><mi>𝐸</mi></math>=<span>1D438</span></span> <span><math class="testfont"><mi>𝐹</mi></math>=<span>1D439</span></span> - <span><math class="testfont"><mi>𝐺</mi></math>=<span>1D43A</span></span><br/> + <span><math class="testfont"><mi>𝐺</mi></math>=<span>1D43A</span></span> <span><math class="testfont"><mi>𝐻</mi></math>=<span>1D43B</span></span> <span><math class="testfont"><mi>𝐼</mi></math>=<span>1D43C</span></span> - <span><math class="testfont"><mi>𝐽</mi></math>=<span>1D43D</span></span> + <span><math class="testfont"><mi>𝐽</mi></math>=<span>1D43D</span></span><br/> <span><math class="testfont"><mi>𝐾</mi></math>=<span>1D43E</span></span> <span><math class="testfont"><mi>𝐿</mi></math>=<span>1D43F</span></span> <span><math class="testfont"><mi>𝑀</mi></math>=<span>1D440</span></span> <span><math class="testfont"><mi>𝑁</mi></math>=<span>1D441</span></span> <span><math class="testfont"><mi>𝑂</mi></math>=<span>1D442</span></span> <span><math class="testfont"><mi>𝑃</mi></math>=<span>1D443</span></span> - <span><math class="testfont"><mi>𝑄</mi></math>=<span>1D444</span></span><br/> + <span><math class="testfont"><mi>𝑄</mi></math>=<span>1D444</span></span> <span><math class="testfont"><mi>𝑅</mi></math>=<span>1D445</span></span> <span><math class="testfont"><mi>𝑆</mi></math>=<span>1D446</span></span> - <span><math class="testfont"><mi>𝑇</mi></math>=<span>1D447</span></span> + <span><math class="testfont"><mi>𝑇</mi></math>=<span>1D447</span></span><br/> <span><math class="testfont"><mi>𝑈</mi></math>=<span>1D448</span></span> <span><math class="testfont"><mi>𝑉</mi></math>=<span>1D449</span></span> <span><math class="testfont"><mi>𝑊</mi></math>=<span>1D44A</span></span> <span><math class="testfont"><mi>𝑋</mi></math>=<span>1D44B</span></span> <span><math class="testfont"><mi>𝑌</mi></math>=<span>1D44C</span></span> <span><math class="testfont"><mi>𝑍</mi></math>=<span>1D44D</span></span> - <span><math class="testfont"><mi>𝑎</mi></math>=<span>1D44E</span></span><br/> + <span><math class="testfont"><mi>𝑎</mi></math>=<span>1D44E</span></span> <span><math class="testfont"><mi>𝑏</mi></math>=<span>1D44F</span></span> <span><math class="testfont"><mi>𝑐</mi></math>=<span>1D450</span></span> - <span><math class="testfont"><mi>𝑑</mi></math>=<span>1D451</span></span> + <span><math class="testfont"><mi>𝑑</mi></math>=<span>1D451</span></span><br/> <span><math class="testfont"><mi>𝑒</mi></math>=<span>1D452</span></span> <span><math class="testfont"><mi>𝑓</mi></math>=<span>1D453</span></span> <span><math class="testfont"><mi>𝑔</mi></math>=<span>1D454</span></span> <span><math class="testfont"><mi>ℎ</mi></math>=<span>0210E</span></span> <span><math class="testfont"><mi>𝑖</mi></math>=<span>1D456</span></span> <span><math class="testfont"><mi>𝑗</mi></math>=<span>1D457</span></span> - <span><math class="testfont"><mi>𝑘</mi></math>=<span>1D458</span></span><br/> + <span><math class="testfont"><mi>𝑘</mi></math>=<span>1D458</span></span> <span><math class="testfont"><mi>𝑙</mi></math>=<span>1D459</span></span> <span><math class="testfont"><mi>𝑚</mi></math>=<span>1D45A</span></span> - <span><math class="testfont"><mi>𝑛</mi></math>=<span>1D45B</span></span> + <span><math class="testfont"><mi>𝑛</mi></math>=<span>1D45B</span></span><br/> <span><math class="testfont"><mi>𝑜</mi></math>=<span>1D45C</span></span> <span><math class="testfont"><mi>𝑝</mi></math>=<span>1D45D</span></span> <span><math class="testfont"><mi>𝑞</mi></math>=<span>1D45E</span></span> <span><math class="testfont"><mi>𝑟</mi></math>=<span>1D45F</span></span> <span><math class="testfont"><mi>𝑠</mi></math>=<span>1D460</span></span> <span><math class="testfont"><mi>𝑡</mi></math>=<span>1D461</span></span> - <span><math class="testfont"><mi>𝑢</mi></math>=<span>1D462</span></span><br/> + <span><math class="testfont"><mi>𝑢</mi></math>=<span>1D462</span></span> <span><math class="testfont"><mi>𝑣</mi></math>=<span>1D463</span></span> <span><math class="testfont"><mi>𝑤</mi></math>=<span>1D464</span></span> - <span><math class="testfont"><mi>𝑥</mi></math>=<span>1D465</span></span> + <span><math class="testfont"><mi>𝑥</mi></math>=<span>1D465</span></span><br/> <span><math class="testfont"><mi>𝑦</mi></math>=<span>1D466</span></span> <span><math class="testfont"><mi>𝑧</mi></math>=<span>1D467</span></span> <span><math class="testfont"><mi>𝚤</mi></math>=<span>1D6A4</span></span> + <span><math class="testfont"><mi>𝚥</mi></math>=<span>1D6A5</span></span> <span><math class="testfont"><mi>𝛢</mi></math>=<span>1D6E2</span></span> <span><math class="testfont"><mi>𝛣</mi></math>=<span>1D6E3</span></span> <span><math class="testfont"><mi>𝛤</mi></math>=<span>1D6E4</span></span> - <span><math class="testfont"><mi>𝛥</mi></math>=<span>1D6E5</span></span><br/> + <span><math class="testfont"><mi>𝛥</mi></math>=<span>1D6E5</span></span> <span><math class="testfont"><mi>𝛦</mi></math>=<span>1D6E6</span></span> - <span><math class="testfont"><mi>𝛧</mi></math>=<span>1D6E7</span></span> + <span><math class="testfont"><mi>𝛧</mi></math>=<span>1D6E7</span></span><br/> <span><math class="testfont"><mi>𝛨</mi></math>=<span>1D6E8</span></span> <span><math class="testfont"><mi>𝛩</mi></math>=<span>1D6E9</span></span> <span><math class="testfont"><mi>𝛪</mi></math>=<span>1D6EA</span></span> @@ -92,17 +90,19 @@ <span><math class="testfont"><mi>𝛬</mi></math>=<span>1D6EC</span></span> <span><math class="testfont"><mi>𝛭</mi></math>=<span>1D6ED</span></span> <span><math class="testfont"><mi>𝛮</mi></math>=<span>1D6EE</span></span> - <span><math class="testfont"><mi>𝛯</mi></math>=<span>1D6EF</span></span><br/> + <span><math class="testfont"><mi>𝛯</mi></math>=<span>1D6EF</span></span> <span><math class="testfont"><mi>𝛰</mi></math>=<span>1D6F0</span></span> - <span><math class="testfont"><mi>𝛱</mi></math>=<span>1D6F1</span></span> + <span><math class="testfont"><mi>𝛱</mi></math>=<span>1D6F1</span></span><br/> <span><math class="testfont"><mi>𝛲</mi></math>=<span>1D6F2</span></span> + <span><math class="testfont"><mi>𝛳</mi></math>=<span>1D6F3</span></span> <span><math class="testfont"><mi>𝛴</mi></math>=<span>1D6F4</span></span> <span><math class="testfont"><mi>𝛵</mi></math>=<span>1D6F5</span></span> <span><math class="testfont"><mi>𝛶</mi></math>=<span>1D6F6</span></span> <span><math class="testfont"><mi>𝛷</mi></math>=<span>1D6F7</span></span> <span><math class="testfont"><mi>𝛸</mi></math>=<span>1D6F8</span></span> <span><math class="testfont"><mi>𝛹</mi></math>=<span>1D6F9</span></span> - <span><math class="testfont"><mi>𝛺</mi></math>=<span>1D6FA</span></span><br/> + <span><math class="testfont"><mi>𝛺</mi></math>=<span>1D6FA</span></span> + <span><math class="testfont"><mi>𝛻</mi></math>=<span>1D6FB</span></span><br/> <span><math class="testfont"><mi>𝛼</mi></math>=<span>1D6FC</span></span> <span><math class="testfont"><mi>𝛽</mi></math>=<span>1D6FD</span></span> <span><math class="testfont"><mi>𝛾</mi></math>=<span>1D6FE</span></span> @@ -128,12 +128,12 @@ <span><math class="testfont"><mi>𝜒</mi></math>=<span>1D712</span></span> <span><math class="testfont"><mi>𝜓</mi></math>=<span>1D713</span></span> <span><math class="testfont"><mi>𝜔</mi></math>=<span>1D714</span></span> - <span><math class="testfont"><mi>𝜗</mi></math>=<span>1D717</span></span> - <span><math class="testfont"><mi>𝜙</mi></math>=<span>1D719</span></span> - <span><math class="testfont"><mi>𝜛</mi></math>=<span>1D71B</span></span> - <span><math class="testfont"><mi>𝜘</mi></math>=<span>1D718</span></span> - <span><math class="testfont"><mi>𝜚</mi></math>=<span>1D71A</span></span><br/> - <span><math class="testfont"><mi>𝛳</mi></math>=<span>1D6F3</span></span> + <span><math class="testfont"><mi>𝜕</mi></math>=<span>1D715</span></span> <span><math class="testfont"><mi>𝜖</mi></math>=<span>1D716</span></span> + <span><math class="testfont"><mi>𝜗</mi></math>=<span>1D717</span></span> + <span><math class="testfont"><mi>𝜘</mi></math>=<span>1D718</span></span> + <span><math class="testfont"><mi>𝜙</mi></math>=<span>1D719</span></span><br/> + <span><math class="testfont"><mi>𝜚</mi></math>=<span>1D71A</span></span> + <span><math class="testfont"><mi>𝜛</mi></math>=<span>1D71B</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-auto.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-auto.html index 98f99ad..affb02f 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-auto.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-auto.html
@@ -29,68 +29,66 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mi>∂</mi></math>=<span>1D715</span></span> - <span><math class="testfont"><mi>∇</mi></math>=<span>1D6FB</span></span> - <span><math class="testfont"><mi>ȷ</mi></math>=<span>1D6A5</span></span> <span><math class="testfont"><mi>A</mi></math>=<span>1D434</span></span> <span><math class="testfont"><mi>B</mi></math>=<span>1D435</span></span> <span><math class="testfont"><mi>C</mi></math>=<span>1D436</span></span> <span><math class="testfont"><mi>D</mi></math>=<span>1D437</span></span> <span><math class="testfont"><mi>E</mi></math>=<span>1D438</span></span> <span><math class="testfont"><mi>F</mi></math>=<span>1D439</span></span> - <span><math class="testfont"><mi>G</mi></math>=<span>1D43A</span></span><br/> + <span><math class="testfont"><mi>G</mi></math>=<span>1D43A</span></span> <span><math class="testfont"><mi>H</mi></math>=<span>1D43B</span></span> <span><math class="testfont"><mi>I</mi></math>=<span>1D43C</span></span> - <span><math class="testfont"><mi>J</mi></math>=<span>1D43D</span></span> + <span><math class="testfont"><mi>J</mi></math>=<span>1D43D</span></span><br/> <span><math class="testfont"><mi>K</mi></math>=<span>1D43E</span></span> <span><math class="testfont"><mi>L</mi></math>=<span>1D43F</span></span> <span><math class="testfont"><mi>M</mi></math>=<span>1D440</span></span> <span><math class="testfont"><mi>N</mi></math>=<span>1D441</span></span> <span><math class="testfont"><mi>O</mi></math>=<span>1D442</span></span> <span><math class="testfont"><mi>P</mi></math>=<span>1D443</span></span> - <span><math class="testfont"><mi>Q</mi></math>=<span>1D444</span></span><br/> + <span><math class="testfont"><mi>Q</mi></math>=<span>1D444</span></span> <span><math class="testfont"><mi>R</mi></math>=<span>1D445</span></span> <span><math class="testfont"><mi>S</mi></math>=<span>1D446</span></span> - <span><math class="testfont"><mi>T</mi></math>=<span>1D447</span></span> + <span><math class="testfont"><mi>T</mi></math>=<span>1D447</span></span><br/> <span><math class="testfont"><mi>U</mi></math>=<span>1D448</span></span> <span><math class="testfont"><mi>V</mi></math>=<span>1D449</span></span> <span><math class="testfont"><mi>W</mi></math>=<span>1D44A</span></span> <span><math class="testfont"><mi>X</mi></math>=<span>1D44B</span></span> <span><math class="testfont"><mi>Y</mi></math>=<span>1D44C</span></span> <span><math class="testfont"><mi>Z</mi></math>=<span>1D44D</span></span> - <span><math class="testfont"><mi>a</mi></math>=<span>1D44E</span></span><br/> + <span><math class="testfont"><mi>a</mi></math>=<span>1D44E</span></span> <span><math class="testfont"><mi>b</mi></math>=<span>1D44F</span></span> <span><math class="testfont"><mi>c</mi></math>=<span>1D450</span></span> - <span><math class="testfont"><mi>d</mi></math>=<span>1D451</span></span> + <span><math class="testfont"><mi>d</mi></math>=<span>1D451</span></span><br/> <span><math class="testfont"><mi>e</mi></math>=<span>1D452</span></span> <span><math class="testfont"><mi>f</mi></math>=<span>1D453</span></span> <span><math class="testfont"><mi>g</mi></math>=<span>1D454</span></span> <span><math class="testfont"><mi>h</mi></math>=<span>0210E</span></span> <span><math class="testfont"><mi>i</mi></math>=<span>1D456</span></span> <span><math class="testfont"><mi>j</mi></math>=<span>1D457</span></span> - <span><math class="testfont"><mi>k</mi></math>=<span>1D458</span></span><br/> + <span><math class="testfont"><mi>k</mi></math>=<span>1D458</span></span> <span><math class="testfont"><mi>l</mi></math>=<span>1D459</span></span> <span><math class="testfont"><mi>m</mi></math>=<span>1D45A</span></span> - <span><math class="testfont"><mi>n</mi></math>=<span>1D45B</span></span> + <span><math class="testfont"><mi>n</mi></math>=<span>1D45B</span></span><br/> <span><math class="testfont"><mi>o</mi></math>=<span>1D45C</span></span> <span><math class="testfont"><mi>p</mi></math>=<span>1D45D</span></span> <span><math class="testfont"><mi>q</mi></math>=<span>1D45E</span></span> <span><math class="testfont"><mi>r</mi></math>=<span>1D45F</span></span> <span><math class="testfont"><mi>s</mi></math>=<span>1D460</span></span> <span><math class="testfont"><mi>t</mi></math>=<span>1D461</span></span> - <span><math class="testfont"><mi>u</mi></math>=<span>1D462</span></span><br/> + <span><math class="testfont"><mi>u</mi></math>=<span>1D462</span></span> <span><math class="testfont"><mi>v</mi></math>=<span>1D463</span></span> <span><math class="testfont"><mi>w</mi></math>=<span>1D464</span></span> - <span><math class="testfont"><mi>x</mi></math>=<span>1D465</span></span> + <span><math class="testfont"><mi>x</mi></math>=<span>1D465</span></span><br/> <span><math class="testfont"><mi>y</mi></math>=<span>1D466</span></span> <span><math class="testfont"><mi>z</mi></math>=<span>1D467</span></span> <span><math class="testfont"><mi>ı</mi></math>=<span>1D6A4</span></span> + <span><math class="testfont"><mi>ȷ</mi></math>=<span>1D6A5</span></span> <span><math class="testfont"><mi>Α</mi></math>=<span>1D6E2</span></span> <span><math class="testfont"><mi>Β</mi></math>=<span>1D6E3</span></span> <span><math class="testfont"><mi>Γ</mi></math>=<span>1D6E4</span></span> - <span><math class="testfont"><mi>Δ</mi></math>=<span>1D6E5</span></span><br/> + <span><math class="testfont"><mi>Δ</mi></math>=<span>1D6E5</span></span> <span><math class="testfont"><mi>Ε</mi></math>=<span>1D6E6</span></span> - <span><math class="testfont"><mi>Ζ</mi></math>=<span>1D6E7</span></span> + <span><math class="testfont"><mi>Ζ</mi></math>=<span>1D6E7</span></span><br/> <span><math class="testfont"><mi>Η</mi></math>=<span>1D6E8</span></span> <span><math class="testfont"><mi>Θ</mi></math>=<span>1D6E9</span></span> <span><math class="testfont"><mi>Ι</mi></math>=<span>1D6EA</span></span> @@ -98,17 +96,19 @@ <span><math class="testfont"><mi>Λ</mi></math>=<span>1D6EC</span></span> <span><math class="testfont"><mi>Μ</mi></math>=<span>1D6ED</span></span> <span><math class="testfont"><mi>Ν</mi></math>=<span>1D6EE</span></span> - <span><math class="testfont"><mi>Ξ</mi></math>=<span>1D6EF</span></span><br/> + <span><math class="testfont"><mi>Ξ</mi></math>=<span>1D6EF</span></span> <span><math class="testfont"><mi>Ο</mi></math>=<span>1D6F0</span></span> - <span><math class="testfont"><mi>Π</mi></math>=<span>1D6F1</span></span> + <span><math class="testfont"><mi>Π</mi></math>=<span>1D6F1</span></span><br/> <span><math class="testfont"><mi>Ρ</mi></math>=<span>1D6F2</span></span> + <span><math class="testfont"><mi>ϴ</mi></math>=<span>1D6F3</span></span> <span><math class="testfont"><mi>Σ</mi></math>=<span>1D6F4</span></span> <span><math class="testfont"><mi>Τ</mi></math>=<span>1D6F5</span></span> <span><math class="testfont"><mi>Υ</mi></math>=<span>1D6F6</span></span> <span><math class="testfont"><mi>Φ</mi></math>=<span>1D6F7</span></span> <span><math class="testfont"><mi>Χ</mi></math>=<span>1D6F8</span></span> <span><math class="testfont"><mi>Ψ</mi></math>=<span>1D6F9</span></span> - <span><math class="testfont"><mi>Ω</mi></math>=<span>1D6FA</span></span><br/> + <span><math class="testfont"><mi>Ω</mi></math>=<span>1D6FA</span></span> + <span><math class="testfont"><mi>∇</mi></math>=<span>1D6FB</span></span><br/> <span><math class="testfont"><mi>α</mi></math>=<span>1D6FC</span></span> <span><math class="testfont"><mi>β</mi></math>=<span>1D6FD</span></span> <span><math class="testfont"><mi>γ</mi></math>=<span>1D6FE</span></span> @@ -134,12 +134,12 @@ <span><math class="testfont"><mi>χ</mi></math>=<span>1D712</span></span> <span><math class="testfont"><mi>ψ</mi></math>=<span>1D713</span></span> <span><math class="testfont"><mi>ω</mi></math>=<span>1D714</span></span> - <span><math class="testfont"><mi>ϑ</mi></math>=<span>1D717</span></span> - <span><math class="testfont"><mi>ϕ</mi></math>=<span>1D719</span></span> - <span><math class="testfont"><mi>ϖ</mi></math>=<span>1D71B</span></span> - <span><math class="testfont"><mi>ϰ</mi></math>=<span>1D718</span></span> - <span><math class="testfont"><mi>ϱ</mi></math>=<span>1D71A</span></span><br/> - <span><math class="testfont"><mi>ϴ</mi></math>=<span>1D6F3</span></span> + <span><math class="testfont"><mi>∂</mi></math>=<span>1D715</span></span> <span><math class="testfont"><mi>ϵ</mi></math>=<span>1D716</span></span> + <span><math class="testfont"><mi>ϑ</mi></math>=<span>1D717</span></span> + <span><math class="testfont"><mi>ϰ</mi></math>=<span>1D718</span></span> + <span><math class="testfont"><mi>ϕ</mi></math>=<span>1D719</span></span><br/> + <span><math class="testfont"><mi>ϱ</mi></math>=<span>1D71A</span></span> + <span><math class="testfont"><mi>ϖ</mi></math>=<span>1D71B</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic-ref.html index c5eaa22e..9a93a37 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic-ref.html
@@ -23,8 +23,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𝝏</mtext></math>=<span>1D74F</span></span> - <span><math class="testfont"><mtext>𝜵</mtext></math>=<span>1D735</span></span> <span><math class="testfont"><mtext>𝑨</mtext></math>=<span>1D468</span></span> <span><math class="testfont"><mtext>𝑩</mtext></math>=<span>1D469</span></span> <span><math class="testfont"><mtext>𝑪</mtext></math>=<span>1D46A</span></span> @@ -32,9 +30,9 @@ <span><math class="testfont"><mtext>𝑬</mtext></math>=<span>1D46C</span></span> <span><math class="testfont"><mtext>𝑭</mtext></math>=<span>1D46D</span></span> <span><math class="testfont"><mtext>𝑮</mtext></math>=<span>1D46E</span></span> - <span><math class="testfont"><mtext>𝑯</mtext></math>=<span>1D46F</span></span><br/> + <span><math class="testfont"><mtext>𝑯</mtext></math>=<span>1D46F</span></span> <span><math class="testfont"><mtext>𝑰</mtext></math>=<span>1D470</span></span> - <span><math class="testfont"><mtext>𝑱</mtext></math>=<span>1D471</span></span> + <span><math class="testfont"><mtext>𝑱</mtext></math>=<span>1D471</span></span><br/> <span><math class="testfont"><mtext>𝑲</mtext></math>=<span>1D472</span></span> <span><math class="testfont"><mtext>𝑳</mtext></math>=<span>1D473</span></span> <span><math class="testfont"><mtext>𝑴</mtext></math>=<span>1D474</span></span> @@ -42,9 +40,9 @@ <span><math class="testfont"><mtext>𝑶</mtext></math>=<span>1D476</span></span> <span><math class="testfont"><mtext>𝑷</mtext></math>=<span>1D477</span></span> <span><math class="testfont"><mtext>𝑸</mtext></math>=<span>1D478</span></span> - <span><math class="testfont"><mtext>𝑹</mtext></math>=<span>1D479</span></span><br/> + <span><math class="testfont"><mtext>𝑹</mtext></math>=<span>1D479</span></span> <span><math class="testfont"><mtext>𝑺</mtext></math>=<span>1D47A</span></span> - <span><math class="testfont"><mtext>𝑻</mtext></math>=<span>1D47B</span></span> + <span><math class="testfont"><mtext>𝑻</mtext></math>=<span>1D47B</span></span><br/> <span><math class="testfont"><mtext>𝑼</mtext></math>=<span>1D47C</span></span> <span><math class="testfont"><mtext>𝑽</mtext></math>=<span>1D47D</span></span> <span><math class="testfont"><mtext>𝑾</mtext></math>=<span>1D47E</span></span> @@ -52,9 +50,9 @@ <span><math class="testfont"><mtext>𝒀</mtext></math>=<span>1D480</span></span> <span><math class="testfont"><mtext>𝒁</mtext></math>=<span>1D481</span></span> <span><math class="testfont"><mtext>𝒂</mtext></math>=<span>1D482</span></span> - <span><math class="testfont"><mtext>𝒃</mtext></math>=<span>1D483</span></span><br/> + <span><math class="testfont"><mtext>𝒃</mtext></math>=<span>1D483</span></span> <span><math class="testfont"><mtext>𝒄</mtext></math>=<span>1D484</span></span> - <span><math class="testfont"><mtext>𝒅</mtext></math>=<span>1D485</span></span> + <span><math class="testfont"><mtext>𝒅</mtext></math>=<span>1D485</span></span><br/> <span><math class="testfont"><mtext>𝒆</mtext></math>=<span>1D486</span></span> <span><math class="testfont"><mtext>𝒇</mtext></math>=<span>1D487</span></span> <span><math class="testfont"><mtext>𝒈</mtext></math>=<span>1D488</span></span> @@ -62,9 +60,9 @@ <span><math class="testfont"><mtext>𝒊</mtext></math>=<span>1D48A</span></span> <span><math class="testfont"><mtext>𝒋</mtext></math>=<span>1D48B</span></span> <span><math class="testfont"><mtext>𝒌</mtext></math>=<span>1D48C</span></span> - <span><math class="testfont"><mtext>𝒍</mtext></math>=<span>1D48D</span></span><br/> + <span><math class="testfont"><mtext>𝒍</mtext></math>=<span>1D48D</span></span> <span><math class="testfont"><mtext>𝒎</mtext></math>=<span>1D48E</span></span> - <span><math class="testfont"><mtext>𝒏</mtext></math>=<span>1D48F</span></span> + <span><math class="testfont"><mtext>𝒏</mtext></math>=<span>1D48F</span></span><br/> <span><math class="testfont"><mtext>𝒐</mtext></math>=<span>1D490</span></span> <span><math class="testfont"><mtext>𝒑</mtext></math>=<span>1D491</span></span> <span><math class="testfont"><mtext>𝒒</mtext></math>=<span>1D492</span></span> @@ -72,9 +70,9 @@ <span><math class="testfont"><mtext>𝒔</mtext></math>=<span>1D494</span></span> <span><math class="testfont"><mtext>𝒕</mtext></math>=<span>1D495</span></span> <span><math class="testfont"><mtext>𝒖</mtext></math>=<span>1D496</span></span> - <span><math class="testfont"><mtext>𝒗</mtext></math>=<span>1D497</span></span><br/> + <span><math class="testfont"><mtext>𝒗</mtext></math>=<span>1D497</span></span> <span><math class="testfont"><mtext>𝒘</mtext></math>=<span>1D498</span></span> - <span><math class="testfont"><mtext>𝒙</mtext></math>=<span>1D499</span></span> + <span><math class="testfont"><mtext>𝒙</mtext></math>=<span>1D499</span></span><br/> <span><math class="testfont"><mtext>𝒚</mtext></math>=<span>1D49A</span></span> <span><math class="testfont"><mtext>𝒛</mtext></math>=<span>1D49B</span></span> <span><math class="testfont"><mtext>𝜜</mtext></math>=<span>1D71C</span></span> @@ -82,9 +80,9 @@ <span><math class="testfont"><mtext>𝜞</mtext></math>=<span>1D71E</span></span> <span><math class="testfont"><mtext>𝜟</mtext></math>=<span>1D71F</span></span> <span><math class="testfont"><mtext>𝜠</mtext></math>=<span>1D720</span></span> - <span><math class="testfont"><mtext>𝜡</mtext></math>=<span>1D721</span></span><br/> + <span><math class="testfont"><mtext>𝜡</mtext></math>=<span>1D721</span></span> <span><math class="testfont"><mtext>𝜢</mtext></math>=<span>1D722</span></span> - <span><math class="testfont"><mtext>𝜣</mtext></math>=<span>1D723</span></span> + <span><math class="testfont"><mtext>𝜣</mtext></math>=<span>1D723</span></span><br/> <span><math class="testfont"><mtext>𝜤</mtext></math>=<span>1D724</span></span> <span><math class="testfont"><mtext>𝜥</mtext></math>=<span>1D725</span></span> <span><math class="testfont"><mtext>𝜦</mtext></math>=<span>1D726</span></span> @@ -92,8 +90,9 @@ <span><math class="testfont"><mtext>𝜨</mtext></math>=<span>1D728</span></span> <span><math class="testfont"><mtext>𝜩</mtext></math>=<span>1D729</span></span> <span><math class="testfont"><mtext>𝜪</mtext></math>=<span>1D72A</span></span> - <span><math class="testfont"><mtext>𝜫</mtext></math>=<span>1D72B</span></span><br/> + <span><math class="testfont"><mtext>𝜫</mtext></math>=<span>1D72B</span></span> <span><math class="testfont"><mtext>𝜬</mtext></math>=<span>1D72C</span></span> + <span><math class="testfont"><mtext>𝜭</mtext></math>=<span>1D72D</span></span><br/> <span><math class="testfont"><mtext>𝜮</mtext></math>=<span>1D72E</span></span> <span><math class="testfont"><mtext>𝜯</mtext></math>=<span>1D72F</span></span> <span><math class="testfont"><mtext>𝜰</mtext></math>=<span>1D730</span></span> @@ -101,6 +100,7 @@ <span><math class="testfont"><mtext>𝜲</mtext></math>=<span>1D732</span></span> <span><math class="testfont"><mtext>𝜳</mtext></math>=<span>1D733</span></span> <span><math class="testfont"><mtext>𝜴</mtext></math>=<span>1D734</span></span> + <span><math class="testfont"><mtext>𝜵</mtext></math>=<span>1D735</span></span> <span><math class="testfont"><mtext>𝜶</mtext></math>=<span>1D736</span></span> <span><math class="testfont"><mtext>𝜷</mtext></math>=<span>1D737</span></span><br/> <span><math class="testfont"><mtext>𝜸</mtext></math>=<span>1D738</span></span> @@ -126,12 +126,12 @@ <span><math class="testfont"><mtext>𝝌</mtext></math>=<span>1D74C</span></span> <span><math class="testfont"><mtext>𝝍</mtext></math>=<span>1D74D</span></span> <span><math class="testfont"><mtext>𝝎</mtext></math>=<span>1D74E</span></span> + <span><math class="testfont"><mtext>𝝏</mtext></math>=<span>1D74F</span></span> + <span><math class="testfont"><mtext>𝝐</mtext></math>=<span>1D750</span></span> <span><math class="testfont"><mtext>𝝑</mtext></math>=<span>1D751</span></span> - <span><math class="testfont"><mtext>𝝓</mtext></math>=<span>1D753</span></span> - <span><math class="testfont"><mtext>𝝕</mtext></math>=<span>1D755</span></span> <span><math class="testfont"><mtext>𝝒</mtext></math>=<span>1D752</span></span> + <span><math class="testfont"><mtext>𝝓</mtext></math>=<span>1D753</span></span> <span><math class="testfont"><mtext>𝝔</mtext></math>=<span>1D754</span></span> - <span><math class="testfont"><mtext>𝜭</mtext></math>=<span>1D72D</span></span> - <span><math class="testfont"><mtext>𝝐</mtext></math>=<span>1D750</span></span><br/> + <span><math class="testfont"><mtext>𝝕</mtext></math>=<span>1D755</span></span><br/> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic.html index 1b8ab885..725559a 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic.html
@@ -29,8 +29,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="bold-italic">∂</mtext></math>=<span>1D74F</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">∇</mtext></math>=<span>1D735</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">A</mtext></math>=<span>1D468</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">B</mtext></math>=<span>1D469</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">C</mtext></math>=<span>1D46A</span></span> @@ -38,9 +36,9 @@ <span><math class="testfont"><mtext mathvariant="bold-italic">E</mtext></math>=<span>1D46C</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">F</mtext></math>=<span>1D46D</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">G</mtext></math>=<span>1D46E</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">H</mtext></math>=<span>1D46F</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-italic">H</mtext></math>=<span>1D46F</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">I</mtext></math>=<span>1D470</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">J</mtext></math>=<span>1D471</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">J</mtext></math>=<span>1D471</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-italic">K</mtext></math>=<span>1D472</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">L</mtext></math>=<span>1D473</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">M</mtext></math>=<span>1D474</span></span> @@ -48,9 +46,9 @@ <span><math class="testfont"><mtext mathvariant="bold-italic">O</mtext></math>=<span>1D476</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">P</mtext></math>=<span>1D477</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Q</mtext></math>=<span>1D478</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">R</mtext></math>=<span>1D479</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-italic">R</mtext></math>=<span>1D479</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">S</mtext></math>=<span>1D47A</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">T</mtext></math>=<span>1D47B</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">T</mtext></math>=<span>1D47B</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-italic">U</mtext></math>=<span>1D47C</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">V</mtext></math>=<span>1D47D</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">W</mtext></math>=<span>1D47E</span></span> @@ -58,9 +56,9 @@ <span><math class="testfont"><mtext mathvariant="bold-italic">Y</mtext></math>=<span>1D480</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Z</mtext></math>=<span>1D481</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">a</mtext></math>=<span>1D482</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">b</mtext></math>=<span>1D483</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-italic">b</mtext></math>=<span>1D483</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">c</mtext></math>=<span>1D484</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">d</mtext></math>=<span>1D485</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">d</mtext></math>=<span>1D485</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-italic">e</mtext></math>=<span>1D486</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">f</mtext></math>=<span>1D487</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">g</mtext></math>=<span>1D488</span></span> @@ -68,9 +66,9 @@ <span><math class="testfont"><mtext mathvariant="bold-italic">i</mtext></math>=<span>1D48A</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">j</mtext></math>=<span>1D48B</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">k</mtext></math>=<span>1D48C</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">l</mtext></math>=<span>1D48D</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-italic">l</mtext></math>=<span>1D48D</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">m</mtext></math>=<span>1D48E</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">n</mtext></math>=<span>1D48F</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">n</mtext></math>=<span>1D48F</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-italic">o</mtext></math>=<span>1D490</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">p</mtext></math>=<span>1D491</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">q</mtext></math>=<span>1D492</span></span> @@ -78,9 +76,9 @@ <span><math class="testfont"><mtext mathvariant="bold-italic">s</mtext></math>=<span>1D494</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">t</mtext></math>=<span>1D495</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">u</mtext></math>=<span>1D496</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">v</mtext></math>=<span>1D497</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-italic">v</mtext></math>=<span>1D497</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">w</mtext></math>=<span>1D498</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">x</mtext></math>=<span>1D499</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">x</mtext></math>=<span>1D499</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-italic">y</mtext></math>=<span>1D49A</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">z</mtext></math>=<span>1D49B</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Α</mtext></math>=<span>1D71C</span></span> @@ -88,9 +86,9 @@ <span><math class="testfont"><mtext mathvariant="bold-italic">Γ</mtext></math>=<span>1D71E</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Δ</mtext></math>=<span>1D71F</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Ε</mtext></math>=<span>1D720</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">Ζ</mtext></math>=<span>1D721</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-italic">Ζ</mtext></math>=<span>1D721</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Η</mtext></math>=<span>1D722</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">Θ</mtext></math>=<span>1D723</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">Θ</mtext></math>=<span>1D723</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-italic">Ι</mtext></math>=<span>1D724</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Κ</mtext></math>=<span>1D725</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Λ</mtext></math>=<span>1D726</span></span> @@ -98,8 +96,9 @@ <span><math class="testfont"><mtext mathvariant="bold-italic">Ν</mtext></math>=<span>1D728</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Ξ</mtext></math>=<span>1D729</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Ο</mtext></math>=<span>1D72A</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">Π</mtext></math>=<span>1D72B</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-italic">Π</mtext></math>=<span>1D72B</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Ρ</mtext></math>=<span>1D72C</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">ϴ</mtext></math>=<span>1D72D</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-italic">Σ</mtext></math>=<span>1D72E</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Τ</mtext></math>=<span>1D72F</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Υ</mtext></math>=<span>1D730</span></span> @@ -107,6 +106,7 @@ <span><math class="testfont"><mtext mathvariant="bold-italic">Χ</mtext></math>=<span>1D732</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Ψ</mtext></math>=<span>1D733</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">Ω</mtext></math>=<span>1D734</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">∇</mtext></math>=<span>1D735</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">α</mtext></math>=<span>1D736</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">β</mtext></math>=<span>1D737</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-italic">γ</mtext></math>=<span>1D738</span></span> @@ -132,12 +132,12 @@ <span><math class="testfont"><mtext mathvariant="bold-italic">χ</mtext></math>=<span>1D74C</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">ψ</mtext></math>=<span>1D74D</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">ω</mtext></math>=<span>1D74E</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">∂</mtext></math>=<span>1D74F</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">ϵ</mtext></math>=<span>1D750</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">ϑ</mtext></math>=<span>1D751</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">ϕ</mtext></math>=<span>1D753</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">ϖ</mtext></math>=<span>1D755</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">ϰ</mtext></math>=<span>1D752</span></span> + <span><math class="testfont"><mtext mathvariant="bold-italic">ϕ</mtext></math>=<span>1D753</span></span> <span><math class="testfont"><mtext mathvariant="bold-italic">ϱ</mtext></math>=<span>1D754</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">ϴ</mtext></math>=<span>1D72D</span></span> - <span><math class="testfont"><mtext mathvariant="bold-italic">ϵ</mtext></math>=<span>1D750</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-italic">ϖ</mtext></math>=<span>1D755</span></span><br/> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-ref.html index 3a727872..ac24ab5b 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-ref.html
@@ -23,18 +23,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𝛛</mtext></math>=<span>1D6DB</span></span> - <span><math class="testfont"><mtext>𝛁</mtext></math>=<span>1D6C1</span></span> - <span><math class="testfont"><mtext>𝟎</mtext></math>=<span>1D7CE</span></span> - <span><math class="testfont"><mtext>𝟏</mtext></math>=<span>1D7CF</span></span> - <span><math class="testfont"><mtext>𝟐</mtext></math>=<span>1D7D0</span></span> - <span><math class="testfont"><mtext>𝟑</mtext></math>=<span>1D7D1</span></span> - <span><math class="testfont"><mtext>𝟒</mtext></math>=<span>1D7D2</span></span> - <span><math class="testfont"><mtext>𝟓</mtext></math>=<span>1D7D3</span></span> - <span><math class="testfont"><mtext>𝟔</mtext></math>=<span>1D7D4</span></span> - <span><math class="testfont"><mtext>𝟕</mtext></math>=<span>1D7D5</span></span><br/> - <span><math class="testfont"><mtext>𝟖</mtext></math>=<span>1D7D6</span></span> - <span><math class="testfont"><mtext>𝟗</mtext></math>=<span>1D7D7</span></span> <span><math class="testfont"><mtext>𝐀</mtext></math>=<span>1D400</span></span> <span><math class="testfont"><mtext>𝐁</mtext></math>=<span>1D401</span></span> <span><math class="testfont"><mtext>𝐂</mtext></math>=<span>1D402</span></span> @@ -42,9 +30,9 @@ <span><math class="testfont"><mtext>𝐄</mtext></math>=<span>1D404</span></span> <span><math class="testfont"><mtext>𝐅</mtext></math>=<span>1D405</span></span> <span><math class="testfont"><mtext>𝐆</mtext></math>=<span>1D406</span></span> - <span><math class="testfont"><mtext>𝐇</mtext></math>=<span>1D407</span></span><br/> + <span><math class="testfont"><mtext>𝐇</mtext></math>=<span>1D407</span></span> <span><math class="testfont"><mtext>𝐈</mtext></math>=<span>1D408</span></span> - <span><math class="testfont"><mtext>𝐉</mtext></math>=<span>1D409</span></span> + <span><math class="testfont"><mtext>𝐉</mtext></math>=<span>1D409</span></span><br/> <span><math class="testfont"><mtext>𝐊</mtext></math>=<span>1D40A</span></span> <span><math class="testfont"><mtext>𝐋</mtext></math>=<span>1D40B</span></span> <span><math class="testfont"><mtext>𝐌</mtext></math>=<span>1D40C</span></span> @@ -52,9 +40,9 @@ <span><math class="testfont"><mtext>𝐎</mtext></math>=<span>1D40E</span></span> <span><math class="testfont"><mtext>𝐏</mtext></math>=<span>1D40F</span></span> <span><math class="testfont"><mtext>𝐐</mtext></math>=<span>1D410</span></span> - <span><math class="testfont"><mtext>𝐑</mtext></math>=<span>1D411</span></span><br/> + <span><math class="testfont"><mtext>𝐑</mtext></math>=<span>1D411</span></span> <span><math class="testfont"><mtext>𝐒</mtext></math>=<span>1D412</span></span> - <span><math class="testfont"><mtext>𝐓</mtext></math>=<span>1D413</span></span> + <span><math class="testfont"><mtext>𝐓</mtext></math>=<span>1D413</span></span><br/> <span><math class="testfont"><mtext>𝐔</mtext></math>=<span>1D414</span></span> <span><math class="testfont"><mtext>𝐕</mtext></math>=<span>1D415</span></span> <span><math class="testfont"><mtext>𝐖</mtext></math>=<span>1D416</span></span> @@ -62,9 +50,9 @@ <span><math class="testfont"><mtext>𝐘</mtext></math>=<span>1D418</span></span> <span><math class="testfont"><mtext>𝐙</mtext></math>=<span>1D419</span></span> <span><math class="testfont"><mtext>𝐚</mtext></math>=<span>1D41A</span></span> - <span><math class="testfont"><mtext>𝐛</mtext></math>=<span>1D41B</span></span><br/> + <span><math class="testfont"><mtext>𝐛</mtext></math>=<span>1D41B</span></span> <span><math class="testfont"><mtext>𝐜</mtext></math>=<span>1D41C</span></span> - <span><math class="testfont"><mtext>𝐝</mtext></math>=<span>1D41D</span></span> + <span><math class="testfont"><mtext>𝐝</mtext></math>=<span>1D41D</span></span><br/> <span><math class="testfont"><mtext>𝐞</mtext></math>=<span>1D41E</span></span> <span><math class="testfont"><mtext>𝐟</mtext></math>=<span>1D41F</span></span> <span><math class="testfont"><mtext>𝐠</mtext></math>=<span>1D420</span></span> @@ -72,9 +60,9 @@ <span><math class="testfont"><mtext>𝐢</mtext></math>=<span>1D422</span></span> <span><math class="testfont"><mtext>𝐣</mtext></math>=<span>1D423</span></span> <span><math class="testfont"><mtext>𝐤</mtext></math>=<span>1D424</span></span> - <span><math class="testfont"><mtext>𝐥</mtext></math>=<span>1D425</span></span><br/> + <span><math class="testfont"><mtext>𝐥</mtext></math>=<span>1D425</span></span> <span><math class="testfont"><mtext>𝐦</mtext></math>=<span>1D426</span></span> - <span><math class="testfont"><mtext>𝐧</mtext></math>=<span>1D427</span></span> + <span><math class="testfont"><mtext>𝐧</mtext></math>=<span>1D427</span></span><br/> <span><math class="testfont"><mtext>𝐨</mtext></math>=<span>1D428</span></span> <span><math class="testfont"><mtext>𝐩</mtext></math>=<span>1D429</span></span> <span><math class="testfont"><mtext>𝐪</mtext></math>=<span>1D42A</span></span> @@ -82,9 +70,9 @@ <span><math class="testfont"><mtext>𝐬</mtext></math>=<span>1D42C</span></span> <span><math class="testfont"><mtext>𝐭</mtext></math>=<span>1D42D</span></span> <span><math class="testfont"><mtext>𝐮</mtext></math>=<span>1D42E</span></span> - <span><math class="testfont"><mtext>𝐯</mtext></math>=<span>1D42F</span></span><br/> + <span><math class="testfont"><mtext>𝐯</mtext></math>=<span>1D42F</span></span> <span><math class="testfont"><mtext>𝐰</mtext></math>=<span>1D430</span></span> - <span><math class="testfont"><mtext>𝐱</mtext></math>=<span>1D431</span></span> + <span><math class="testfont"><mtext>𝐱</mtext></math>=<span>1D431</span></span><br/> <span><math class="testfont"><mtext>𝐲</mtext></math>=<span>1D432</span></span> <span><math class="testfont"><mtext>𝐳</mtext></math>=<span>1D433</span></span> <span><math class="testfont"><mtext>𝚨</mtext></math>=<span>1D6A8</span></span> @@ -92,9 +80,9 @@ <span><math class="testfont"><mtext>𝚪</mtext></math>=<span>1D6AA</span></span> <span><math class="testfont"><mtext>𝚫</mtext></math>=<span>1D6AB</span></span> <span><math class="testfont"><mtext>𝚬</mtext></math>=<span>1D6AC</span></span> - <span><math class="testfont"><mtext>𝚭</mtext></math>=<span>1D6AD</span></span><br/> + <span><math class="testfont"><mtext>𝚭</mtext></math>=<span>1D6AD</span></span> <span><math class="testfont"><mtext>𝚮</mtext></math>=<span>1D6AE</span></span> - <span><math class="testfont"><mtext>𝚯</mtext></math>=<span>1D6AF</span></span> + <span><math class="testfont"><mtext>𝚯</mtext></math>=<span>1D6AF</span></span><br/> <span><math class="testfont"><mtext>𝚰</mtext></math>=<span>1D6B0</span></span> <span><math class="testfont"><mtext>𝚱</mtext></math>=<span>1D6B1</span></span> <span><math class="testfont"><mtext>𝚲</mtext></math>=<span>1D6B2</span></span> @@ -102,8 +90,9 @@ <span><math class="testfont"><mtext>𝚴</mtext></math>=<span>1D6B4</span></span> <span><math class="testfont"><mtext>𝚵</mtext></math>=<span>1D6B5</span></span> <span><math class="testfont"><mtext>𝚶</mtext></math>=<span>1D6B6</span></span> - <span><math class="testfont"><mtext>𝚷</mtext></math>=<span>1D6B7</span></span><br/> + <span><math class="testfont"><mtext>𝚷</mtext></math>=<span>1D6B7</span></span> <span><math class="testfont"><mtext>𝚸</mtext></math>=<span>1D6B8</span></span> + <span><math class="testfont"><mtext>𝚹</mtext></math>=<span>1D6B9</span></span><br/> <span><math class="testfont"><mtext>𝚺</mtext></math>=<span>1D6BA</span></span> <span><math class="testfont"><mtext>𝚻</mtext></math>=<span>1D6BB</span></span> <span><math class="testfont"><mtext>𝚼</mtext></math>=<span>1D6BC</span></span> @@ -111,6 +100,7 @@ <span><math class="testfont"><mtext>𝚾</mtext></math>=<span>1D6BE</span></span> <span><math class="testfont"><mtext>𝚿</mtext></math>=<span>1D6BF</span></span> <span><math class="testfont"><mtext>𝛀</mtext></math>=<span>1D6C0</span></span> + <span><math class="testfont"><mtext>𝛁</mtext></math>=<span>1D6C1</span></span> <span><math class="testfont"><mtext>𝛂</mtext></math>=<span>1D6C2</span></span> <span><math class="testfont"><mtext>𝛃</mtext></math>=<span>1D6C3</span></span><br/> <span><math class="testfont"><mtext>𝛄</mtext></math>=<span>1D6C4</span></span> @@ -136,14 +126,24 @@ <span><math class="testfont"><mtext>𝛘</mtext></math>=<span>1D6D8</span></span> <span><math class="testfont"><mtext>𝛙</mtext></math>=<span>1D6D9</span></span> <span><math class="testfont"><mtext>𝛚</mtext></math>=<span>1D6DA</span></span> + <span><math class="testfont"><mtext>𝛛</mtext></math>=<span>1D6DB</span></span> + <span><math class="testfont"><mtext>𝛜</mtext></math>=<span>1D6DC</span></span> <span><math class="testfont"><mtext>𝛝</mtext></math>=<span>1D6DD</span></span> + <span><math class="testfont"><mtext>𝛞</mtext></math>=<span>1D6DE</span></span> <span><math class="testfont"><mtext>𝛟</mtext></math>=<span>1D6DF</span></span> - <span><math class="testfont"><mtext>𝛡</mtext></math>=<span>1D6E1</span></span> + <span><math class="testfont"><mtext>𝛠</mtext></math>=<span>1D6E0</span></span> + <span><math class="testfont"><mtext>𝛡</mtext></math>=<span>1D6E1</span></span><br/> <span><math class="testfont"><mtext>𝟊</mtext></math>=<span>1D7CA</span></span> <span><math class="testfont"><mtext>𝟋</mtext></math>=<span>1D7CB</span></span> - <span><math class="testfont"><mtext>𝛞</mtext></math>=<span>1D6DE</span></span> - <span><math class="testfont"><mtext>𝛠</mtext></math>=<span>1D6E0</span></span><br/> - <span><math class="testfont"><mtext>𝚹</mtext></math>=<span>1D6B9</span></span> - <span><math class="testfont"><mtext>𝛜</mtext></math>=<span>1D6DC</span></span> + <span><math class="testfont"><mtext>𝟎</mtext></math>=<span>1D7CE</span></span> + <span><math class="testfont"><mtext>𝟏</mtext></math>=<span>1D7CF</span></span> + <span><math class="testfont"><mtext>𝟐</mtext></math>=<span>1D7D0</span></span> + <span><math class="testfont"><mtext>𝟑</mtext></math>=<span>1D7D1</span></span> + <span><math class="testfont"><mtext>𝟒</mtext></math>=<span>1D7D2</span></span> + <span><math class="testfont"><mtext>𝟓</mtext></math>=<span>1D7D3</span></span> + <span><math class="testfont"><mtext>𝟔</mtext></math>=<span>1D7D4</span></span> + <span><math class="testfont"><mtext>𝟕</mtext></math>=<span>1D7D5</span></span><br/> + <span><math class="testfont"><mtext>𝟖</mtext></math>=<span>1D7D6</span></span> + <span><math class="testfont"><mtext>𝟗</mtext></math>=<span>1D7D7</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif-ref.html index ec292b8e..78c0cc5 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif-ref.html
@@ -23,18 +23,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𝞉</mtext></math>=<span>1D789</span></span> - <span><math class="testfont"><mtext>𝝯</mtext></math>=<span>1D76F</span></span> - <span><math class="testfont"><mtext>𝟬</mtext></math>=<span>1D7EC</span></span> - <span><math class="testfont"><mtext>𝟭</mtext></math>=<span>1D7ED</span></span> - <span><math class="testfont"><mtext>𝟮</mtext></math>=<span>1D7EE</span></span> - <span><math class="testfont"><mtext>𝟯</mtext></math>=<span>1D7EF</span></span> - <span><math class="testfont"><mtext>𝟰</mtext></math>=<span>1D7F0</span></span> - <span><math class="testfont"><mtext>𝟱</mtext></math>=<span>1D7F1</span></span> - <span><math class="testfont"><mtext>𝟲</mtext></math>=<span>1D7F2</span></span> - <span><math class="testfont"><mtext>𝟳</mtext></math>=<span>1D7F3</span></span><br/> - <span><math class="testfont"><mtext>𝟴</mtext></math>=<span>1D7F4</span></span> - <span><math class="testfont"><mtext>𝟵</mtext></math>=<span>1D7F5</span></span> <span><math class="testfont"><mtext>𝗔</mtext></math>=<span>1D5D4</span></span> <span><math class="testfont"><mtext>𝗕</mtext></math>=<span>1D5D5</span></span> <span><math class="testfont"><mtext>𝗖</mtext></math>=<span>1D5D6</span></span> @@ -42,9 +30,9 @@ <span><math class="testfont"><mtext>𝗘</mtext></math>=<span>1D5D8</span></span> <span><math class="testfont"><mtext>𝗙</mtext></math>=<span>1D5D9</span></span> <span><math class="testfont"><mtext>𝗚</mtext></math>=<span>1D5DA</span></span> - <span><math class="testfont"><mtext>𝗛</mtext></math>=<span>1D5DB</span></span><br/> + <span><math class="testfont"><mtext>𝗛</mtext></math>=<span>1D5DB</span></span> <span><math class="testfont"><mtext>𝗜</mtext></math>=<span>1D5DC</span></span> - <span><math class="testfont"><mtext>𝗝</mtext></math>=<span>1D5DD</span></span> + <span><math class="testfont"><mtext>𝗝</mtext></math>=<span>1D5DD</span></span><br/> <span><math class="testfont"><mtext>𝗞</mtext></math>=<span>1D5DE</span></span> <span><math class="testfont"><mtext>𝗟</mtext></math>=<span>1D5DF</span></span> <span><math class="testfont"><mtext>𝗠</mtext></math>=<span>1D5E0</span></span> @@ -52,9 +40,9 @@ <span><math class="testfont"><mtext>𝗢</mtext></math>=<span>1D5E2</span></span> <span><math class="testfont"><mtext>𝗣</mtext></math>=<span>1D5E3</span></span> <span><math class="testfont"><mtext>𝗤</mtext></math>=<span>1D5E4</span></span> - <span><math class="testfont"><mtext>𝗥</mtext></math>=<span>1D5E5</span></span><br/> + <span><math class="testfont"><mtext>𝗥</mtext></math>=<span>1D5E5</span></span> <span><math class="testfont"><mtext>𝗦</mtext></math>=<span>1D5E6</span></span> - <span><math class="testfont"><mtext>𝗧</mtext></math>=<span>1D5E7</span></span> + <span><math class="testfont"><mtext>𝗧</mtext></math>=<span>1D5E7</span></span><br/> <span><math class="testfont"><mtext>𝗨</mtext></math>=<span>1D5E8</span></span> <span><math class="testfont"><mtext>𝗩</mtext></math>=<span>1D5E9</span></span> <span><math class="testfont"><mtext>𝗪</mtext></math>=<span>1D5EA</span></span> @@ -62,9 +50,9 @@ <span><math class="testfont"><mtext>𝗬</mtext></math>=<span>1D5EC</span></span> <span><math class="testfont"><mtext>𝗭</mtext></math>=<span>1D5ED</span></span> <span><math class="testfont"><mtext>𝗮</mtext></math>=<span>1D5EE</span></span> - <span><math class="testfont"><mtext>𝗯</mtext></math>=<span>1D5EF</span></span><br/> + <span><math class="testfont"><mtext>𝗯</mtext></math>=<span>1D5EF</span></span> <span><math class="testfont"><mtext>𝗰</mtext></math>=<span>1D5F0</span></span> - <span><math class="testfont"><mtext>𝗱</mtext></math>=<span>1D5F1</span></span> + <span><math class="testfont"><mtext>𝗱</mtext></math>=<span>1D5F1</span></span><br/> <span><math class="testfont"><mtext>𝗲</mtext></math>=<span>1D5F2</span></span> <span><math class="testfont"><mtext>𝗳</mtext></math>=<span>1D5F3</span></span> <span><math class="testfont"><mtext>𝗴</mtext></math>=<span>1D5F4</span></span> @@ -72,9 +60,9 @@ <span><math class="testfont"><mtext>𝗶</mtext></math>=<span>1D5F6</span></span> <span><math class="testfont"><mtext>𝗷</mtext></math>=<span>1D5F7</span></span> <span><math class="testfont"><mtext>𝗸</mtext></math>=<span>1D5F8</span></span> - <span><math class="testfont"><mtext>𝗹</mtext></math>=<span>1D5F9</span></span><br/> + <span><math class="testfont"><mtext>𝗹</mtext></math>=<span>1D5F9</span></span> <span><math class="testfont"><mtext>𝗺</mtext></math>=<span>1D5FA</span></span> - <span><math class="testfont"><mtext>𝗻</mtext></math>=<span>1D5FB</span></span> + <span><math class="testfont"><mtext>𝗻</mtext></math>=<span>1D5FB</span></span><br/> <span><math class="testfont"><mtext>𝗼</mtext></math>=<span>1D5FC</span></span> <span><math class="testfont"><mtext>𝗽</mtext></math>=<span>1D5FD</span></span> <span><math class="testfont"><mtext>𝗾</mtext></math>=<span>1D5FE</span></span> @@ -82,9 +70,9 @@ <span><math class="testfont"><mtext>𝘀</mtext></math>=<span>1D600</span></span> <span><math class="testfont"><mtext>𝘁</mtext></math>=<span>1D601</span></span> <span><math class="testfont"><mtext>𝘂</mtext></math>=<span>1D602</span></span> - <span><math class="testfont"><mtext>𝘃</mtext></math>=<span>1D603</span></span><br/> + <span><math class="testfont"><mtext>𝘃</mtext></math>=<span>1D603</span></span> <span><math class="testfont"><mtext>𝘄</mtext></math>=<span>1D604</span></span> - <span><math class="testfont"><mtext>𝘅</mtext></math>=<span>1D605</span></span> + <span><math class="testfont"><mtext>𝘅</mtext></math>=<span>1D605</span></span><br/> <span><math class="testfont"><mtext>𝘆</mtext></math>=<span>1D606</span></span> <span><math class="testfont"><mtext>𝘇</mtext></math>=<span>1D607</span></span> <span><math class="testfont"><mtext>𝝖</mtext></math>=<span>1D756</span></span> @@ -92,9 +80,9 @@ <span><math class="testfont"><mtext>𝝘</mtext></math>=<span>1D758</span></span> <span><math class="testfont"><mtext>𝝙</mtext></math>=<span>1D759</span></span> <span><math class="testfont"><mtext>𝝚</mtext></math>=<span>1D75A</span></span> - <span><math class="testfont"><mtext>𝝛</mtext></math>=<span>1D75B</span></span><br/> + <span><math class="testfont"><mtext>𝝛</mtext></math>=<span>1D75B</span></span> <span><math class="testfont"><mtext>𝝜</mtext></math>=<span>1D75C</span></span> - <span><math class="testfont"><mtext>𝝝</mtext></math>=<span>1D75D</span></span> + <span><math class="testfont"><mtext>𝝝</mtext></math>=<span>1D75D</span></span><br/> <span><math class="testfont"><mtext>𝝞</mtext></math>=<span>1D75E</span></span> <span><math class="testfont"><mtext>𝝟</mtext></math>=<span>1D75F</span></span> <span><math class="testfont"><mtext>𝝠</mtext></math>=<span>1D760</span></span> @@ -102,8 +90,9 @@ <span><math class="testfont"><mtext>𝝢</mtext></math>=<span>1D762</span></span> <span><math class="testfont"><mtext>𝝣</mtext></math>=<span>1D763</span></span> <span><math class="testfont"><mtext>𝝤</mtext></math>=<span>1D764</span></span> - <span><math class="testfont"><mtext>𝝥</mtext></math>=<span>1D765</span></span><br/> + <span><math class="testfont"><mtext>𝝥</mtext></math>=<span>1D765</span></span> <span><math class="testfont"><mtext>𝝦</mtext></math>=<span>1D766</span></span> + <span><math class="testfont"><mtext>𝝧</mtext></math>=<span>1D767</span></span><br/> <span><math class="testfont"><mtext>𝝨</mtext></math>=<span>1D768</span></span> <span><math class="testfont"><mtext>𝝩</mtext></math>=<span>1D769</span></span> <span><math class="testfont"><mtext>𝝪</mtext></math>=<span>1D76A</span></span> @@ -111,6 +100,7 @@ <span><math class="testfont"><mtext>𝝬</mtext></math>=<span>1D76C</span></span> <span><math class="testfont"><mtext>𝝭</mtext></math>=<span>1D76D</span></span> <span><math class="testfont"><mtext>𝝮</mtext></math>=<span>1D76E</span></span> + <span><math class="testfont"><mtext>𝝯</mtext></math>=<span>1D76F</span></span> <span><math class="testfont"><mtext>𝝰</mtext></math>=<span>1D770</span></span> <span><math class="testfont"><mtext>𝝱</mtext></math>=<span>1D771</span></span><br/> <span><math class="testfont"><mtext>𝝲</mtext></math>=<span>1D772</span></span> @@ -136,12 +126,22 @@ <span><math class="testfont"><mtext>𝞆</mtext></math>=<span>1D786</span></span> <span><math class="testfont"><mtext>𝞇</mtext></math>=<span>1D787</span></span> <span><math class="testfont"><mtext>𝞈</mtext></math>=<span>1D788</span></span> + <span><math class="testfont"><mtext>𝞉</mtext></math>=<span>1D789</span></span> + <span><math class="testfont"><mtext>𝞊</mtext></math>=<span>1D78A</span></span> <span><math class="testfont"><mtext>𝞋</mtext></math>=<span>1D78B</span></span> - <span><math class="testfont"><mtext>𝞍</mtext></math>=<span>1D78D</span></span> - <span><math class="testfont"><mtext>𝞏</mtext></math>=<span>1D78F</span></span> <span><math class="testfont"><mtext>𝞌</mtext></math>=<span>1D78C</span></span> + <span><math class="testfont"><mtext>𝞍</mtext></math>=<span>1D78D</span></span> <span><math class="testfont"><mtext>𝞎</mtext></math>=<span>1D78E</span></span> - <span><math class="testfont"><mtext>𝝧</mtext></math>=<span>1D767</span></span> - <span><math class="testfont"><mtext>𝞊</mtext></math>=<span>1D78A</span></span><br/> + <span><math class="testfont"><mtext>𝞏</mtext></math>=<span>1D78F</span></span><br/> + <span><math class="testfont"><mtext>𝟬</mtext></math>=<span>1D7EC</span></span> + <span><math class="testfont"><mtext>𝟭</mtext></math>=<span>1D7ED</span></span> + <span><math class="testfont"><mtext>𝟮</mtext></math>=<span>1D7EE</span></span> + <span><math class="testfont"><mtext>𝟯</mtext></math>=<span>1D7EF</span></span> + <span><math class="testfont"><mtext>𝟰</mtext></math>=<span>1D7F0</span></span> + <span><math class="testfont"><mtext>𝟱</mtext></math>=<span>1D7F1</span></span> + <span><math class="testfont"><mtext>𝟲</mtext></math>=<span>1D7F2</span></span> + <span><math class="testfont"><mtext>𝟳</mtext></math>=<span>1D7F3</span></span> + <span><math class="testfont"><mtext>𝟴</mtext></math>=<span>1D7F4</span></span> + <span><math class="testfont"><mtext>𝟵</mtext></math>=<span>1D7F5</span></span><br/> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif.html index cd7fdfa..0e0662d 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif.html
@@ -29,18 +29,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">∂</mtext></math>=<span>1D789</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">∇</mtext></math>=<span>1D76F</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">0</mtext></math>=<span>1D7EC</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">1</mtext></math>=<span>1D7ED</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">2</mtext></math>=<span>1D7EE</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">3</mtext></math>=<span>1D7EF</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">4</mtext></math>=<span>1D7F0</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">5</mtext></math>=<span>1D7F1</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">6</mtext></math>=<span>1D7F2</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">7</mtext></math>=<span>1D7F3</span></span><br/> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">8</mtext></math>=<span>1D7F4</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">9</mtext></math>=<span>1D7F5</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">A</mtext></math>=<span>1D5D4</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">B</mtext></math>=<span>1D5D5</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">C</mtext></math>=<span>1D5D6</span></span> @@ -48,9 +36,9 @@ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">E</mtext></math>=<span>1D5D8</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">F</mtext></math>=<span>1D5D9</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">G</mtext></math>=<span>1D5DA</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">H</mtext></math>=<span>1D5DB</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">H</mtext></math>=<span>1D5DB</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">I</mtext></math>=<span>1D5DC</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">J</mtext></math>=<span>1D5DD</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">J</mtext></math>=<span>1D5DD</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">K</mtext></math>=<span>1D5DE</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">L</mtext></math>=<span>1D5DF</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">M</mtext></math>=<span>1D5E0</span></span> @@ -58,9 +46,9 @@ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">O</mtext></math>=<span>1D5E2</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">P</mtext></math>=<span>1D5E3</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Q</mtext></math>=<span>1D5E4</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">R</mtext></math>=<span>1D5E5</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">R</mtext></math>=<span>1D5E5</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">S</mtext></math>=<span>1D5E6</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">T</mtext></math>=<span>1D5E7</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">T</mtext></math>=<span>1D5E7</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">U</mtext></math>=<span>1D5E8</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">V</mtext></math>=<span>1D5E9</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">W</mtext></math>=<span>1D5EA</span></span> @@ -68,9 +56,9 @@ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Y</mtext></math>=<span>1D5EC</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Z</mtext></math>=<span>1D5ED</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">a</mtext></math>=<span>1D5EE</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">b</mtext></math>=<span>1D5EF</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">b</mtext></math>=<span>1D5EF</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">c</mtext></math>=<span>1D5F0</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">d</mtext></math>=<span>1D5F1</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">d</mtext></math>=<span>1D5F1</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">e</mtext></math>=<span>1D5F2</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">f</mtext></math>=<span>1D5F3</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">g</mtext></math>=<span>1D5F4</span></span> @@ -78,9 +66,9 @@ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">i</mtext></math>=<span>1D5F6</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">j</mtext></math>=<span>1D5F7</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">k</mtext></math>=<span>1D5F8</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">l</mtext></math>=<span>1D5F9</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">l</mtext></math>=<span>1D5F9</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">m</mtext></math>=<span>1D5FA</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">n</mtext></math>=<span>1D5FB</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">n</mtext></math>=<span>1D5FB</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">o</mtext></math>=<span>1D5FC</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">p</mtext></math>=<span>1D5FD</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">q</mtext></math>=<span>1D5FE</span></span> @@ -88,9 +76,9 @@ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">s</mtext></math>=<span>1D600</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">t</mtext></math>=<span>1D601</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">u</mtext></math>=<span>1D602</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">v</mtext></math>=<span>1D603</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">v</mtext></math>=<span>1D603</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">w</mtext></math>=<span>1D604</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">x</mtext></math>=<span>1D605</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">x</mtext></math>=<span>1D605</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">y</mtext></math>=<span>1D606</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">z</mtext></math>=<span>1D607</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Α</mtext></math>=<span>1D756</span></span> @@ -98,9 +86,9 @@ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Γ</mtext></math>=<span>1D758</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Δ</mtext></math>=<span>1D759</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Ε</mtext></math>=<span>1D75A</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Ζ</mtext></math>=<span>1D75B</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Ζ</mtext></math>=<span>1D75B</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Η</mtext></math>=<span>1D75C</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Θ</mtext></math>=<span>1D75D</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Θ</mtext></math>=<span>1D75D</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Ι</mtext></math>=<span>1D75E</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Κ</mtext></math>=<span>1D75F</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Λ</mtext></math>=<span>1D760</span></span> @@ -108,8 +96,9 @@ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Ν</mtext></math>=<span>1D762</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Ξ</mtext></math>=<span>1D763</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Ο</mtext></math>=<span>1D764</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Π</mtext></math>=<span>1D765</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Π</mtext></math>=<span>1D765</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Ρ</mtext></math>=<span>1D766</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϴ</mtext></math>=<span>1D767</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Σ</mtext></math>=<span>1D768</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Τ</mtext></math>=<span>1D769</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Υ</mtext></math>=<span>1D76A</span></span> @@ -117,6 +106,7 @@ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Χ</mtext></math>=<span>1D76C</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Ψ</mtext></math>=<span>1D76D</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">Ω</mtext></math>=<span>1D76E</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">∇</mtext></math>=<span>1D76F</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">α</mtext></math>=<span>1D770</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">β</mtext></math>=<span>1D771</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">γ</mtext></math>=<span>1D772</span></span> @@ -142,12 +132,22 @@ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">χ</mtext></math>=<span>1D786</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ψ</mtext></math>=<span>1D787</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ω</mtext></math>=<span>1D788</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">∂</mtext></math>=<span>1D789</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϵ</mtext></math>=<span>1D78A</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϑ</mtext></math>=<span>1D78B</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϕ</mtext></math>=<span>1D78D</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϖ</mtext></math>=<span>1D78F</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϰ</mtext></math>=<span>1D78C</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϕ</mtext></math>=<span>1D78D</span></span> <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϱ</mtext></math>=<span>1D78E</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϴ</mtext></math>=<span>1D767</span></span> - <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϵ</mtext></math>=<span>1D78A</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">ϖ</mtext></math>=<span>1D78F</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">0</mtext></math>=<span>1D7EC</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">1</mtext></math>=<span>1D7ED</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">2</mtext></math>=<span>1D7EE</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">3</mtext></math>=<span>1D7EF</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">4</mtext></math>=<span>1D7F0</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">5</mtext></math>=<span>1D7F1</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">6</mtext></math>=<span>1D7F2</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">7</mtext></math>=<span>1D7F3</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">8</mtext></math>=<span>1D7F4</span></span> + <span><math class="testfont"><mtext mathvariant="bold-sans-serif">9</mtext></math>=<span>1D7F5</span></span><br/> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold.html index 513eac7..db5f475 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold.html
@@ -29,18 +29,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="bold">∂</mtext></math>=<span>1D6DB</span></span> - <span><math class="testfont"><mtext mathvariant="bold">∇</mtext></math>=<span>1D6C1</span></span> - <span><math class="testfont"><mtext mathvariant="bold">0</mtext></math>=<span>1D7CE</span></span> - <span><math class="testfont"><mtext mathvariant="bold">1</mtext></math>=<span>1D7CF</span></span> - <span><math class="testfont"><mtext mathvariant="bold">2</mtext></math>=<span>1D7D0</span></span> - <span><math class="testfont"><mtext mathvariant="bold">3</mtext></math>=<span>1D7D1</span></span> - <span><math class="testfont"><mtext mathvariant="bold">4</mtext></math>=<span>1D7D2</span></span> - <span><math class="testfont"><mtext mathvariant="bold">5</mtext></math>=<span>1D7D3</span></span> - <span><math class="testfont"><mtext mathvariant="bold">6</mtext></math>=<span>1D7D4</span></span> - <span><math class="testfont"><mtext mathvariant="bold">7</mtext></math>=<span>1D7D5</span></span><br/> - <span><math class="testfont"><mtext mathvariant="bold">8</mtext></math>=<span>1D7D6</span></span> - <span><math class="testfont"><mtext mathvariant="bold">9</mtext></math>=<span>1D7D7</span></span> <span><math class="testfont"><mtext mathvariant="bold">A</mtext></math>=<span>1D400</span></span> <span><math class="testfont"><mtext mathvariant="bold">B</mtext></math>=<span>1D401</span></span> <span><math class="testfont"><mtext mathvariant="bold">C</mtext></math>=<span>1D402</span></span> @@ -48,9 +36,9 @@ <span><math class="testfont"><mtext mathvariant="bold">E</mtext></math>=<span>1D404</span></span> <span><math class="testfont"><mtext mathvariant="bold">F</mtext></math>=<span>1D405</span></span> <span><math class="testfont"><mtext mathvariant="bold">G</mtext></math>=<span>1D406</span></span> - <span><math class="testfont"><mtext mathvariant="bold">H</mtext></math>=<span>1D407</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold">H</mtext></math>=<span>1D407</span></span> <span><math class="testfont"><mtext mathvariant="bold">I</mtext></math>=<span>1D408</span></span> - <span><math class="testfont"><mtext mathvariant="bold">J</mtext></math>=<span>1D409</span></span> + <span><math class="testfont"><mtext mathvariant="bold">J</mtext></math>=<span>1D409</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold">K</mtext></math>=<span>1D40A</span></span> <span><math class="testfont"><mtext mathvariant="bold">L</mtext></math>=<span>1D40B</span></span> <span><math class="testfont"><mtext mathvariant="bold">M</mtext></math>=<span>1D40C</span></span> @@ -58,9 +46,9 @@ <span><math class="testfont"><mtext mathvariant="bold">O</mtext></math>=<span>1D40E</span></span> <span><math class="testfont"><mtext mathvariant="bold">P</mtext></math>=<span>1D40F</span></span> <span><math class="testfont"><mtext mathvariant="bold">Q</mtext></math>=<span>1D410</span></span> - <span><math class="testfont"><mtext mathvariant="bold">R</mtext></math>=<span>1D411</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold">R</mtext></math>=<span>1D411</span></span> <span><math class="testfont"><mtext mathvariant="bold">S</mtext></math>=<span>1D412</span></span> - <span><math class="testfont"><mtext mathvariant="bold">T</mtext></math>=<span>1D413</span></span> + <span><math class="testfont"><mtext mathvariant="bold">T</mtext></math>=<span>1D413</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold">U</mtext></math>=<span>1D414</span></span> <span><math class="testfont"><mtext mathvariant="bold">V</mtext></math>=<span>1D415</span></span> <span><math class="testfont"><mtext mathvariant="bold">W</mtext></math>=<span>1D416</span></span> @@ -68,9 +56,9 @@ <span><math class="testfont"><mtext mathvariant="bold">Y</mtext></math>=<span>1D418</span></span> <span><math class="testfont"><mtext mathvariant="bold">Z</mtext></math>=<span>1D419</span></span> <span><math class="testfont"><mtext mathvariant="bold">a</mtext></math>=<span>1D41A</span></span> - <span><math class="testfont"><mtext mathvariant="bold">b</mtext></math>=<span>1D41B</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold">b</mtext></math>=<span>1D41B</span></span> <span><math class="testfont"><mtext mathvariant="bold">c</mtext></math>=<span>1D41C</span></span> - <span><math class="testfont"><mtext mathvariant="bold">d</mtext></math>=<span>1D41D</span></span> + <span><math class="testfont"><mtext mathvariant="bold">d</mtext></math>=<span>1D41D</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold">e</mtext></math>=<span>1D41E</span></span> <span><math class="testfont"><mtext mathvariant="bold">f</mtext></math>=<span>1D41F</span></span> <span><math class="testfont"><mtext mathvariant="bold">g</mtext></math>=<span>1D420</span></span> @@ -78,9 +66,9 @@ <span><math class="testfont"><mtext mathvariant="bold">i</mtext></math>=<span>1D422</span></span> <span><math class="testfont"><mtext mathvariant="bold">j</mtext></math>=<span>1D423</span></span> <span><math class="testfont"><mtext mathvariant="bold">k</mtext></math>=<span>1D424</span></span> - <span><math class="testfont"><mtext mathvariant="bold">l</mtext></math>=<span>1D425</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold">l</mtext></math>=<span>1D425</span></span> <span><math class="testfont"><mtext mathvariant="bold">m</mtext></math>=<span>1D426</span></span> - <span><math class="testfont"><mtext mathvariant="bold">n</mtext></math>=<span>1D427</span></span> + <span><math class="testfont"><mtext mathvariant="bold">n</mtext></math>=<span>1D427</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold">o</mtext></math>=<span>1D428</span></span> <span><math class="testfont"><mtext mathvariant="bold">p</mtext></math>=<span>1D429</span></span> <span><math class="testfont"><mtext mathvariant="bold">q</mtext></math>=<span>1D42A</span></span> @@ -88,9 +76,9 @@ <span><math class="testfont"><mtext mathvariant="bold">s</mtext></math>=<span>1D42C</span></span> <span><math class="testfont"><mtext mathvariant="bold">t</mtext></math>=<span>1D42D</span></span> <span><math class="testfont"><mtext mathvariant="bold">u</mtext></math>=<span>1D42E</span></span> - <span><math class="testfont"><mtext mathvariant="bold">v</mtext></math>=<span>1D42F</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold">v</mtext></math>=<span>1D42F</span></span> <span><math class="testfont"><mtext mathvariant="bold">w</mtext></math>=<span>1D430</span></span> - <span><math class="testfont"><mtext mathvariant="bold">x</mtext></math>=<span>1D431</span></span> + <span><math class="testfont"><mtext mathvariant="bold">x</mtext></math>=<span>1D431</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold">y</mtext></math>=<span>1D432</span></span> <span><math class="testfont"><mtext mathvariant="bold">z</mtext></math>=<span>1D433</span></span> <span><math class="testfont"><mtext mathvariant="bold">Α</mtext></math>=<span>1D6A8</span></span> @@ -98,9 +86,9 @@ <span><math class="testfont"><mtext mathvariant="bold">Γ</mtext></math>=<span>1D6AA</span></span> <span><math class="testfont"><mtext mathvariant="bold">Δ</mtext></math>=<span>1D6AB</span></span> <span><math class="testfont"><mtext mathvariant="bold">Ε</mtext></math>=<span>1D6AC</span></span> - <span><math class="testfont"><mtext mathvariant="bold">Ζ</mtext></math>=<span>1D6AD</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold">Ζ</mtext></math>=<span>1D6AD</span></span> <span><math class="testfont"><mtext mathvariant="bold">Η</mtext></math>=<span>1D6AE</span></span> - <span><math class="testfont"><mtext mathvariant="bold">Θ</mtext></math>=<span>1D6AF</span></span> + <span><math class="testfont"><mtext mathvariant="bold">Θ</mtext></math>=<span>1D6AF</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold">Ι</mtext></math>=<span>1D6B0</span></span> <span><math class="testfont"><mtext mathvariant="bold">Κ</mtext></math>=<span>1D6B1</span></span> <span><math class="testfont"><mtext mathvariant="bold">Λ</mtext></math>=<span>1D6B2</span></span> @@ -108,8 +96,9 @@ <span><math class="testfont"><mtext mathvariant="bold">Ν</mtext></math>=<span>1D6B4</span></span> <span><math class="testfont"><mtext mathvariant="bold">Ξ</mtext></math>=<span>1D6B5</span></span> <span><math class="testfont"><mtext mathvariant="bold">Ο</mtext></math>=<span>1D6B6</span></span> - <span><math class="testfont"><mtext mathvariant="bold">Π</mtext></math>=<span>1D6B7</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold">Π</mtext></math>=<span>1D6B7</span></span> <span><math class="testfont"><mtext mathvariant="bold">Ρ</mtext></math>=<span>1D6B8</span></span> + <span><math class="testfont"><mtext mathvariant="bold">ϴ</mtext></math>=<span>1D6B9</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold">Σ</mtext></math>=<span>1D6BA</span></span> <span><math class="testfont"><mtext mathvariant="bold">Τ</mtext></math>=<span>1D6BB</span></span> <span><math class="testfont"><mtext mathvariant="bold">Υ</mtext></math>=<span>1D6BC</span></span> @@ -117,6 +106,7 @@ <span><math class="testfont"><mtext mathvariant="bold">Χ</mtext></math>=<span>1D6BE</span></span> <span><math class="testfont"><mtext mathvariant="bold">Ψ</mtext></math>=<span>1D6BF</span></span> <span><math class="testfont"><mtext mathvariant="bold">Ω</mtext></math>=<span>1D6C0</span></span> + <span><math class="testfont"><mtext mathvariant="bold">∇</mtext></math>=<span>1D6C1</span></span> <span><math class="testfont"><mtext mathvariant="bold">α</mtext></math>=<span>1D6C2</span></span> <span><math class="testfont"><mtext mathvariant="bold">β</mtext></math>=<span>1D6C3</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold">γ</mtext></math>=<span>1D6C4</span></span> @@ -142,14 +132,24 @@ <span><math class="testfont"><mtext mathvariant="bold">χ</mtext></math>=<span>1D6D8</span></span> <span><math class="testfont"><mtext mathvariant="bold">ψ</mtext></math>=<span>1D6D9</span></span> <span><math class="testfont"><mtext mathvariant="bold">ω</mtext></math>=<span>1D6DA</span></span> + <span><math class="testfont"><mtext mathvariant="bold">∂</mtext></math>=<span>1D6DB</span></span> + <span><math class="testfont"><mtext mathvariant="bold">ϵ</mtext></math>=<span>1D6DC</span></span> <span><math class="testfont"><mtext mathvariant="bold">ϑ</mtext></math>=<span>1D6DD</span></span> + <span><math class="testfont"><mtext mathvariant="bold">ϰ</mtext></math>=<span>1D6DE</span></span> <span><math class="testfont"><mtext mathvariant="bold">ϕ</mtext></math>=<span>1D6DF</span></span> - <span><math class="testfont"><mtext mathvariant="bold">ϖ</mtext></math>=<span>1D6E1</span></span> + <span><math class="testfont"><mtext mathvariant="bold">ϱ</mtext></math>=<span>1D6E0</span></span> + <span><math class="testfont"><mtext mathvariant="bold">ϖ</mtext></math>=<span>1D6E1</span></span><br/> <span><math class="testfont"><mtext mathvariant="bold">Ϝ</mtext></math>=<span>1D7CA</span></span> <span><math class="testfont"><mtext mathvariant="bold">ϝ</mtext></math>=<span>1D7CB</span></span> - <span><math class="testfont"><mtext mathvariant="bold">ϰ</mtext></math>=<span>1D6DE</span></span> - <span><math class="testfont"><mtext mathvariant="bold">ϱ</mtext></math>=<span>1D6E0</span></span><br/> - <span><math class="testfont"><mtext mathvariant="bold">ϴ</mtext></math>=<span>1D6B9</span></span> - <span><math class="testfont"><mtext mathvariant="bold">ϵ</mtext></math>=<span>1D6DC</span></span> + <span><math class="testfont"><mtext mathvariant="bold">0</mtext></math>=<span>1D7CE</span></span> + <span><math class="testfont"><mtext mathvariant="bold">1</mtext></math>=<span>1D7CF</span></span> + <span><math class="testfont"><mtext mathvariant="bold">2</mtext></math>=<span>1D7D0</span></span> + <span><math class="testfont"><mtext mathvariant="bold">3</mtext></math>=<span>1D7D1</span></span> + <span><math class="testfont"><mtext mathvariant="bold">4</mtext></math>=<span>1D7D2</span></span> + <span><math class="testfont"><mtext mathvariant="bold">5</mtext></math>=<span>1D7D3</span></span> + <span><math class="testfont"><mtext mathvariant="bold">6</mtext></math>=<span>1D7D4</span></span> + <span><math class="testfont"><mtext mathvariant="bold">7</mtext></math>=<span>1D7D5</span></span><br/> + <span><math class="testfont"><mtext mathvariant="bold">8</mtext></math>=<span>1D7D6</span></span> + <span><math class="testfont"><mtext mathvariant="bold">9</mtext></math>=<span>1D7D7</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck-ref.html index 686aa49..ebdb7a1 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck-ref.html
@@ -23,36 +23,18 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𞺡</mtext></math>=<span>1EEA1</span></span> - <span><math class="testfont"><mtext>𞺵</mtext></math>=<span>1EEB5</span></span> - <span><math class="testfont"><mtext>𞺶</mtext></math>=<span>1EEB6</span></span> - <span><math class="testfont"><mtext>𞺢</mtext></math>=<span>1EEA2</span></span> - <span><math class="testfont"><mtext>𞺧</mtext></math>=<span>1EEA7</span></span> - <span><math class="testfont"><mtext>𞺷</mtext></math>=<span>1EEB7</span></span> - <span><math class="testfont"><mtext>𞺣</mtext></math>=<span>1EEA3</span></span> - <span><math class="testfont"><mtext>𞺸</mtext></math>=<span>1EEB8</span></span> - <span><math class="testfont"><mtext>𞺳</mtext></math>=<span>1EEB3</span></span> - <span><math class="testfont"><mtext>𞺦</mtext></math>=<span>1EEA6</span></span><br/> - <span><math class="testfont"><mtext>𝟛</mtext></math>=<span>1D7DB</span></span> - <span><math class="testfont"><mtext>𝟜</mtext></math>=<span>1D7DC</span></span> - <span><math class="testfont"><mtext>𝟝</mtext></math>=<span>1D7DD</span></span> - <span><math class="testfont"><mtext>𞺹</mtext></math>=<span>1EEB9</span></span> - <span><math class="testfont"><mtext>𞺨</mtext></math>=<span>1EEA8</span></span> - <span><math class="testfont"><mtext>𞺺</mtext></math>=<span>1EEBA</span></span> - <span><math class="testfont"><mtext>𝟡</mtext></math>=<span>1D7E1</span></span> - <span><math class="testfont"><mtext>𞺻</mtext></math>=<span>1EEBB</span></span> - <span><math class="testfont"><mtext>𞺰</mtext></math>=<span>1EEB0</span></span> - <span><math class="testfont"><mtext>𞺲</mtext></math>=<span>1EEB2</span></span><br/> + <span><math class="testfont"><mtext>𝔸</mtext></math>=<span>1D538</span></span> + <span><math class="testfont"><mtext>𝔹</mtext></math>=<span>1D539</span></span> <span><math class="testfont"><mtext>ℂ</mtext></math>=<span>02102</span></span> - <span><math class="testfont"><mtext>𞺫</mtext></math>=<span>1EEAB</span></span> - <span><math class="testfont"><mtext>𞺬</mtext></math>=<span>1EEAC</span></span> - <span><math class="testfont"><mtext>𞺭</mtext></math>=<span>1EEAD</span></span> + <span><math class="testfont"><mtext>𝔻</mtext></math>=<span>1D53B</span></span> + <span><math class="testfont"><mtext>𝔼</mtext></math>=<span>1D53C</span></span> + <span><math class="testfont"><mtext>𝔽</mtext></math>=<span>1D53D</span></span> <span><math class="testfont"><mtext>𝔾</mtext></math>=<span>1D53E</span></span> - <span><math class="testfont"><mtext>𞺥</mtext></math>=<span>1EEA5</span></span> + <span><math class="testfont"><mtext>ℍ</mtext></math>=<span>0210D</span></span> <span><math class="testfont"><mtext>𝕀</mtext></math>=<span>1D540</span></span> - <span><math class="testfont"><mtext>𞺩</mtext></math>=<span>1EEA9</span></span> + <span><math class="testfont"><mtext>𝕁</mtext></math>=<span>1D541</span></span><br/> <span><math class="testfont"><mtext>𝕂</mtext></math>=<span>1D542</span></span> - <span><math class="testfont"><mtext>𝕃</mtext></math>=<span>1D543</span></span><br/> + <span><math class="testfont"><mtext>𝕃</mtext></math>=<span>1D543</span></span> <span><math class="testfont"><mtext>𝕄</mtext></math>=<span>1D544</span></span> <span><math class="testfont"><mtext>ℕ</mtext></math>=<span>02115</span></span> <span><math class="testfont"><mtext>𝕆</mtext></math>=<span>1D546</span></span> @@ -60,9 +42,9 @@ <span><math class="testfont"><mtext>ℚ</mtext></math>=<span>0211A</span></span> <span><math class="testfont"><mtext>ℝ</mtext></math>=<span>0211D</span></span> <span><math class="testfont"><mtext>𝕊</mtext></math>=<span>1D54A</span></span> - <span><math class="testfont"><mtext>𝕋</mtext></math>=<span>1D54B</span></span> + <span><math class="testfont"><mtext>𝕋</mtext></math>=<span>1D54B</span></span><br/> <span><math class="testfont"><mtext>𝕌</mtext></math>=<span>1D54C</span></span> - <span><math class="testfont"><mtext>𝕍</mtext></math>=<span>1D54D</span></span><br/> + <span><math class="testfont"><mtext>𝕍</mtext></math>=<span>1D54D</span></span> <span><math class="testfont"><mtext>𝕎</mtext></math>=<span>1D54E</span></span> <span><math class="testfont"><mtext>𝕏</mtext></math>=<span>1D54F</span></span> <span><math class="testfont"><mtext>𝕐</mtext></math>=<span>1D550</span></span> @@ -70,9 +52,9 @@ <span><math class="testfont"><mtext>𝕒</mtext></math>=<span>1D552</span></span> <span><math class="testfont"><mtext>𝕓</mtext></math>=<span>1D553</span></span> <span><math class="testfont"><mtext>𝕔</mtext></math>=<span>1D554</span></span> - <span><math class="testfont"><mtext>𝕕</mtext></math>=<span>1D555</span></span> + <span><math class="testfont"><mtext>𝕕</mtext></math>=<span>1D555</span></span><br/> <span><math class="testfont"><mtext>𝕖</mtext></math>=<span>1D556</span></span> - <span><math class="testfont"><mtext>𝕗</mtext></math>=<span>1D557</span></span><br/> + <span><math class="testfont"><mtext>𝕗</mtext></math>=<span>1D557</span></span> <span><math class="testfont"><mtext>𝕘</mtext></math>=<span>1D558</span></span> <span><math class="testfont"><mtext>𝕙</mtext></math>=<span>1D559</span></span> <span><math class="testfont"><mtext>𝕚</mtext></math>=<span>1D55A</span></span> @@ -80,9 +62,9 @@ <span><math class="testfont"><mtext>𝕜</mtext></math>=<span>1D55C</span></span> <span><math class="testfont"><mtext>𝕝</mtext></math>=<span>1D55D</span></span> <span><math class="testfont"><mtext>𝕞</mtext></math>=<span>1D55E</span></span> - <span><math class="testfont"><mtext>𝕟</mtext></math>=<span>1D55F</span></span> + <span><math class="testfont"><mtext>𝕟</mtext></math>=<span>1D55F</span></span><br/> <span><math class="testfont"><mtext>𝕠</mtext></math>=<span>1D560</span></span> - <span><math class="testfont"><mtext>𝕡</mtext></math>=<span>1D561</span></span><br/> + <span><math class="testfont"><mtext>𝕡</mtext></math>=<span>1D561</span></span> <span><math class="testfont"><mtext>𝕢</mtext></math>=<span>1D562</span></span> <span><math class="testfont"><mtext>𝕣</mtext></math>=<span>1D563</span></span> <span><math class="testfont"><mtext>𝕤</mtext></math>=<span>1D564</span></span> @@ -90,25 +72,43 @@ <span><math class="testfont"><mtext>𝕦</mtext></math>=<span>1D566</span></span> <span><math class="testfont"><mtext>𝕧</mtext></math>=<span>1D567</span></span> <span><math class="testfont"><mtext>𝕨</mtext></math>=<span>1D568</span></span> - <span><math class="testfont"><mtext>𝕩</mtext></math>=<span>1D569</span></span> + <span><math class="testfont"><mtext>𝕩</mtext></math>=<span>1D569</span></span><br/> <span><math class="testfont"><mtext>𝕪</mtext></math>=<span>1D56A</span></span> - <span><math class="testfont"><mtext>𝕫</mtext></math>=<span>1D56B</span></span><br/> + <span><math class="testfont"><mtext>𝕫</mtext></math>=<span>1D56B</span></span> <span><math class="testfont"><mtext>𝟘</mtext></math>=<span>1D7D8</span></span> <span><math class="testfont"><mtext>𝟙</mtext></math>=<span>1D7D9</span></span> <span><math class="testfont"><mtext>𝟚</mtext></math>=<span>1D7DA</span></span> - <span><math class="testfont"><mtext>𞺮</mtext></math>=<span>1EEAE</span></span> - <span><math class="testfont"><mtext>𞺴</mtext></math>=<span>1EEB4</span></span> - <span><math class="testfont"><mtext>𞺱</mtext></math>=<span>1EEB1</span></span> + <span><math class="testfont"><mtext>𝟛</mtext></math>=<span>1D7DB</span></span> + <span><math class="testfont"><mtext>𝟜</mtext></math>=<span>1D7DC</span></span> + <span><math class="testfont"><mtext>𝟝</mtext></math>=<span>1D7DD</span></span> <span><math class="testfont"><mtext>𝟞</mtext></math>=<span>1D7DE</span></span> - <span><math class="testfont"><mtext>𝟟</mtext></math>=<span>1D7DF</span></span> + <span><math class="testfont"><mtext>𝟟</mtext></math>=<span>1D7DF</span></span><br/> <span><math class="testfont"><mtext>𝟠</mtext></math>=<span>1D7E0</span></span> - <span><math class="testfont"><mtext>𞺯</mtext></math>=<span>1EEAF</span></span><br/> - <span><math class="testfont"><mtext>𝔸</mtext></math>=<span>1D538</span></span> - <span><math class="testfont"><mtext>𝔹</mtext></math>=<span>1D539</span></span> - <span><math class="testfont"><mtext>𝔻</mtext></math>=<span>1D53B</span></span> - <span><math class="testfont"><mtext>𝔼</mtext></math>=<span>1D53C</span></span> - <span><math class="testfont"><mtext>𝔽</mtext></math>=<span>1D53D</span></span> - <span><math class="testfont"><mtext>ℍ</mtext></math>=<span>0210D</span></span> - <span><math class="testfont"><mtext>𝕁</mtext></math>=<span>1D541</span></span> + <span><math class="testfont"><mtext>𝟡</mtext></math>=<span>1D7E1</span></span> + <span><math class="testfont"><mtext>𞺡</mtext></math>=<span>1EEA1</span></span> + <span><math class="testfont"><mtext>𞺢</mtext></math>=<span>1EEA2</span></span> + <span><math class="testfont"><mtext>𞺣</mtext></math>=<span>1EEA3</span></span> + <span><math class="testfont"><mtext>𞺥</mtext></math>=<span>1EEA5</span></span> + <span><math class="testfont"><mtext>𞺦</mtext></math>=<span>1EEA6</span></span> + <span><math class="testfont"><mtext>𞺧</mtext></math>=<span>1EEA7</span></span> + <span><math class="testfont"><mtext>𞺨</mtext></math>=<span>1EEA8</span></span> + <span><math class="testfont"><mtext>𞺩</mtext></math>=<span>1EEA9</span></span><br/> + <span><math class="testfont"><mtext>𞺫</mtext></math>=<span>1EEAB</span></span> + <span><math class="testfont"><mtext>𞺬</mtext></math>=<span>1EEAC</span></span> + <span><math class="testfont"><mtext>𞺭</mtext></math>=<span>1EEAD</span></span> + <span><math class="testfont"><mtext>𞺮</mtext></math>=<span>1EEAE</span></span> + <span><math class="testfont"><mtext>𞺯</mtext></math>=<span>1EEAF</span></span> + <span><math class="testfont"><mtext>𞺰</mtext></math>=<span>1EEB0</span></span> + <span><math class="testfont"><mtext>𞺱</mtext></math>=<span>1EEB1</span></span> + <span><math class="testfont"><mtext>𞺲</mtext></math>=<span>1EEB2</span></span> + <span><math class="testfont"><mtext>𞺳</mtext></math>=<span>1EEB3</span></span> + <span><math class="testfont"><mtext>𞺴</mtext></math>=<span>1EEB4</span></span><br/> + <span><math class="testfont"><mtext>𞺵</mtext></math>=<span>1EEB5</span></span> + <span><math class="testfont"><mtext>𞺶</mtext></math>=<span>1EEB6</span></span> + <span><math class="testfont"><mtext>𞺷</mtext></math>=<span>1EEB7</span></span> + <span><math class="testfont"><mtext>𞺸</mtext></math>=<span>1EEB8</span></span> + <span><math class="testfont"><mtext>𞺹</mtext></math>=<span>1EEB9</span></span> + <span><math class="testfont"><mtext>𞺺</mtext></math>=<span>1EEBA</span></span> + <span><math class="testfont"><mtext>𞺻</mtext></math>=<span>1EEBB</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck.html index 8592c21..335234a 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck.html
@@ -29,36 +29,18 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="double-struck">ب</mtext></math>=<span>1EEA1</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ت</mtext></math>=<span>1EEB5</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ث</mtext></math>=<span>1EEB6</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ج</mtext></math>=<span>1EEA2</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ح</mtext></math>=<span>1EEA7</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">خ</mtext></math>=<span>1EEB7</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">د</mtext></math>=<span>1EEA3</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ذ</mtext></math>=<span>1EEB8</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ر</mtext></math>=<span>1EEB3</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ز</mtext></math>=<span>1EEA6</span></span><br/> - <span><math class="testfont"><mtext mathvariant="double-struck">3</mtext></math>=<span>1D7DB</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">4</mtext></math>=<span>1D7DC</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">5</mtext></math>=<span>1D7DD</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ض</mtext></math>=<span>1EEB9</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ط</mtext></math>=<span>1EEA8</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ظ</mtext></math>=<span>1EEBA</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">9</mtext></math>=<span>1D7E1</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">غ</mtext></math>=<span>1EEBB</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ف</mtext></math>=<span>1EEB0</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ق</mtext></math>=<span>1EEB2</span></span><br/> + <span><math class="testfont"><mtext mathvariant="double-struck">A</mtext></math>=<span>1D538</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">B</mtext></math>=<span>1D539</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">C</mtext></math>=<span>02102</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ل</mtext></math>=<span>1EEAB</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">م</mtext></math>=<span>1EEAC</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ن</mtext></math>=<span>1EEAD</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">D</mtext></math>=<span>1D53B</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">E</mtext></math>=<span>1D53C</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">F</mtext></math>=<span>1D53D</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">G</mtext></math>=<span>1D53E</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">و</mtext></math>=<span>1EEA5</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">H</mtext></math>=<span>0210D</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">I</mtext></math>=<span>1D540</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ي</mtext></math>=<span>1EEA9</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">J</mtext></math>=<span>1D541</span></span><br/> <span><math class="testfont"><mtext mathvariant="double-struck">K</mtext></math>=<span>1D542</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">L</mtext></math>=<span>1D543</span></span><br/> + <span><math class="testfont"><mtext mathvariant="double-struck">L</mtext></math>=<span>1D543</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">M</mtext></math>=<span>1D544</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">N</mtext></math>=<span>02115</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">O</mtext></math>=<span>1D546</span></span> @@ -66,9 +48,9 @@ <span><math class="testfont"><mtext mathvariant="double-struck">Q</mtext></math>=<span>0211A</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">R</mtext></math>=<span>0211D</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">S</mtext></math>=<span>1D54A</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">T</mtext></math>=<span>1D54B</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">T</mtext></math>=<span>1D54B</span></span><br/> <span><math class="testfont"><mtext mathvariant="double-struck">U</mtext></math>=<span>1D54C</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">V</mtext></math>=<span>1D54D</span></span><br/> + <span><math class="testfont"><mtext mathvariant="double-struck">V</mtext></math>=<span>1D54D</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">W</mtext></math>=<span>1D54E</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">X</mtext></math>=<span>1D54F</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">Y</mtext></math>=<span>1D550</span></span> @@ -76,9 +58,9 @@ <span><math class="testfont"><mtext mathvariant="double-struck">a</mtext></math>=<span>1D552</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">b</mtext></math>=<span>1D553</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">c</mtext></math>=<span>1D554</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">d</mtext></math>=<span>1D555</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">d</mtext></math>=<span>1D555</span></span><br/> <span><math class="testfont"><mtext mathvariant="double-struck">e</mtext></math>=<span>1D556</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">f</mtext></math>=<span>1D557</span></span><br/> + <span><math class="testfont"><mtext mathvariant="double-struck">f</mtext></math>=<span>1D557</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">g</mtext></math>=<span>1D558</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">h</mtext></math>=<span>1D559</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">i</mtext></math>=<span>1D55A</span></span> @@ -86,9 +68,9 @@ <span><math class="testfont"><mtext mathvariant="double-struck">k</mtext></math>=<span>1D55C</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">l</mtext></math>=<span>1D55D</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">m</mtext></math>=<span>1D55E</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">n</mtext></math>=<span>1D55F</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">n</mtext></math>=<span>1D55F</span></span><br/> <span><math class="testfont"><mtext mathvariant="double-struck">o</mtext></math>=<span>1D560</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">p</mtext></math>=<span>1D561</span></span><br/> + <span><math class="testfont"><mtext mathvariant="double-struck">p</mtext></math>=<span>1D561</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">q</mtext></math>=<span>1D562</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">r</mtext></math>=<span>1D563</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">s</mtext></math>=<span>1D564</span></span> @@ -96,25 +78,43 @@ <span><math class="testfont"><mtext mathvariant="double-struck">u</mtext></math>=<span>1D566</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">v</mtext></math>=<span>1D567</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">w</mtext></math>=<span>1D568</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">x</mtext></math>=<span>1D569</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">x</mtext></math>=<span>1D569</span></span><br/> <span><math class="testfont"><mtext mathvariant="double-struck">y</mtext></math>=<span>1D56A</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">z</mtext></math>=<span>1D56B</span></span><br/> + <span><math class="testfont"><mtext mathvariant="double-struck">z</mtext></math>=<span>1D56B</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">0</mtext></math>=<span>1D7D8</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">1</mtext></math>=<span>1D7D9</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">2</mtext></math>=<span>1D7DA</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">س</mtext></math>=<span>1EEAE</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ش</mtext></math>=<span>1EEB4</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ص</mtext></math>=<span>1EEB1</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">3</mtext></math>=<span>1D7DB</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">4</mtext></math>=<span>1D7DC</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">5</mtext></math>=<span>1D7DD</span></span> <span><math class="testfont"><mtext mathvariant="double-struck">6</mtext></math>=<span>1D7DE</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">7</mtext></math>=<span>1D7DF</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">7</mtext></math>=<span>1D7DF</span></span><br/> <span><math class="testfont"><mtext mathvariant="double-struck">8</mtext></math>=<span>1D7E0</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">ع</mtext></math>=<span>1EEAF</span></span><br/> - <span><math class="testfont"><mtext mathvariant="double-struck">A</mtext></math>=<span>1D538</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">B</mtext></math>=<span>1D539</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">D</mtext></math>=<span>1D53B</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">E</mtext></math>=<span>1D53C</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">F</mtext></math>=<span>1D53D</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">H</mtext></math>=<span>0210D</span></span> - <span><math class="testfont"><mtext mathvariant="double-struck">J</mtext></math>=<span>1D541</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">9</mtext></math>=<span>1D7E1</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ب</mtext></math>=<span>1EEA1</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ج</mtext></math>=<span>1EEA2</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">د</mtext></math>=<span>1EEA3</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">و</mtext></math>=<span>1EEA5</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ز</mtext></math>=<span>1EEA6</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ح</mtext></math>=<span>1EEA7</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ط</mtext></math>=<span>1EEA8</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ي</mtext></math>=<span>1EEA9</span></span><br/> + <span><math class="testfont"><mtext mathvariant="double-struck">ل</mtext></math>=<span>1EEAB</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">م</mtext></math>=<span>1EEAC</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ن</mtext></math>=<span>1EEAD</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">س</mtext></math>=<span>1EEAE</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ع</mtext></math>=<span>1EEAF</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ف</mtext></math>=<span>1EEB0</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ص</mtext></math>=<span>1EEB1</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ق</mtext></math>=<span>1EEB2</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ر</mtext></math>=<span>1EEB3</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ش</mtext></math>=<span>1EEB4</span></span><br/> + <span><math class="testfont"><mtext mathvariant="double-struck">ت</mtext></math>=<span>1EEB5</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ث</mtext></math>=<span>1EEB6</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">خ</mtext></math>=<span>1EEB7</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ذ</mtext></math>=<span>1EEB8</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ض</mtext></math>=<span>1EEB9</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">ظ</mtext></math>=<span>1EEBA</span></span> + <span><math class="testfont"><mtext mathvariant="double-struck">غ</mtext></math>=<span>1EEBB</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial-ref.html index 597277a..5d5b72a1 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial-ref.html
@@ -23,25 +23,25 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𞸰</mtext></math>=<span>1EE30</span></span> - <span><math class="testfont"><mtext>𞸲</mtext></math>=<span>1EE32</span></span> + <span><math class="testfont"><mtext>𞸡</mtext></math>=<span>1EE21</span></span> + <span><math class="testfont"><mtext>𞸢</mtext></math>=<span>1EE22</span></span> + <span><math class="testfont"><mtext>𞸤</mtext></math>=<span>1EE24</span></span> + <span><math class="testfont"><mtext>𞸧</mtext></math>=<span>1EE27</span></span> + <span><math class="testfont"><mtext>𞸩</mtext></math>=<span>1EE29</span></span> <span><math class="testfont"><mtext>𞸪</mtext></math>=<span>1EE2A</span></span> <span><math class="testfont"><mtext>𞸫</mtext></math>=<span>1EE2B</span></span> <span><math class="testfont"><mtext>𞸬</mtext></math>=<span>1EE2C</span></span> <span><math class="testfont"><mtext>𞸭</mtext></math>=<span>1EE2D</span></span> - <span><math class="testfont"><mtext>𞸤</mtext></math>=<span>1EE24</span></span> - <span><math class="testfont"><mtext>𞸡</mtext></math>=<span>1EE21</span></span> - <span><math class="testfont"><mtext>𞸩</mtext></math>=<span>1EE29</span></span> - <span><math class="testfont"><mtext>𞸶</mtext></math>=<span>1EE36</span></span><br/> - <span><math class="testfont"><mtext>𞸢</mtext></math>=<span>1EE22</span></span> - <span><math class="testfont"><mtext>𞸧</mtext></math>=<span>1EE27</span></span> - <span><math class="testfont"><mtext>𞸷</mtext></math>=<span>1EE37</span></span> - <span><math class="testfont"><mtext>𞸮</mtext></math>=<span>1EE2E</span></span> - <span><math class="testfont"><mtext>𞸴</mtext></math>=<span>1EE34</span></span> - <span><math class="testfont"><mtext>𞸱</mtext></math>=<span>1EE31</span></span> - <span><math class="testfont"><mtext>𞸹</mtext></math>=<span>1EE39</span></span> + <span><math class="testfont"><mtext>𞸮</mtext></math>=<span>1EE2E</span></span><br/> <span><math class="testfont"><mtext>𞸯</mtext></math>=<span>1EE2F</span></span> - <span><math class="testfont"><mtext>𞸻</mtext></math>=<span>1EE3B</span></span> - <span><math class="testfont"><mtext>𞸵</mtext></math>=<span>1EE35</span></span><br/> + <span><math class="testfont"><mtext>𞸰</mtext></math>=<span>1EE30</span></span> + <span><math class="testfont"><mtext>𞸱</mtext></math>=<span>1EE31</span></span> + <span><math class="testfont"><mtext>𞸲</mtext></math>=<span>1EE32</span></span> + <span><math class="testfont"><mtext>𞸴</mtext></math>=<span>1EE34</span></span> + <span><math class="testfont"><mtext>𞸵</mtext></math>=<span>1EE35</span></span> + <span><math class="testfont"><mtext>𞸶</mtext></math>=<span>1EE36</span></span> + <span><math class="testfont"><mtext>𞸷</mtext></math>=<span>1EE37</span></span> + <span><math class="testfont"><mtext>𞸹</mtext></math>=<span>1EE39</span></span> + <span><math class="testfont"><mtext>𞸻</mtext></math>=<span>1EE3B</span></span><br/> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial.html index 5f54a5cf..3b0263a 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial.html
@@ -29,25 +29,25 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="initial">ف</mtext></math>=<span>1EE30</span></span> - <span><math class="testfont"><mtext mathvariant="initial">ق</mtext></math>=<span>1EE32</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ب</mtext></math>=<span>1EE21</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ج</mtext></math>=<span>1EE22</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ه</mtext></math>=<span>1EE24</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ح</mtext></math>=<span>1EE27</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ي</mtext></math>=<span>1EE29</span></span> <span><math class="testfont"><mtext mathvariant="initial">ك</mtext></math>=<span>1EE2A</span></span> <span><math class="testfont"><mtext mathvariant="initial">ل</mtext></math>=<span>1EE2B</span></span> <span><math class="testfont"><mtext mathvariant="initial">م</mtext></math>=<span>1EE2C</span></span> <span><math class="testfont"><mtext mathvariant="initial">ن</mtext></math>=<span>1EE2D</span></span> - <span><math class="testfont"><mtext mathvariant="initial">ه</mtext></math>=<span>1EE24</span></span> - <span><math class="testfont"><mtext mathvariant="initial">ب</mtext></math>=<span>1EE21</span></span> - <span><math class="testfont"><mtext mathvariant="initial">ي</mtext></math>=<span>1EE29</span></span> - <span><math class="testfont"><mtext mathvariant="initial">ث</mtext></math>=<span>1EE36</span></span><br/> - <span><math class="testfont"><mtext mathvariant="initial">ج</mtext></math>=<span>1EE22</span></span> - <span><math class="testfont"><mtext mathvariant="initial">ح</mtext></math>=<span>1EE27</span></span> - <span><math class="testfont"><mtext mathvariant="initial">خ</mtext></math>=<span>1EE37</span></span> - <span><math class="testfont"><mtext mathvariant="initial">س</mtext></math>=<span>1EE2E</span></span> - <span><math class="testfont"><mtext mathvariant="initial">ش</mtext></math>=<span>1EE34</span></span> - <span><math class="testfont"><mtext mathvariant="initial">ص</mtext></math>=<span>1EE31</span></span> - <span><math class="testfont"><mtext mathvariant="initial">ض</mtext></math>=<span>1EE39</span></span> + <span><math class="testfont"><mtext mathvariant="initial">س</mtext></math>=<span>1EE2E</span></span><br/> <span><math class="testfont"><mtext mathvariant="initial">ع</mtext></math>=<span>1EE2F</span></span> - <span><math class="testfont"><mtext mathvariant="initial">غ</mtext></math>=<span>1EE3B</span></span> - <span><math class="testfont"><mtext mathvariant="initial">ت</mtext></math>=<span>1EE35</span></span><br/> + <span><math class="testfont"><mtext mathvariant="initial">ف</mtext></math>=<span>1EE30</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ص</mtext></math>=<span>1EE31</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ق</mtext></math>=<span>1EE32</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ش</mtext></math>=<span>1EE34</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ت</mtext></math>=<span>1EE35</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ث</mtext></math>=<span>1EE36</span></span> + <span><math class="testfont"><mtext mathvariant="initial">خ</mtext></math>=<span>1EE37</span></span> + <span><math class="testfont"><mtext mathvariant="initial">ض</mtext></math>=<span>1EE39</span></span> + <span><math class="testfont"><mtext mathvariant="initial">غ</mtext></math>=<span>1EE3B</span></span><br/> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic-ref.html index f503794e..e2078c29 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic-ref.html
@@ -23,68 +23,66 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𝜕</mtext></math>=<span>1D715</span></span> - <span><math class="testfont"><mtext>𝛻</mtext></math>=<span>1D6FB</span></span> - <span><math class="testfont"><mtext>𝚥</mtext></math>=<span>1D6A5</span></span> <span><math class="testfont"><mtext>𝐴</mtext></math>=<span>1D434</span></span> <span><math class="testfont"><mtext>𝐵</mtext></math>=<span>1D435</span></span> <span><math class="testfont"><mtext>𝐶</mtext></math>=<span>1D436</span></span> <span><math class="testfont"><mtext>𝐷</mtext></math>=<span>1D437</span></span> <span><math class="testfont"><mtext>𝐸</mtext></math>=<span>1D438</span></span> <span><math class="testfont"><mtext>𝐹</mtext></math>=<span>1D439</span></span> - <span><math class="testfont"><mtext>𝐺</mtext></math>=<span>1D43A</span></span><br/> + <span><math class="testfont"><mtext>𝐺</mtext></math>=<span>1D43A</span></span> <span><math class="testfont"><mtext>𝐻</mtext></math>=<span>1D43B</span></span> <span><math class="testfont"><mtext>𝐼</mtext></math>=<span>1D43C</span></span> - <span><math class="testfont"><mtext>𝐽</mtext></math>=<span>1D43D</span></span> + <span><math class="testfont"><mtext>𝐽</mtext></math>=<span>1D43D</span></span><br/> <span><math class="testfont"><mtext>𝐾</mtext></math>=<span>1D43E</span></span> <span><math class="testfont"><mtext>𝐿</mtext></math>=<span>1D43F</span></span> <span><math class="testfont"><mtext>𝑀</mtext></math>=<span>1D440</span></span> <span><math class="testfont"><mtext>𝑁</mtext></math>=<span>1D441</span></span> <span><math class="testfont"><mtext>𝑂</mtext></math>=<span>1D442</span></span> <span><math class="testfont"><mtext>𝑃</mtext></math>=<span>1D443</span></span> - <span><math class="testfont"><mtext>𝑄</mtext></math>=<span>1D444</span></span><br/> + <span><math class="testfont"><mtext>𝑄</mtext></math>=<span>1D444</span></span> <span><math class="testfont"><mtext>𝑅</mtext></math>=<span>1D445</span></span> <span><math class="testfont"><mtext>𝑆</mtext></math>=<span>1D446</span></span> - <span><math class="testfont"><mtext>𝑇</mtext></math>=<span>1D447</span></span> + <span><math class="testfont"><mtext>𝑇</mtext></math>=<span>1D447</span></span><br/> <span><math class="testfont"><mtext>𝑈</mtext></math>=<span>1D448</span></span> <span><math class="testfont"><mtext>𝑉</mtext></math>=<span>1D449</span></span> <span><math class="testfont"><mtext>𝑊</mtext></math>=<span>1D44A</span></span> <span><math class="testfont"><mtext>𝑋</mtext></math>=<span>1D44B</span></span> <span><math class="testfont"><mtext>𝑌</mtext></math>=<span>1D44C</span></span> <span><math class="testfont"><mtext>𝑍</mtext></math>=<span>1D44D</span></span> - <span><math class="testfont"><mtext>𝑎</mtext></math>=<span>1D44E</span></span><br/> + <span><math class="testfont"><mtext>𝑎</mtext></math>=<span>1D44E</span></span> <span><math class="testfont"><mtext>𝑏</mtext></math>=<span>1D44F</span></span> <span><math class="testfont"><mtext>𝑐</mtext></math>=<span>1D450</span></span> - <span><math class="testfont"><mtext>𝑑</mtext></math>=<span>1D451</span></span> + <span><math class="testfont"><mtext>𝑑</mtext></math>=<span>1D451</span></span><br/> <span><math class="testfont"><mtext>𝑒</mtext></math>=<span>1D452</span></span> <span><math class="testfont"><mtext>𝑓</mtext></math>=<span>1D453</span></span> <span><math class="testfont"><mtext>𝑔</mtext></math>=<span>1D454</span></span> <span><math class="testfont"><mtext>ℎ</mtext></math>=<span>0210E</span></span> <span><math class="testfont"><mtext>𝑖</mtext></math>=<span>1D456</span></span> <span><math class="testfont"><mtext>𝑗</mtext></math>=<span>1D457</span></span> - <span><math class="testfont"><mtext>𝑘</mtext></math>=<span>1D458</span></span><br/> + <span><math class="testfont"><mtext>𝑘</mtext></math>=<span>1D458</span></span> <span><math class="testfont"><mtext>𝑙</mtext></math>=<span>1D459</span></span> <span><math class="testfont"><mtext>𝑚</mtext></math>=<span>1D45A</span></span> - <span><math class="testfont"><mtext>𝑛</mtext></math>=<span>1D45B</span></span> + <span><math class="testfont"><mtext>𝑛</mtext></math>=<span>1D45B</span></span><br/> <span><math class="testfont"><mtext>𝑜</mtext></math>=<span>1D45C</span></span> <span><math class="testfont"><mtext>𝑝</mtext></math>=<span>1D45D</span></span> <span><math class="testfont"><mtext>𝑞</mtext></math>=<span>1D45E</span></span> <span><math class="testfont"><mtext>𝑟</mtext></math>=<span>1D45F</span></span> <span><math class="testfont"><mtext>𝑠</mtext></math>=<span>1D460</span></span> <span><math class="testfont"><mtext>𝑡</mtext></math>=<span>1D461</span></span> - <span><math class="testfont"><mtext>𝑢</mtext></math>=<span>1D462</span></span><br/> + <span><math class="testfont"><mtext>𝑢</mtext></math>=<span>1D462</span></span> <span><math class="testfont"><mtext>𝑣</mtext></math>=<span>1D463</span></span> <span><math class="testfont"><mtext>𝑤</mtext></math>=<span>1D464</span></span> - <span><math class="testfont"><mtext>𝑥</mtext></math>=<span>1D465</span></span> + <span><math class="testfont"><mtext>𝑥</mtext></math>=<span>1D465</span></span><br/> <span><math class="testfont"><mtext>𝑦</mtext></math>=<span>1D466</span></span> <span><math class="testfont"><mtext>𝑧</mtext></math>=<span>1D467</span></span> <span><math class="testfont"><mtext>𝚤</mtext></math>=<span>1D6A4</span></span> + <span><math class="testfont"><mtext>𝚥</mtext></math>=<span>1D6A5</span></span> <span><math class="testfont"><mtext>𝛢</mtext></math>=<span>1D6E2</span></span> <span><math class="testfont"><mtext>𝛣</mtext></math>=<span>1D6E3</span></span> <span><math class="testfont"><mtext>𝛤</mtext></math>=<span>1D6E4</span></span> - <span><math class="testfont"><mtext>𝛥</mtext></math>=<span>1D6E5</span></span><br/> + <span><math class="testfont"><mtext>𝛥</mtext></math>=<span>1D6E5</span></span> <span><math class="testfont"><mtext>𝛦</mtext></math>=<span>1D6E6</span></span> - <span><math class="testfont"><mtext>𝛧</mtext></math>=<span>1D6E7</span></span> + <span><math class="testfont"><mtext>𝛧</mtext></math>=<span>1D6E7</span></span><br/> <span><math class="testfont"><mtext>𝛨</mtext></math>=<span>1D6E8</span></span> <span><math class="testfont"><mtext>𝛩</mtext></math>=<span>1D6E9</span></span> <span><math class="testfont"><mtext>𝛪</mtext></math>=<span>1D6EA</span></span> @@ -92,17 +90,19 @@ <span><math class="testfont"><mtext>𝛬</mtext></math>=<span>1D6EC</span></span> <span><math class="testfont"><mtext>𝛭</mtext></math>=<span>1D6ED</span></span> <span><math class="testfont"><mtext>𝛮</mtext></math>=<span>1D6EE</span></span> - <span><math class="testfont"><mtext>𝛯</mtext></math>=<span>1D6EF</span></span><br/> + <span><math class="testfont"><mtext>𝛯</mtext></math>=<span>1D6EF</span></span> <span><math class="testfont"><mtext>𝛰</mtext></math>=<span>1D6F0</span></span> - <span><math class="testfont"><mtext>𝛱</mtext></math>=<span>1D6F1</span></span> + <span><math class="testfont"><mtext>𝛱</mtext></math>=<span>1D6F1</span></span><br/> <span><math class="testfont"><mtext>𝛲</mtext></math>=<span>1D6F2</span></span> + <span><math class="testfont"><mtext>𝛳</mtext></math>=<span>1D6F3</span></span> <span><math class="testfont"><mtext>𝛴</mtext></math>=<span>1D6F4</span></span> <span><math class="testfont"><mtext>𝛵</mtext></math>=<span>1D6F5</span></span> <span><math class="testfont"><mtext>𝛶</mtext></math>=<span>1D6F6</span></span> <span><math class="testfont"><mtext>𝛷</mtext></math>=<span>1D6F7</span></span> <span><math class="testfont"><mtext>𝛸</mtext></math>=<span>1D6F8</span></span> <span><math class="testfont"><mtext>𝛹</mtext></math>=<span>1D6F9</span></span> - <span><math class="testfont"><mtext>𝛺</mtext></math>=<span>1D6FA</span></span><br/> + <span><math class="testfont"><mtext>𝛺</mtext></math>=<span>1D6FA</span></span> + <span><math class="testfont"><mtext>𝛻</mtext></math>=<span>1D6FB</span></span><br/> <span><math class="testfont"><mtext>𝛼</mtext></math>=<span>1D6FC</span></span> <span><math class="testfont"><mtext>𝛽</mtext></math>=<span>1D6FD</span></span> <span><math class="testfont"><mtext>𝛾</mtext></math>=<span>1D6FE</span></span> @@ -128,12 +128,12 @@ <span><math class="testfont"><mtext>𝜒</mtext></math>=<span>1D712</span></span> <span><math class="testfont"><mtext>𝜓</mtext></math>=<span>1D713</span></span> <span><math class="testfont"><mtext>𝜔</mtext></math>=<span>1D714</span></span> - <span><math class="testfont"><mtext>𝜗</mtext></math>=<span>1D717</span></span> - <span><math class="testfont"><mtext>𝜙</mtext></math>=<span>1D719</span></span> - <span><math class="testfont"><mtext>𝜛</mtext></math>=<span>1D71B</span></span> - <span><math class="testfont"><mtext>𝜘</mtext></math>=<span>1D718</span></span> - <span><math class="testfont"><mtext>𝜚</mtext></math>=<span>1D71A</span></span><br/> - <span><math class="testfont"><mtext>𝛳</mtext></math>=<span>1D6F3</span></span> + <span><math class="testfont"><mtext>𝜕</mtext></math>=<span>1D715</span></span> <span><math class="testfont"><mtext>𝜖</mtext></math>=<span>1D716</span></span> + <span><math class="testfont"><mtext>𝜗</mtext></math>=<span>1D717</span></span> + <span><math class="testfont"><mtext>𝜘</mtext></math>=<span>1D718</span></span> + <span><math class="testfont"><mtext>𝜙</mtext></math>=<span>1D719</span></span><br/> + <span><math class="testfont"><mtext>𝜚</mtext></math>=<span>1D71A</span></span> + <span><math class="testfont"><mtext>𝜛</mtext></math>=<span>1D71B</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic.html index f22f23f..1e6aa65 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic.html
@@ -29,68 +29,66 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="italic">∂</mtext></math>=<span>1D715</span></span> - <span><math class="testfont"><mtext mathvariant="italic">∇</mtext></math>=<span>1D6FB</span></span> - <span><math class="testfont"><mtext mathvariant="italic">ȷ</mtext></math>=<span>1D6A5</span></span> <span><math class="testfont"><mtext mathvariant="italic">A</mtext></math>=<span>1D434</span></span> <span><math class="testfont"><mtext mathvariant="italic">B</mtext></math>=<span>1D435</span></span> <span><math class="testfont"><mtext mathvariant="italic">C</mtext></math>=<span>1D436</span></span> <span><math class="testfont"><mtext mathvariant="italic">D</mtext></math>=<span>1D437</span></span> <span><math class="testfont"><mtext mathvariant="italic">E</mtext></math>=<span>1D438</span></span> <span><math class="testfont"><mtext mathvariant="italic">F</mtext></math>=<span>1D439</span></span> - <span><math class="testfont"><mtext mathvariant="italic">G</mtext></math>=<span>1D43A</span></span><br/> + <span><math class="testfont"><mtext mathvariant="italic">G</mtext></math>=<span>1D43A</span></span> <span><math class="testfont"><mtext mathvariant="italic">H</mtext></math>=<span>1D43B</span></span> <span><math class="testfont"><mtext mathvariant="italic">I</mtext></math>=<span>1D43C</span></span> - <span><math class="testfont"><mtext mathvariant="italic">J</mtext></math>=<span>1D43D</span></span> + <span><math class="testfont"><mtext mathvariant="italic">J</mtext></math>=<span>1D43D</span></span><br/> <span><math class="testfont"><mtext mathvariant="italic">K</mtext></math>=<span>1D43E</span></span> <span><math class="testfont"><mtext mathvariant="italic">L</mtext></math>=<span>1D43F</span></span> <span><math class="testfont"><mtext mathvariant="italic">M</mtext></math>=<span>1D440</span></span> <span><math class="testfont"><mtext mathvariant="italic">N</mtext></math>=<span>1D441</span></span> <span><math class="testfont"><mtext mathvariant="italic">O</mtext></math>=<span>1D442</span></span> <span><math class="testfont"><mtext mathvariant="italic">P</mtext></math>=<span>1D443</span></span> - <span><math class="testfont"><mtext mathvariant="italic">Q</mtext></math>=<span>1D444</span></span><br/> + <span><math class="testfont"><mtext mathvariant="italic">Q</mtext></math>=<span>1D444</span></span> <span><math class="testfont"><mtext mathvariant="italic">R</mtext></math>=<span>1D445</span></span> <span><math class="testfont"><mtext mathvariant="italic">S</mtext></math>=<span>1D446</span></span> - <span><math class="testfont"><mtext mathvariant="italic">T</mtext></math>=<span>1D447</span></span> + <span><math class="testfont"><mtext mathvariant="italic">T</mtext></math>=<span>1D447</span></span><br/> <span><math class="testfont"><mtext mathvariant="italic">U</mtext></math>=<span>1D448</span></span> <span><math class="testfont"><mtext mathvariant="italic">V</mtext></math>=<span>1D449</span></span> <span><math class="testfont"><mtext mathvariant="italic">W</mtext></math>=<span>1D44A</span></span> <span><math class="testfont"><mtext mathvariant="italic">X</mtext></math>=<span>1D44B</span></span> <span><math class="testfont"><mtext mathvariant="italic">Y</mtext></math>=<span>1D44C</span></span> <span><math class="testfont"><mtext mathvariant="italic">Z</mtext></math>=<span>1D44D</span></span> - <span><math class="testfont"><mtext mathvariant="italic">a</mtext></math>=<span>1D44E</span></span><br/> + <span><math class="testfont"><mtext mathvariant="italic">a</mtext></math>=<span>1D44E</span></span> <span><math class="testfont"><mtext mathvariant="italic">b</mtext></math>=<span>1D44F</span></span> <span><math class="testfont"><mtext mathvariant="italic">c</mtext></math>=<span>1D450</span></span> - <span><math class="testfont"><mtext mathvariant="italic">d</mtext></math>=<span>1D451</span></span> + <span><math class="testfont"><mtext mathvariant="italic">d</mtext></math>=<span>1D451</span></span><br/> <span><math class="testfont"><mtext mathvariant="italic">e</mtext></math>=<span>1D452</span></span> <span><math class="testfont"><mtext mathvariant="italic">f</mtext></math>=<span>1D453</span></span> <span><math class="testfont"><mtext mathvariant="italic">g</mtext></math>=<span>1D454</span></span> <span><math class="testfont"><mtext mathvariant="italic">h</mtext></math>=<span>0210E</span></span> <span><math class="testfont"><mtext mathvariant="italic">i</mtext></math>=<span>1D456</span></span> <span><math class="testfont"><mtext mathvariant="italic">j</mtext></math>=<span>1D457</span></span> - <span><math class="testfont"><mtext mathvariant="italic">k</mtext></math>=<span>1D458</span></span><br/> + <span><math class="testfont"><mtext mathvariant="italic">k</mtext></math>=<span>1D458</span></span> <span><math class="testfont"><mtext mathvariant="italic">l</mtext></math>=<span>1D459</span></span> <span><math class="testfont"><mtext mathvariant="italic">m</mtext></math>=<span>1D45A</span></span> - <span><math class="testfont"><mtext mathvariant="italic">n</mtext></math>=<span>1D45B</span></span> + <span><math class="testfont"><mtext mathvariant="italic">n</mtext></math>=<span>1D45B</span></span><br/> <span><math class="testfont"><mtext mathvariant="italic">o</mtext></math>=<span>1D45C</span></span> <span><math class="testfont"><mtext mathvariant="italic">p</mtext></math>=<span>1D45D</span></span> <span><math class="testfont"><mtext mathvariant="italic">q</mtext></math>=<span>1D45E</span></span> <span><math class="testfont"><mtext mathvariant="italic">r</mtext></math>=<span>1D45F</span></span> <span><math class="testfont"><mtext mathvariant="italic">s</mtext></math>=<span>1D460</span></span> <span><math class="testfont"><mtext mathvariant="italic">t</mtext></math>=<span>1D461</span></span> - <span><math class="testfont"><mtext mathvariant="italic">u</mtext></math>=<span>1D462</span></span><br/> + <span><math class="testfont"><mtext mathvariant="italic">u</mtext></math>=<span>1D462</span></span> <span><math class="testfont"><mtext mathvariant="italic">v</mtext></math>=<span>1D463</span></span> <span><math class="testfont"><mtext mathvariant="italic">w</mtext></math>=<span>1D464</span></span> - <span><math class="testfont"><mtext mathvariant="italic">x</mtext></math>=<span>1D465</span></span> + <span><math class="testfont"><mtext mathvariant="italic">x</mtext></math>=<span>1D465</span></span><br/> <span><math class="testfont"><mtext mathvariant="italic">y</mtext></math>=<span>1D466</span></span> <span><math class="testfont"><mtext mathvariant="italic">z</mtext></math>=<span>1D467</span></span> <span><math class="testfont"><mtext mathvariant="italic">ı</mtext></math>=<span>1D6A4</span></span> + <span><math class="testfont"><mtext mathvariant="italic">ȷ</mtext></math>=<span>1D6A5</span></span> <span><math class="testfont"><mtext mathvariant="italic">Α</mtext></math>=<span>1D6E2</span></span> <span><math class="testfont"><mtext mathvariant="italic">Β</mtext></math>=<span>1D6E3</span></span> <span><math class="testfont"><mtext mathvariant="italic">Γ</mtext></math>=<span>1D6E4</span></span> - <span><math class="testfont"><mtext mathvariant="italic">Δ</mtext></math>=<span>1D6E5</span></span><br/> + <span><math class="testfont"><mtext mathvariant="italic">Δ</mtext></math>=<span>1D6E5</span></span> <span><math class="testfont"><mtext mathvariant="italic">Ε</mtext></math>=<span>1D6E6</span></span> - <span><math class="testfont"><mtext mathvariant="italic">Ζ</mtext></math>=<span>1D6E7</span></span> + <span><math class="testfont"><mtext mathvariant="italic">Ζ</mtext></math>=<span>1D6E7</span></span><br/> <span><math class="testfont"><mtext mathvariant="italic">Η</mtext></math>=<span>1D6E8</span></span> <span><math class="testfont"><mtext mathvariant="italic">Θ</mtext></math>=<span>1D6E9</span></span> <span><math class="testfont"><mtext mathvariant="italic">Ι</mtext></math>=<span>1D6EA</span></span> @@ -98,17 +96,19 @@ <span><math class="testfont"><mtext mathvariant="italic">Λ</mtext></math>=<span>1D6EC</span></span> <span><math class="testfont"><mtext mathvariant="italic">Μ</mtext></math>=<span>1D6ED</span></span> <span><math class="testfont"><mtext mathvariant="italic">Ν</mtext></math>=<span>1D6EE</span></span> - <span><math class="testfont"><mtext mathvariant="italic">Ξ</mtext></math>=<span>1D6EF</span></span><br/> + <span><math class="testfont"><mtext mathvariant="italic">Ξ</mtext></math>=<span>1D6EF</span></span> <span><math class="testfont"><mtext mathvariant="italic">Ο</mtext></math>=<span>1D6F0</span></span> - <span><math class="testfont"><mtext mathvariant="italic">Π</mtext></math>=<span>1D6F1</span></span> + <span><math class="testfont"><mtext mathvariant="italic">Π</mtext></math>=<span>1D6F1</span></span><br/> <span><math class="testfont"><mtext mathvariant="italic">Ρ</mtext></math>=<span>1D6F2</span></span> + <span><math class="testfont"><mtext mathvariant="italic">ϴ</mtext></math>=<span>1D6F3</span></span> <span><math class="testfont"><mtext mathvariant="italic">Σ</mtext></math>=<span>1D6F4</span></span> <span><math class="testfont"><mtext mathvariant="italic">Τ</mtext></math>=<span>1D6F5</span></span> <span><math class="testfont"><mtext mathvariant="italic">Υ</mtext></math>=<span>1D6F6</span></span> <span><math class="testfont"><mtext mathvariant="italic">Φ</mtext></math>=<span>1D6F7</span></span> <span><math class="testfont"><mtext mathvariant="italic">Χ</mtext></math>=<span>1D6F8</span></span> <span><math class="testfont"><mtext mathvariant="italic">Ψ</mtext></math>=<span>1D6F9</span></span> - <span><math class="testfont"><mtext mathvariant="italic">Ω</mtext></math>=<span>1D6FA</span></span><br/> + <span><math class="testfont"><mtext mathvariant="italic">Ω</mtext></math>=<span>1D6FA</span></span> + <span><math class="testfont"><mtext mathvariant="italic">∇</mtext></math>=<span>1D6FB</span></span><br/> <span><math class="testfont"><mtext mathvariant="italic">α</mtext></math>=<span>1D6FC</span></span> <span><math class="testfont"><mtext mathvariant="italic">β</mtext></math>=<span>1D6FD</span></span> <span><math class="testfont"><mtext mathvariant="italic">γ</mtext></math>=<span>1D6FE</span></span> @@ -134,12 +134,12 @@ <span><math class="testfont"><mtext mathvariant="italic">χ</mtext></math>=<span>1D712</span></span> <span><math class="testfont"><mtext mathvariant="italic">ψ</mtext></math>=<span>1D713</span></span> <span><math class="testfont"><mtext mathvariant="italic">ω</mtext></math>=<span>1D714</span></span> - <span><math class="testfont"><mtext mathvariant="italic">ϑ</mtext></math>=<span>1D717</span></span> - <span><math class="testfont"><mtext mathvariant="italic">ϕ</mtext></math>=<span>1D719</span></span> - <span><math class="testfont"><mtext mathvariant="italic">ϖ</mtext></math>=<span>1D71B</span></span> - <span><math class="testfont"><mtext mathvariant="italic">ϰ</mtext></math>=<span>1D718</span></span> - <span><math class="testfont"><mtext mathvariant="italic">ϱ</mtext></math>=<span>1D71A</span></span><br/> - <span><math class="testfont"><mtext mathvariant="italic">ϴ</mtext></math>=<span>1D6F3</span></span> + <span><math class="testfont"><mtext mathvariant="italic">∂</mtext></math>=<span>1D715</span></span> <span><math class="testfont"><mtext mathvariant="italic">ϵ</mtext></math>=<span>1D716</span></span> + <span><math class="testfont"><mtext mathvariant="italic">ϑ</mtext></math>=<span>1D717</span></span> + <span><math class="testfont"><mtext mathvariant="italic">ϰ</mtext></math>=<span>1D718</span></span> + <span><math class="testfont"><mtext mathvariant="italic">ϕ</mtext></math>=<span>1D719</span></span><br/> + <span><math class="testfont"><mtext mathvariant="italic">ϱ</mtext></math>=<span>1D71A</span></span> + <span><math class="testfont"><mtext mathvariant="italic">ϖ</mtext></math>=<span>1D71B</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped-ref.html index 12ccb49..f00e5d8 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped-ref.html
@@ -25,30 +25,30 @@ <p>Test passes if all the equalities below are true.</p> <span><math class="testfont"><mtext>𞺀</mtext></math>=<span>1EE80</span></span> <span><math class="testfont"><mtext>𞺁</mtext></math>=<span>1EE81</span></span> - <span><math class="testfont"><mtext>𞺕</mtext></math>=<span>1EE95</span></span> - <span><math class="testfont"><mtext>𞺖</mtext></math>=<span>1EE96</span></span> <span><math class="testfont"><mtext>𞺂</mtext></math>=<span>1EE82</span></span> - <span><math class="testfont"><mtext>𞺇</mtext></math>=<span>1EE87</span></span> - <span><math class="testfont"><mtext>𞺗</mtext></math>=<span>1EE97</span></span> <span><math class="testfont"><mtext>𞺃</mtext></math>=<span>1EE83</span></span> - <span><math class="testfont"><mtext>𞺘</mtext></math>=<span>1EE98</span></span> - <span><math class="testfont"><mtext>𞺓</mtext></math>=<span>1EE93</span></span><br/> + <span><math class="testfont"><mtext>𞺄</mtext></math>=<span>1EE84</span></span> + <span><math class="testfont"><mtext>𞺅</mtext></math>=<span>1EE85</span></span> <span><math class="testfont"><mtext>𞺆</mtext></math>=<span>1EE86</span></span> - <span><math class="testfont"><mtext>𞺎</mtext></math>=<span>1EE8E</span></span> - <span><math class="testfont"><mtext>𞺔</mtext></math>=<span>1EE94</span></span> - <span><math class="testfont"><mtext>𞺑</mtext></math>=<span>1EE91</span></span> - <span><math class="testfont"><mtext>𞺙</mtext></math>=<span>1EE99</span></span> + <span><math class="testfont"><mtext>𞺇</mtext></math>=<span>1EE87</span></span> <span><math class="testfont"><mtext>𞺈</mtext></math>=<span>1EE88</span></span> - <span><math class="testfont"><mtext>𞺚</mtext></math>=<span>1EE9A</span></span> - <span><math class="testfont"><mtext>𞺏</mtext></math>=<span>1EE8F</span></span> - <span><math class="testfont"><mtext>𞺛</mtext></math>=<span>1EE9B</span></span> - <span><math class="testfont"><mtext>𞺐</mtext></math>=<span>1EE90</span></span><br/> - <span><math class="testfont"><mtext>𞺒</mtext></math>=<span>1EE92</span></span> + <span><math class="testfont"><mtext>𞺉</mtext></math>=<span>1EE89</span></span><br/> <span><math class="testfont"><mtext>𞺋</mtext></math>=<span>1EE8B</span></span> <span><math class="testfont"><mtext>𞺌</mtext></math>=<span>1EE8C</span></span> <span><math class="testfont"><mtext>𞺍</mtext></math>=<span>1EE8D</span></span> - <span><math class="testfont"><mtext>𞺄</mtext></math>=<span>1EE84</span></span> - <span><math class="testfont"><mtext>𞺅</mtext></math>=<span>1EE85</span></span> - <span><math class="testfont"><mtext>𞺉</mtext></math>=<span>1EE89</span></span> + <span><math class="testfont"><mtext>𞺎</mtext></math>=<span>1EE8E</span></span> + <span><math class="testfont"><mtext>𞺏</mtext></math>=<span>1EE8F</span></span> + <span><math class="testfont"><mtext>𞺐</mtext></math>=<span>1EE90</span></span> + <span><math class="testfont"><mtext>𞺑</mtext></math>=<span>1EE91</span></span> + <span><math class="testfont"><mtext>𞺒</mtext></math>=<span>1EE92</span></span> + <span><math class="testfont"><mtext>𞺓</mtext></math>=<span>1EE93</span></span> + <span><math class="testfont"><mtext>𞺔</mtext></math>=<span>1EE94</span></span><br/> + <span><math class="testfont"><mtext>𞺕</mtext></math>=<span>1EE95</span></span> + <span><math class="testfont"><mtext>𞺖</mtext></math>=<span>1EE96</span></span> + <span><math class="testfont"><mtext>𞺗</mtext></math>=<span>1EE97</span></span> + <span><math class="testfont"><mtext>𞺘</mtext></math>=<span>1EE98</span></span> + <span><math class="testfont"><mtext>𞺙</mtext></math>=<span>1EE99</span></span> + <span><math class="testfont"><mtext>𞺚</mtext></math>=<span>1EE9A</span></span> + <span><math class="testfont"><mtext>𞺛</mtext></math>=<span>1EE9B</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped.html index 1e9b4f1..b208849 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped.html
@@ -31,30 +31,30 @@ <p>Test passes if all the equalities below are true.</p> <span><math class="testfont"><mtext mathvariant="looped">ا</mtext></math>=<span>1EE80</span></span> <span><math class="testfont"><mtext mathvariant="looped">ب</mtext></math>=<span>1EE81</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ت</mtext></math>=<span>1EE95</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ث</mtext></math>=<span>1EE96</span></span> <span><math class="testfont"><mtext mathvariant="looped">ج</mtext></math>=<span>1EE82</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ح</mtext></math>=<span>1EE87</span></span> - <span><math class="testfont"><mtext mathvariant="looped">خ</mtext></math>=<span>1EE97</span></span> <span><math class="testfont"><mtext mathvariant="looped">د</mtext></math>=<span>1EE83</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ذ</mtext></math>=<span>1EE98</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ر</mtext></math>=<span>1EE93</span></span><br/> + <span><math class="testfont"><mtext mathvariant="looped">ه</mtext></math>=<span>1EE84</span></span> + <span><math class="testfont"><mtext mathvariant="looped">و</mtext></math>=<span>1EE85</span></span> <span><math class="testfont"><mtext mathvariant="looped">ز</mtext></math>=<span>1EE86</span></span> - <span><math class="testfont"><mtext mathvariant="looped">س</mtext></math>=<span>1EE8E</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ش</mtext></math>=<span>1EE94</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ص</mtext></math>=<span>1EE91</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ض</mtext></math>=<span>1EE99</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ح</mtext></math>=<span>1EE87</span></span> <span><math class="testfont"><mtext mathvariant="looped">ط</mtext></math>=<span>1EE88</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ظ</mtext></math>=<span>1EE9A</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ع</mtext></math>=<span>1EE8F</span></span> - <span><math class="testfont"><mtext mathvariant="looped">غ</mtext></math>=<span>1EE9B</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ف</mtext></math>=<span>1EE90</span></span><br/> - <span><math class="testfont"><mtext mathvariant="looped">ق</mtext></math>=<span>1EE92</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ي</mtext></math>=<span>1EE89</span></span><br/> <span><math class="testfont"><mtext mathvariant="looped">ل</mtext></math>=<span>1EE8B</span></span> <span><math class="testfont"><mtext mathvariant="looped">م</mtext></math>=<span>1EE8C</span></span> <span><math class="testfont"><mtext mathvariant="looped">ن</mtext></math>=<span>1EE8D</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ه</mtext></math>=<span>1EE84</span></span> - <span><math class="testfont"><mtext mathvariant="looped">و</mtext></math>=<span>1EE85</span></span> - <span><math class="testfont"><mtext mathvariant="looped">ي</mtext></math>=<span>1EE89</span></span> + <span><math class="testfont"><mtext mathvariant="looped">س</mtext></math>=<span>1EE8E</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ع</mtext></math>=<span>1EE8F</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ف</mtext></math>=<span>1EE90</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ص</mtext></math>=<span>1EE91</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ق</mtext></math>=<span>1EE92</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ر</mtext></math>=<span>1EE93</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ش</mtext></math>=<span>1EE94</span></span><br/> + <span><math class="testfont"><mtext mathvariant="looped">ت</mtext></math>=<span>1EE95</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ث</mtext></math>=<span>1EE96</span></span> + <span><math class="testfont"><mtext mathvariant="looped">خ</mtext></math>=<span>1EE97</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ذ</mtext></math>=<span>1EE98</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ض</mtext></math>=<span>1EE99</span></span> + <span><math class="testfont"><mtext mathvariant="looped">ظ</mtext></math>=<span>1EE9A</span></span> + <span><math class="testfont"><mtext mathvariant="looped">غ</mtext></math>=<span>1EE9B</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace-ref.html index bfa672a..1d4a0c0 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace-ref.html
@@ -23,16 +23,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𝟶</mtext></math>=<span>1D7F6</span></span> - <span><math class="testfont"><mtext>𝟷</mtext></math>=<span>1D7F7</span></span> - <span><math class="testfont"><mtext>𝟸</mtext></math>=<span>1D7F8</span></span> - <span><math class="testfont"><mtext>𝟹</mtext></math>=<span>1D7F9</span></span> - <span><math class="testfont"><mtext>𝟺</mtext></math>=<span>1D7FA</span></span> - <span><math class="testfont"><mtext>𝟻</mtext></math>=<span>1D7FB</span></span> - <span><math class="testfont"><mtext>𝟼</mtext></math>=<span>1D7FC</span></span> - <span><math class="testfont"><mtext>𝟽</mtext></math>=<span>1D7FD</span></span> - <span><math class="testfont"><mtext>𝟾</mtext></math>=<span>1D7FE</span></span> - <span><math class="testfont"><mtext>𝟿</mtext></math>=<span>1D7FF</span></span><br/> <span><math class="testfont"><mtext>𝙰</mtext></math>=<span>1D670</span></span> <span><math class="testfont"><mtext>𝙱</mtext></math>=<span>1D671</span></span> <span><math class="testfont"><mtext>𝙲</mtext></math>=<span>1D672</span></span> @@ -85,5 +75,15 @@ <span><math class="testfont"><mtext>𝚡</mtext></math>=<span>1D6A1</span></span><br/> <span><math class="testfont"><mtext>𝚢</mtext></math>=<span>1D6A2</span></span> <span><math class="testfont"><mtext>𝚣</mtext></math>=<span>1D6A3</span></span> + <span><math class="testfont"><mtext>𝟶</mtext></math>=<span>1D7F6</span></span> + <span><math class="testfont"><mtext>𝟷</mtext></math>=<span>1D7F7</span></span> + <span><math class="testfont"><mtext>𝟸</mtext></math>=<span>1D7F8</span></span> + <span><math class="testfont"><mtext>𝟹</mtext></math>=<span>1D7F9</span></span> + <span><math class="testfont"><mtext>𝟺</mtext></math>=<span>1D7FA</span></span> + <span><math class="testfont"><mtext>𝟻</mtext></math>=<span>1D7FB</span></span> + <span><math class="testfont"><mtext>𝟼</mtext></math>=<span>1D7FC</span></span> + <span><math class="testfont"><mtext>𝟽</mtext></math>=<span>1D7FD</span></span><br/> + <span><math class="testfont"><mtext>𝟾</mtext></math>=<span>1D7FE</span></span> + <span><math class="testfont"><mtext>𝟿</mtext></math>=<span>1D7FF</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace.html index a1a5c2d3..ad5541f 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace.html
@@ -29,16 +29,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="monospace">0</mtext></math>=<span>1D7F6</span></span> - <span><math class="testfont"><mtext mathvariant="monospace">1</mtext></math>=<span>1D7F7</span></span> - <span><math class="testfont"><mtext mathvariant="monospace">2</mtext></math>=<span>1D7F8</span></span> - <span><math class="testfont"><mtext mathvariant="monospace">3</mtext></math>=<span>1D7F9</span></span> - <span><math class="testfont"><mtext mathvariant="monospace">4</mtext></math>=<span>1D7FA</span></span> - <span><math class="testfont"><mtext mathvariant="monospace">5</mtext></math>=<span>1D7FB</span></span> - <span><math class="testfont"><mtext mathvariant="monospace">6</mtext></math>=<span>1D7FC</span></span> - <span><math class="testfont"><mtext mathvariant="monospace">7</mtext></math>=<span>1D7FD</span></span> - <span><math class="testfont"><mtext mathvariant="monospace">8</mtext></math>=<span>1D7FE</span></span> - <span><math class="testfont"><mtext mathvariant="monospace">9</mtext></math>=<span>1D7FF</span></span><br/> <span><math class="testfont"><mtext mathvariant="monospace">A</mtext></math>=<span>1D670</span></span> <span><math class="testfont"><mtext mathvariant="monospace">B</mtext></math>=<span>1D671</span></span> <span><math class="testfont"><mtext mathvariant="monospace">C</mtext></math>=<span>1D672</span></span> @@ -91,5 +81,15 @@ <span><math class="testfont"><mtext mathvariant="monospace">x</mtext></math>=<span>1D6A1</span></span><br/> <span><math class="testfont"><mtext mathvariant="monospace">y</mtext></math>=<span>1D6A2</span></span> <span><math class="testfont"><mtext mathvariant="monospace">z</mtext></math>=<span>1D6A3</span></span> + <span><math class="testfont"><mtext mathvariant="monospace">0</mtext></math>=<span>1D7F6</span></span> + <span><math class="testfont"><mtext mathvariant="monospace">1</mtext></math>=<span>1D7F7</span></span> + <span><math class="testfont"><mtext mathvariant="monospace">2</mtext></math>=<span>1D7F8</span></span> + <span><math class="testfont"><mtext mathvariant="monospace">3</mtext></math>=<span>1D7F9</span></span> + <span><math class="testfont"><mtext mathvariant="monospace">4</mtext></math>=<span>1D7FA</span></span> + <span><math class="testfont"><mtext mathvariant="monospace">5</mtext></math>=<span>1D7FB</span></span> + <span><math class="testfont"><mtext mathvariant="monospace">6</mtext></math>=<span>1D7FC</span></span> + <span><math class="testfont"><mtext mathvariant="monospace">7</mtext></math>=<span>1D7FD</span></span><br/> + <span><math class="testfont"><mtext mathvariant="monospace">8</mtext></math>=<span>1D7FE</span></span> + <span><math class="testfont"><mtext mathvariant="monospace">9</mtext></math>=<span>1D7FF</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic-ref.html index 2b992af..f918db9 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic-ref.html
@@ -23,8 +23,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𝟃</mtext></math>=<span>1D7C3</span></span> - <span><math class="testfont"><mtext>𝞩</mtext></math>=<span>1D7A9</span></span> <span><math class="testfont"><mtext>𝘼</mtext></math>=<span>1D63C</span></span> <span><math class="testfont"><mtext>𝘽</mtext></math>=<span>1D63D</span></span> <span><math class="testfont"><mtext>𝘾</mtext></math>=<span>1D63E</span></span> @@ -32,9 +30,9 @@ <span><math class="testfont"><mtext>𝙀</mtext></math>=<span>1D640</span></span> <span><math class="testfont"><mtext>𝙁</mtext></math>=<span>1D641</span></span> <span><math class="testfont"><mtext>𝙂</mtext></math>=<span>1D642</span></span> - <span><math class="testfont"><mtext>𝙃</mtext></math>=<span>1D643</span></span><br/> + <span><math class="testfont"><mtext>𝙃</mtext></math>=<span>1D643</span></span> <span><math class="testfont"><mtext>𝙄</mtext></math>=<span>1D644</span></span> - <span><math class="testfont"><mtext>𝙅</mtext></math>=<span>1D645</span></span> + <span><math class="testfont"><mtext>𝙅</mtext></math>=<span>1D645</span></span><br/> <span><math class="testfont"><mtext>𝙆</mtext></math>=<span>1D646</span></span> <span><math class="testfont"><mtext>𝙇</mtext></math>=<span>1D647</span></span> <span><math class="testfont"><mtext>𝙈</mtext></math>=<span>1D648</span></span> @@ -42,9 +40,9 @@ <span><math class="testfont"><mtext>𝙊</mtext></math>=<span>1D64A</span></span> <span><math class="testfont"><mtext>𝙋</mtext></math>=<span>1D64B</span></span> <span><math class="testfont"><mtext>𝙌</mtext></math>=<span>1D64C</span></span> - <span><math class="testfont"><mtext>𝙍</mtext></math>=<span>1D64D</span></span><br/> + <span><math class="testfont"><mtext>𝙍</mtext></math>=<span>1D64D</span></span> <span><math class="testfont"><mtext>𝙎</mtext></math>=<span>1D64E</span></span> - <span><math class="testfont"><mtext>𝙏</mtext></math>=<span>1D64F</span></span> + <span><math class="testfont"><mtext>𝙏</mtext></math>=<span>1D64F</span></span><br/> <span><math class="testfont"><mtext>𝙐</mtext></math>=<span>1D650</span></span> <span><math class="testfont"><mtext>𝙑</mtext></math>=<span>1D651</span></span> <span><math class="testfont"><mtext>𝙒</mtext></math>=<span>1D652</span></span> @@ -52,9 +50,9 @@ <span><math class="testfont"><mtext>𝙔</mtext></math>=<span>1D654</span></span> <span><math class="testfont"><mtext>𝙕</mtext></math>=<span>1D655</span></span> <span><math class="testfont"><mtext>𝙖</mtext></math>=<span>1D656</span></span> - <span><math class="testfont"><mtext>𝙗</mtext></math>=<span>1D657</span></span><br/> + <span><math class="testfont"><mtext>𝙗</mtext></math>=<span>1D657</span></span> <span><math class="testfont"><mtext>𝙘</mtext></math>=<span>1D658</span></span> - <span><math class="testfont"><mtext>𝙙</mtext></math>=<span>1D659</span></span> + <span><math class="testfont"><mtext>𝙙</mtext></math>=<span>1D659</span></span><br/> <span><math class="testfont"><mtext>𝙚</mtext></math>=<span>1D65A</span></span> <span><math class="testfont"><mtext>𝙛</mtext></math>=<span>1D65B</span></span> <span><math class="testfont"><mtext>𝙜</mtext></math>=<span>1D65C</span></span> @@ -62,9 +60,9 @@ <span><math class="testfont"><mtext>𝙞</mtext></math>=<span>1D65E</span></span> <span><math class="testfont"><mtext>𝙟</mtext></math>=<span>1D65F</span></span> <span><math class="testfont"><mtext>𝙠</mtext></math>=<span>1D660</span></span> - <span><math class="testfont"><mtext>𝙡</mtext></math>=<span>1D661</span></span><br/> + <span><math class="testfont"><mtext>𝙡</mtext></math>=<span>1D661</span></span> <span><math class="testfont"><mtext>𝙢</mtext></math>=<span>1D662</span></span> - <span><math class="testfont"><mtext>𝙣</mtext></math>=<span>1D663</span></span> + <span><math class="testfont"><mtext>𝙣</mtext></math>=<span>1D663</span></span><br/> <span><math class="testfont"><mtext>𝙤</mtext></math>=<span>1D664</span></span> <span><math class="testfont"><mtext>𝙥</mtext></math>=<span>1D665</span></span> <span><math class="testfont"><mtext>𝙦</mtext></math>=<span>1D666</span></span> @@ -72,9 +70,9 @@ <span><math class="testfont"><mtext>𝙨</mtext></math>=<span>1D668</span></span> <span><math class="testfont"><mtext>𝙩</mtext></math>=<span>1D669</span></span> <span><math class="testfont"><mtext>𝙪</mtext></math>=<span>1D66A</span></span> - <span><math class="testfont"><mtext>𝙫</mtext></math>=<span>1D66B</span></span><br/> + <span><math class="testfont"><mtext>𝙫</mtext></math>=<span>1D66B</span></span> <span><math class="testfont"><mtext>𝙬</mtext></math>=<span>1D66C</span></span> - <span><math class="testfont"><mtext>𝙭</mtext></math>=<span>1D66D</span></span> + <span><math class="testfont"><mtext>𝙭</mtext></math>=<span>1D66D</span></span><br/> <span><math class="testfont"><mtext>𝙮</mtext></math>=<span>1D66E</span></span> <span><math class="testfont"><mtext>𝙯</mtext></math>=<span>1D66F</span></span> <span><math class="testfont"><mtext>𝞐</mtext></math>=<span>1D790</span></span> @@ -82,9 +80,9 @@ <span><math class="testfont"><mtext>𝞒</mtext></math>=<span>1D792</span></span> <span><math class="testfont"><mtext>𝞓</mtext></math>=<span>1D793</span></span> <span><math class="testfont"><mtext>𝞔</mtext></math>=<span>1D794</span></span> - <span><math class="testfont"><mtext>𝞕</mtext></math>=<span>1D795</span></span><br/> + <span><math class="testfont"><mtext>𝞕</mtext></math>=<span>1D795</span></span> <span><math class="testfont"><mtext>𝞖</mtext></math>=<span>1D796</span></span> - <span><math class="testfont"><mtext>𝞗</mtext></math>=<span>1D797</span></span> + <span><math class="testfont"><mtext>𝞗</mtext></math>=<span>1D797</span></span><br/> <span><math class="testfont"><mtext>𝞘</mtext></math>=<span>1D798</span></span> <span><math class="testfont"><mtext>𝞙</mtext></math>=<span>1D799</span></span> <span><math class="testfont"><mtext>𝞚</mtext></math>=<span>1D79A</span></span> @@ -92,8 +90,9 @@ <span><math class="testfont"><mtext>𝞜</mtext></math>=<span>1D79C</span></span> <span><math class="testfont"><mtext>𝞝</mtext></math>=<span>1D79D</span></span> <span><math class="testfont"><mtext>𝞞</mtext></math>=<span>1D79E</span></span> - <span><math class="testfont"><mtext>𝞟</mtext></math>=<span>1D79F</span></span><br/> + <span><math class="testfont"><mtext>𝞟</mtext></math>=<span>1D79F</span></span> <span><math class="testfont"><mtext>𝞠</mtext></math>=<span>1D7A0</span></span> + <span><math class="testfont"><mtext>𝞡</mtext></math>=<span>1D7A1</span></span><br/> <span><math class="testfont"><mtext>𝞢</mtext></math>=<span>1D7A2</span></span> <span><math class="testfont"><mtext>𝞣</mtext></math>=<span>1D7A3</span></span> <span><math class="testfont"><mtext>𝞤</mtext></math>=<span>1D7A4</span></span> @@ -101,6 +100,7 @@ <span><math class="testfont"><mtext>𝞦</mtext></math>=<span>1D7A6</span></span> <span><math class="testfont"><mtext>𝞧</mtext></math>=<span>1D7A7</span></span> <span><math class="testfont"><mtext>𝞨</mtext></math>=<span>1D7A8</span></span> + <span><math class="testfont"><mtext>𝞩</mtext></math>=<span>1D7A9</span></span> <span><math class="testfont"><mtext>𝞪</mtext></math>=<span>1D7AA</span></span> <span><math class="testfont"><mtext>𝞫</mtext></math>=<span>1D7AB</span></span><br/> <span><math class="testfont"><mtext>𝞬</mtext></math>=<span>1D7AC</span></span> @@ -126,12 +126,12 @@ <span><math class="testfont"><mtext>𝟀</mtext></math>=<span>1D7C0</span></span> <span><math class="testfont"><mtext>𝟁</mtext></math>=<span>1D7C1</span></span> <span><math class="testfont"><mtext>𝟂</mtext></math>=<span>1D7C2</span></span> + <span><math class="testfont"><mtext>𝟃</mtext></math>=<span>1D7C3</span></span> + <span><math class="testfont"><mtext>𝟄</mtext></math>=<span>1D7C4</span></span> <span><math class="testfont"><mtext>𝟅</mtext></math>=<span>1D7C5</span></span> - <span><math class="testfont"><mtext>𝟇</mtext></math>=<span>1D7C7</span></span> - <span><math class="testfont"><mtext>𝟉</mtext></math>=<span>1D7C9</span></span> <span><math class="testfont"><mtext>𝟆</mtext></math>=<span>1D7C6</span></span> + <span><math class="testfont"><mtext>𝟇</mtext></math>=<span>1D7C7</span></span> <span><math class="testfont"><mtext>𝟈</mtext></math>=<span>1D7C8</span></span> - <span><math class="testfont"><mtext>𝞡</mtext></math>=<span>1D7A1</span></span> - <span><math class="testfont"><mtext>𝟄</mtext></math>=<span>1D7C4</span></span><br/> + <span><math class="testfont"><mtext>𝟉</mtext></math>=<span>1D7C9</span></span><br/> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html index d1512bb..d51afe4 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html
@@ -29,8 +29,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">∂</mtext></math>=<span>1D7C3</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">∇</mtext></math>=<span>1D7A9</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">A</mtext></math>=<span>1D63C</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">B</mtext></math>=<span>1D63D</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">C</mtext></math>=<span>1D63E</span></span> @@ -38,9 +36,9 @@ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">E</mtext></math>=<span>1D640</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">F</mtext></math>=<span>1D641</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">G</mtext></math>=<span>1D642</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">H</mtext></math>=<span>1D643</span></span><br/> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">H</mtext></math>=<span>1D643</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">I</mtext></math>=<span>1D644</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">J</mtext></math>=<span>1D645</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">J</mtext></math>=<span>1D645</span></span><br/> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">K</mtext></math>=<span>1D646</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">L</mtext></math>=<span>1D647</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">M</mtext></math>=<span>1D648</span></span> @@ -48,9 +46,9 @@ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">O</mtext></math>=<span>1D64A</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">P</mtext></math>=<span>1D64B</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Q</mtext></math>=<span>1D64C</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">R</mtext></math>=<span>1D64D</span></span><br/> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">R</mtext></math>=<span>1D64D</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">S</mtext></math>=<span>1D64E</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">T</mtext></math>=<span>1D64F</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">T</mtext></math>=<span>1D64F</span></span><br/> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">U</mtext></math>=<span>1D650</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">V</mtext></math>=<span>1D651</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">W</mtext></math>=<span>1D652</span></span> @@ -58,9 +56,9 @@ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Y</mtext></math>=<span>1D654</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Z</mtext></math>=<span>1D655</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">a</mtext></math>=<span>1D656</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">b</mtext></math>=<span>1D657</span></span><br/> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">b</mtext></math>=<span>1D657</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">c</mtext></math>=<span>1D658</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">d</mtext></math>=<span>1D659</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">d</mtext></math>=<span>1D659</span></span><br/> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">e</mtext></math>=<span>1D65A</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">f</mtext></math>=<span>1D65B</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">g</mtext></math>=<span>1D65C</span></span> @@ -68,9 +66,9 @@ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">i</mtext></math>=<span>1D65E</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">j</mtext></math>=<span>1D65F</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">k</mtext></math>=<span>1D660</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">l</mtext></math>=<span>1D661</span></span><br/> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">l</mtext></math>=<span>1D661</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">m</mtext></math>=<span>1D662</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">n</mtext></math>=<span>1D663</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">n</mtext></math>=<span>1D663</span></span><br/> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">o</mtext></math>=<span>1D664</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">p</mtext></math>=<span>1D665</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">q</mtext></math>=<span>1D666</span></span> @@ -78,9 +76,9 @@ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">s</mtext></math>=<span>1D668</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">t</mtext></math>=<span>1D669</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">u</mtext></math>=<span>1D66A</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">v</mtext></math>=<span>1D66B</span></span><br/> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">v</mtext></math>=<span>1D66B</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">w</mtext></math>=<span>1D66C</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">x</mtext></math>=<span>1D66D</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">x</mtext></math>=<span>1D66D</span></span><br/> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">y</mtext></math>=<span>1D66E</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">z</mtext></math>=<span>1D66F</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Α</mtext></math>=<span>1D790</span></span> @@ -88,9 +86,9 @@ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Γ</mtext></math>=<span>1D792</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Δ</mtext></math>=<span>1D793</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Ε</mtext></math>=<span>1D794</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Ζ</mtext></math>=<span>1D795</span></span><br/> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Ζ</mtext></math>=<span>1D795</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Η</mtext></math>=<span>1D796</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Θ</mtext></math>=<span>1D797</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Θ</mtext></math>=<span>1D797</span></span><br/> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Ι</mtext></math>=<span>1D798</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Κ</mtext></math>=<span>1D799</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Λ</mtext></math>=<span>1D79A</span></span> @@ -98,8 +96,9 @@ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Ν</mtext></math>=<span>1D79C</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Ξ</mtext></math>=<span>1D79D</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Ο</mtext></math>=<span>1D79E</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Π</mtext></math>=<span>1D79F</span></span><br/> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Π</mtext></math>=<span>1D79F</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Ρ</mtext></math>=<span>1D7A0</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϴ</mtext></math>=<span>1D7A1</span></span><br/> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Σ</mtext></math>=<span>1D7A2</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Τ</mtext></math>=<span>1D7A3</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Υ</mtext></math>=<span>1D7A4</span></span> @@ -107,6 +106,7 @@ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Χ</mtext></math>=<span>1D7A6</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Ψ</mtext></math>=<span>1D7A7</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">Ω</mtext></math>=<span>1D7A8</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">∇</mtext></math>=<span>1D7A9</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">α</mtext></math>=<span>1D7AA</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">β</mtext></math>=<span>1D7AB</span></span><br/> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">γ</mtext></math>=<span>1D7AC</span></span> @@ -132,12 +132,12 @@ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">χ</mtext></math>=<span>1D7C0</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ψ</mtext></math>=<span>1D7C1</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ω</mtext></math>=<span>1D7C2</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">∂</mtext></math>=<span>1D7C3</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϵ</mtext></math>=<span>1D7C4</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϑ</mtext></math>=<span>1D7C5</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϕ</mtext></math>=<span>1D7C7</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϖ</mtext></math>=<span>1D7C9</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϰ</mtext></math>=<span>1D7C6</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϕ</mtext></math>=<span>1D7C7</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϱ</mtext></math>=<span>1D7C8</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϴ</mtext></math>=<span>1D7A1</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϵ</mtext></math>=<span>1D7C4</span></span><br/> + <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">ϖ</mtext></math>=<span>1D7C9</span></span><br/> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-ref.html index 1087565..ced5272 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-ref.html
@@ -23,16 +23,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𝟢</mtext></math>=<span>1D7E2</span></span> - <span><math class="testfont"><mtext>𝟣</mtext></math>=<span>1D7E3</span></span> - <span><math class="testfont"><mtext>𝟤</mtext></math>=<span>1D7E4</span></span> - <span><math class="testfont"><mtext>𝟥</mtext></math>=<span>1D7E5</span></span> - <span><math class="testfont"><mtext>𝟦</mtext></math>=<span>1D7E6</span></span> - <span><math class="testfont"><mtext>𝟧</mtext></math>=<span>1D7E7</span></span> - <span><math class="testfont"><mtext>𝟨</mtext></math>=<span>1D7E8</span></span> - <span><math class="testfont"><mtext>𝟩</mtext></math>=<span>1D7E9</span></span> - <span><math class="testfont"><mtext>𝟪</mtext></math>=<span>1D7EA</span></span> - <span><math class="testfont"><mtext>𝟫</mtext></math>=<span>1D7EB</span></span><br/> <span><math class="testfont"><mtext>𝖠</mtext></math>=<span>1D5A0</span></span> <span><math class="testfont"><mtext>𝖡</mtext></math>=<span>1D5A1</span></span> <span><math class="testfont"><mtext>𝖢</mtext></math>=<span>1D5A2</span></span> @@ -85,5 +75,15 @@ <span><math class="testfont"><mtext>𝗑</mtext></math>=<span>1D5D1</span></span><br/> <span><math class="testfont"><mtext>𝗒</mtext></math>=<span>1D5D2</span></span> <span><math class="testfont"><mtext>𝗓</mtext></math>=<span>1D5D3</span></span> + <span><math class="testfont"><mtext>𝟢</mtext></math>=<span>1D7E2</span></span> + <span><math class="testfont"><mtext>𝟣</mtext></math>=<span>1D7E3</span></span> + <span><math class="testfont"><mtext>𝟤</mtext></math>=<span>1D7E4</span></span> + <span><math class="testfont"><mtext>𝟥</mtext></math>=<span>1D7E5</span></span> + <span><math class="testfont"><mtext>𝟦</mtext></math>=<span>1D7E6</span></span> + <span><math class="testfont"><mtext>𝟧</mtext></math>=<span>1D7E7</span></span> + <span><math class="testfont"><mtext>𝟨</mtext></math>=<span>1D7E8</span></span> + <span><math class="testfont"><mtext>𝟩</mtext></math>=<span>1D7E9</span></span><br/> + <span><math class="testfont"><mtext>𝟪</mtext></math>=<span>1D7EA</span></span> + <span><math class="testfont"><mtext>𝟫</mtext></math>=<span>1D7EB</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif.html index 0b346aa1..43a1fa8 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif.html
@@ -29,16 +29,6 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="sans-serif">0</mtext></math>=<span>1D7E2</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif">1</mtext></math>=<span>1D7E3</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif">2</mtext></math>=<span>1D7E4</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif">3</mtext></math>=<span>1D7E5</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif">4</mtext></math>=<span>1D7E6</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif">5</mtext></math>=<span>1D7E7</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif">6</mtext></math>=<span>1D7E8</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif">7</mtext></math>=<span>1D7E9</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif">8</mtext></math>=<span>1D7EA</span></span> - <span><math class="testfont"><mtext mathvariant="sans-serif">9</mtext></math>=<span>1D7EB</span></span><br/> <span><math class="testfont"><mtext mathvariant="sans-serif">A</mtext></math>=<span>1D5A0</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif">B</mtext></math>=<span>1D5A1</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif">C</mtext></math>=<span>1D5A2</span></span> @@ -91,5 +81,15 @@ <span><math class="testfont"><mtext mathvariant="sans-serif">x</mtext></math>=<span>1D5D1</span></span><br/> <span><math class="testfont"><mtext mathvariant="sans-serif">y</mtext></math>=<span>1D5D2</span></span> <span><math class="testfont"><mtext mathvariant="sans-serif">z</mtext></math>=<span>1D5D3</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif">0</mtext></math>=<span>1D7E2</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif">1</mtext></math>=<span>1D7E3</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif">2</mtext></math>=<span>1D7E4</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif">3</mtext></math>=<span>1D7E5</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif">4</mtext></math>=<span>1D7E6</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif">5</mtext></math>=<span>1D7E7</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif">6</mtext></math>=<span>1D7E8</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif">7</mtext></math>=<span>1D7E9</span></span><br/> + <span><math class="testfont"><mtext mathvariant="sans-serif">8</mtext></math>=<span>1D7EA</span></span> + <span><math class="testfont"><mtext mathvariant="sans-serif">9</mtext></math>=<span>1D7EB</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched-ref.html index 8ad8f7b..454f200 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched-ref.html
@@ -23,28 +23,28 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𞹾</mtext></math>=<span>1EE7E</span></span> <span><math class="testfont"><mtext>𞹡</mtext></math>=<span>1EE61</span></span> - <span><math class="testfont"><mtext>𞹵</mtext></math>=<span>1EE75</span></span> - <span><math class="testfont"><mtext>𞹶</mtext></math>=<span>1EE76</span></span> <span><math class="testfont"><mtext>𞹢</mtext></math>=<span>1EE62</span></span> + <span><math class="testfont"><mtext>𞹤</mtext></math>=<span>1EE64</span></span> <span><math class="testfont"><mtext>𞹧</mtext></math>=<span>1EE67</span></span> - <span><math class="testfont"><mtext>𞹷</mtext></math>=<span>1EE77</span></span> - <span><math class="testfont"><mtext>𞹮</mtext></math>=<span>1EE6E</span></span> - <span><math class="testfont"><mtext>𞹴</mtext></math>=<span>1EE74</span></span> - <span><math class="testfont"><mtext>𞹱</mtext></math>=<span>1EE71</span></span><br/> - <span><math class="testfont"><mtext>𞹹</mtext></math>=<span>1EE79</span></span> <span><math class="testfont"><mtext>𞹨</mtext></math>=<span>1EE68</span></span> - <span><math class="testfont"><mtext>𞹺</mtext></math>=<span>1EE7A</span></span> - <span><math class="testfont"><mtext>𞹯</mtext></math>=<span>1EE6F</span></span> - <span><math class="testfont"><mtext>𞹻</mtext></math>=<span>1EE7B</span></span> - <span><math class="testfont"><mtext>𞹰</mtext></math>=<span>1EE70</span></span> - <span><math class="testfont"><mtext>𞹲</mtext></math>=<span>1EE72</span></span> + <span><math class="testfont"><mtext>𞹩</mtext></math>=<span>1EE69</span></span> <span><math class="testfont"><mtext>𞹪</mtext></math>=<span>1EE6A</span></span> <span><math class="testfont"><mtext>𞹬</mtext></math>=<span>1EE6C</span></span> - <span><math class="testfont"><mtext>𞹭</mtext></math>=<span>1EE6D</span></span><br/> - <span><math class="testfont"><mtext>𞹤</mtext></math>=<span>1EE64</span></span> - <span><math class="testfont"><mtext>𞹩</mtext></math>=<span>1EE69</span></span> + <span><math class="testfont"><mtext>𞹭</mtext></math>=<span>1EE6D</span></span> + <span><math class="testfont"><mtext>𞹮</mtext></math>=<span>1EE6E</span></span><br/> + <span><math class="testfont"><mtext>𞹯</mtext></math>=<span>1EE6F</span></span> + <span><math class="testfont"><mtext>𞹰</mtext></math>=<span>1EE70</span></span> + <span><math class="testfont"><mtext>𞹱</mtext></math>=<span>1EE71</span></span> + <span><math class="testfont"><mtext>𞹲</mtext></math>=<span>1EE72</span></span> + <span><math class="testfont"><mtext>𞹴</mtext></math>=<span>1EE74</span></span> + <span><math class="testfont"><mtext>𞹵</mtext></math>=<span>1EE75</span></span> + <span><math class="testfont"><mtext>𞹶</mtext></math>=<span>1EE76</span></span> + <span><math class="testfont"><mtext>𞹷</mtext></math>=<span>1EE77</span></span> + <span><math class="testfont"><mtext>𞹹</mtext></math>=<span>1EE79</span></span> + <span><math class="testfont"><mtext>𞹺</mtext></math>=<span>1EE7A</span></span><br/> + <span><math class="testfont"><mtext>𞹻</mtext></math>=<span>1EE7B</span></span> <span><math class="testfont"><mtext>𞹼</mtext></math>=<span>1EE7C</span></span> + <span><math class="testfont"><mtext>𞹾</mtext></math>=<span>1EE7E</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched.html index 84210c3..99b06fb4 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched.html
@@ -29,28 +29,28 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="stretched">ڡ</mtext></math>=<span>1EE7E</span></span> <span><math class="testfont"><mtext mathvariant="stretched">ب</mtext></math>=<span>1EE61</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">ت</mtext></math>=<span>1EE75</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">ث</mtext></math>=<span>1EE76</span></span> <span><math class="testfont"><mtext mathvariant="stretched">ج</mtext></math>=<span>1EE62</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ه</mtext></math>=<span>1EE64</span></span> <span><math class="testfont"><mtext mathvariant="stretched">ح</mtext></math>=<span>1EE67</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">خ</mtext></math>=<span>1EE77</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">س</mtext></math>=<span>1EE6E</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">ش</mtext></math>=<span>1EE74</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">ص</mtext></math>=<span>1EE71</span></span><br/> - <span><math class="testfont"><mtext mathvariant="stretched">ض</mtext></math>=<span>1EE79</span></span> <span><math class="testfont"><mtext mathvariant="stretched">ط</mtext></math>=<span>1EE68</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">ظ</mtext></math>=<span>1EE7A</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">ع</mtext></math>=<span>1EE6F</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">غ</mtext></math>=<span>1EE7B</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">ف</mtext></math>=<span>1EE70</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">ق</mtext></math>=<span>1EE72</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ي</mtext></math>=<span>1EE69</span></span> <span><math class="testfont"><mtext mathvariant="stretched">ك</mtext></math>=<span>1EE6A</span></span> <span><math class="testfont"><mtext mathvariant="stretched">م</mtext></math>=<span>1EE6C</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">ن</mtext></math>=<span>1EE6D</span></span><br/> - <span><math class="testfont"><mtext mathvariant="stretched">ه</mtext></math>=<span>1EE64</span></span> - <span><math class="testfont"><mtext mathvariant="stretched">ي</mtext></math>=<span>1EE69</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ن</mtext></math>=<span>1EE6D</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">س</mtext></math>=<span>1EE6E</span></span><br/> + <span><math class="testfont"><mtext mathvariant="stretched">ع</mtext></math>=<span>1EE6F</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ف</mtext></math>=<span>1EE70</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ص</mtext></math>=<span>1EE71</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ق</mtext></math>=<span>1EE72</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ش</mtext></math>=<span>1EE74</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ت</mtext></math>=<span>1EE75</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ث</mtext></math>=<span>1EE76</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">خ</mtext></math>=<span>1EE77</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ض</mtext></math>=<span>1EE79</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ظ</mtext></math>=<span>1EE7A</span></span><br/> + <span><math class="testfont"><mtext mathvariant="stretched">غ</mtext></math>=<span>1EE7B</span></span> <span><math class="testfont"><mtext mathvariant="stretched">ٮ</mtext></math>=<span>1EE7C</span></span> + <span><math class="testfont"><mtext mathvariant="stretched">ڡ</mtext></math>=<span>1EE7E</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed-ref.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed-ref.html index 5273a28..5e1461cd3 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed-ref.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed-ref.html
@@ -23,20 +23,20 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext>𞹒</mtext></math>=<span>1EE52</span></span> - <span><math class="testfont"><mtext>𞹋</mtext></math>=<span>1EE4B</span></span> - <span><math class="testfont"><mtext>𞹍</mtext></math>=<span>1EE4D</span></span> - <span><math class="testfont"><mtext>𞹉</mtext></math>=<span>1EE49</span></span> <span><math class="testfont"><mtext>𞹂</mtext></math>=<span>1EE42</span></span> <span><math class="testfont"><mtext>𞹇</mtext></math>=<span>1EE47</span></span> - <span><math class="testfont"><mtext>𞹗</mtext></math>=<span>1EE57</span></span> - <span><math class="testfont"><mtext>𞹟</mtext></math>=<span>1EE5F</span></span> + <span><math class="testfont"><mtext>𞹉</mtext></math>=<span>1EE49</span></span> + <span><math class="testfont"><mtext>𞹋</mtext></math>=<span>1EE4B</span></span> + <span><math class="testfont"><mtext>𞹍</mtext></math>=<span>1EE4D</span></span> <span><math class="testfont"><mtext>𞹎</mtext></math>=<span>1EE4E</span></span> - <span><math class="testfont"><mtext>𞹔</mtext></math>=<span>1EE54</span></span><br/> - <span><math class="testfont"><mtext>𞹑</mtext></math>=<span>1EE51</span></span> - <span><math class="testfont"><mtext>𞹙</mtext></math>=<span>1EE59</span></span> <span><math class="testfont"><mtext>𞹏</mtext></math>=<span>1EE4F</span></span> + <span><math class="testfont"><mtext>𞹑</mtext></math>=<span>1EE51</span></span> + <span><math class="testfont"><mtext>𞹒</mtext></math>=<span>1EE52</span></span> + <span><math class="testfont"><mtext>𞹔</mtext></math>=<span>1EE54</span></span><br/> + <span><math class="testfont"><mtext>𞹗</mtext></math>=<span>1EE57</span></span> + <span><math class="testfont"><mtext>𞹙</mtext></math>=<span>1EE59</span></span> <span><math class="testfont"><mtext>𞹛</mtext></math>=<span>1EE5B</span></span> <span><math class="testfont"><mtext>𞹝</mtext></math>=<span>1EE5D</span></span> + <span><math class="testfont"><mtext>𞹟</mtext></math>=<span>1EE5F</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed.html index 4590b76a..43fbca5 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed.html
@@ -29,20 +29,20 @@ <body> <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. --> <p>Test passes if all the equalities below are true.</p> - <span><math class="testfont"><mtext mathvariant="tailed">ق</mtext></math>=<span>1EE52</span></span> - <span><math class="testfont"><mtext mathvariant="tailed">ل</mtext></math>=<span>1EE4B</span></span> - <span><math class="testfont"><mtext mathvariant="tailed">ن</mtext></math>=<span>1EE4D</span></span> - <span><math class="testfont"><mtext mathvariant="tailed">ي</mtext></math>=<span>1EE49</span></span> <span><math class="testfont"><mtext mathvariant="tailed">ج</mtext></math>=<span>1EE42</span></span> <span><math class="testfont"><mtext mathvariant="tailed">ح</mtext></math>=<span>1EE47</span></span> - <span><math class="testfont"><mtext mathvariant="tailed">خ</mtext></math>=<span>1EE57</span></span> - <span><math class="testfont"><mtext mathvariant="tailed">ٯ</mtext></math>=<span>1EE5F</span></span> + <span><math class="testfont"><mtext mathvariant="tailed">ي</mtext></math>=<span>1EE49</span></span> + <span><math class="testfont"><mtext mathvariant="tailed">ل</mtext></math>=<span>1EE4B</span></span> + <span><math class="testfont"><mtext mathvariant="tailed">ن</mtext></math>=<span>1EE4D</span></span> <span><math class="testfont"><mtext mathvariant="tailed">س</mtext></math>=<span>1EE4E</span></span> - <span><math class="testfont"><mtext mathvariant="tailed">ش</mtext></math>=<span>1EE54</span></span><br/> - <span><math class="testfont"><mtext mathvariant="tailed">ص</mtext></math>=<span>1EE51</span></span> - <span><math class="testfont"><mtext mathvariant="tailed">ض</mtext></math>=<span>1EE59</span></span> <span><math class="testfont"><mtext mathvariant="tailed">ع</mtext></math>=<span>1EE4F</span></span> + <span><math class="testfont"><mtext mathvariant="tailed">ص</mtext></math>=<span>1EE51</span></span> + <span><math class="testfont"><mtext mathvariant="tailed">ق</mtext></math>=<span>1EE52</span></span> + <span><math class="testfont"><mtext mathvariant="tailed">ش</mtext></math>=<span>1EE54</span></span><br/> + <span><math class="testfont"><mtext mathvariant="tailed">خ</mtext></math>=<span>1EE57</span></span> + <span><math class="testfont"><mtext mathvariant="tailed">ض</mtext></math>=<span>1EE59</span></span> <span><math class="testfont"><mtext mathvariant="tailed">غ</mtext></math>=<span>1EE5B</span></span> <span><math class="testfont"><mtext mathvariant="tailed">ں</mtext></math>=<span>1EE5D</span></span> + <span><math class="testfont"><mtext mathvariant="tailed">ٯ</mtext></math>=<span>1EE5F</span></span> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/tools/mathvariant-transforms.py b/third_party/blink/web_tests/external/wpt/mathml/tools/mathvariant-transforms.py index 49c2087..f2e9f18 100755 --- a/third_party/blink/web_tests/external/wpt/mathml/tools/mathvariant-transforms.py +++ b/third_party/blink/web_tests/external/wpt/mathml/tools/mathvariant-transforms.py
@@ -71,44 +71,51 @@ mathfont.createGlyphFromValue(font, transformedChar) mathfont.save(font) -# Create a MathML and CSS test for each mathvariant. -for mathvariant in mathvariantTransforms: +# Common function to generate test for MathML mathvariant / CSS text-transform. +def generateTestFor(mathvariant, mathml): + assert mathml or mathvariant == "auto", "These tests have been removed!" print("Generating tests for %s..." % mathvariant, end="") - reftest = open("../relations/css-styling/mathvariant-%s.html" % mathvariant, "w") - reftestReference = open("../relations/css-styling/mathvariant-%s-ref.html" % mathvariant, "w") - CSSreftest = open("../../css/css-text/text-transform/math/text-transform-math-%s-001.tentative.html" % mathvariant, "w") - CSSreftestReference = open("../../css/css-text/text-transform/math/text-transform-math-%s-001.tentative-ref.html" % mathvariant, "w") + if mathml: + reftest = open("../relations/css-styling/mathvariant-%s.html" % mathvariant, "w") + reftestReference = open("../relations/css-styling/mathvariant-%s-ref.html" % mathvariant, "w") + else: + reftest = open("../../css/css-text/text-transform/math/text-transform-math-%s-001.html" % mathvariant, "w") + reftestReference = open("../../css/css-text/text-transform/math/text-transform-math-%s-001-ref.html" % mathvariant, "w") source = '\ <!DOCTYPE html>\n\ <html>\n\ <head>\n\ <meta charset="utf-8"/>\n\ <title>%s</title>\n' - reftest.write(source % ("mathvariant %s" % mathvariant)) - reftestReference.write(source % ("mathvariant %s (reference)" % mathvariant)) - CSSreftest.write(source % ("text-transform math-%s" % mathvariant)) - CSSreftestReference.write(source % ("text-transform math-%s (reference)" % mathvariant)) + if mathml: + reftest.write(source % ("mathvariant %s" % mathvariant)) + reftestReference.write(source % ("mathvariant %s (reference)" % mathvariant)) + else: + reftest.write(source % ("text-transform math-%s" % mathvariant)) + reftestReference.write(source % ("text-transform math-%s (reference)" % mathvariant)) if mathvariant == "auto": mathAssert = "Verify that a single-char <mi> is equivalent to an <mi> with the transformed italic unicode character." mapping = "italic" else: mathAssert = "Verify that a single-char <mtext> with a %s mathvariant is equivalent to an <mtext> with the transformed unicode character." % mathvariant mapping = mathvariant - source ='\ + if mathml: + source ='\ <link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">\n\ <link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">\n\ <link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">\n\ <link rel="help" href="https://w3c.github.io/mathml-core/#%s-mappings">\n\ <link rel="match" href="mathvariant-%s-ref.html"/>\n\ <meta name="assert" content="%s">\n' - reftest.write(source % (mapping, mathvariant, mathAssert)) - source = '\ + reftest.write(source % (mapping, mathvariant, mathAssert)) + else: + source = '\ <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>\n\ <link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">\n\ <link rel="help" href="https://w3c.github.io/mathml-core/#%s-mappings">\n\ -<link rel="match" href="text-transform-math-%s-001.tentative-ref.html"/>\n\ +<link rel="match" href="text-transform-math-%s-001-ref.html"/>\n\ <meta name="assert" content="Verify that a character with \'text-transform: math-%s\' renders the same as the transformed unicode character.">\n' - CSSreftest.write(source % (mapping, mathvariant, mathvariant)) + reftest.write(source % (mapping, mathvariant, mathvariant)) WOFFfont = "mathvariant-%s.woff" % mapping source = '\ <style>\n\ @@ -131,10 +138,12 @@ <body>\n\ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->\n\ <p>Test passes if all the equalities below are true.</p>\n' % WOFFfont - reftest.write(source) - reftestReference.write(source) - CSSreftest.write(source) - CSSreftestReference.write(source) + if mathml: + reftest.write(source) + reftestReference.write(source) + else: + reftest.write(source) + reftestReference.write(source) charIndex = 0 for baseChar in mathvariantTransforms[mathvariant]: transformedChar = mathvariantTransforms[mathvariant][baseChar] @@ -144,27 +153,30 @@ else: tokenTag = '<mtext mathvariant="%s">&#x%0X;</mtext>' % (mathvariant, baseChar) tokenTagRef = '<mtext>&#x%0X;</mtext>' % transformedChar - reftest.write(' <span><math class="testfont">%s</math>=<span>%05X</span></span>' % (tokenTag, transformedChar)) - reftestReference.write(' <span><math class="testfont">%s</math>=<span>%05X</span></span>' % (tokenTagRef, transformedChar)) - CSSreftest.write(' <span><span class="testfont" style="text-transform: math-%s">&#x%0X;</span>=<span>%05X</span></span>' % (mathvariant, baseChar, transformedChar)) - CSSreftestReference.write(' <span><span class="testfont">&#x%0X;</span>=<span>%05X</span></span>' % (transformedChar, transformedChar)) + if mathml: + reftest.write(' <span><math class="testfont">%s</math>=<span>%05X</span></span>' % (tokenTag, transformedChar)) + reftestReference.write(' <span><math class="testfont">%s</math>=<span>%05X</span></span>' % (tokenTagRef, transformedChar)) + else: + reftest.write(' <span><span class="testfont" style="text-transform: math-%s">&#x%0X;</span>=<span>%05X</span></span>' % (mathvariant, baseChar, transformedChar)) + reftestReference.write(' <span><span class="testfont">&#x%0X;</span>=<span>%05X</span></span>' % (transformedChar, transformedChar)) charIndex += 1 if charIndex % 10 == 0: reftest.write('<br/>') reftestReference.write('<br/>') - CSSreftest.write('<br/>') - CSSreftestReference.write('<br/>') reftest.write('\n') reftestReference.write('\n') - CSSreftest.write('\n') - CSSreftestReference.write('\n') source = '</body>\n</html>\n' reftest.write(source) reftestReference.write(source) - CSSreftest.write(source) - CSSreftestReference.write(source) reftest.close() reftestReference.close() - CSSreftest.close() - CSSreftestReference.close() print(" done.") + +# Generate css/css-text/text-transform/math/text-transform-math-auto-001.html +generateTestFor(mathvariant="auto", mathml=False) + +# Generate mathml/relations/css-styling/mathvariant-* tests. +# TODO: Remove these tests from WPT and move them back to internal repos of +# WebKit and Mozilla. See https://github.com/w3c/mathml-core/issues/182 +for mathvariant in mathvariantTransforms: + generateTestFor(mathvariant, mathml=True)
diff --git a/third_party/blink/web_tests/external/wpt/mathml/tools/utils/mathfont.py b/third_party/blink/web_tests/external/wpt/mathml/tools/utils/mathfont.py index 79772a2..ff11cc5 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/tools/utils/mathfont.py +++ b/third_party/blink/web_tests/external/wpt/mathml/tools/utils/mathfont.py
@@ -168,7 +168,7 @@ for i in range(0, 5): drawHexaDigit(g, (5 - (i + 1)) * em / 2, value % 16) value /= 16 - g.width = 5 * em / 2 + g.width = 5 * em // 2 g.stroke("circular", em / 10, "square", "miter", "cleanup") def createSizeVariants(aFont, aUsePUA = False, aCenterOnBaseline = False):
diff --git a/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/scroll-after-preventDefault.html.ini b/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/scroll-after-preventDefault.html.ini new file mode 100644 index 0000000..95d1a1f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/scroll-after-preventDefault.html.ini
@@ -0,0 +1,2 @@ +[scroll-after-preventDefault.html] + expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/preload/modulepreload.html b/third_party/blink/web_tests/external/wpt/preload/modulepreload.html index 58830fe0..0e4b692 100644 --- a/third_party/blink/web_tests/external/wpt/preload/modulepreload.html +++ b/third_party/blink/web_tests/external/wpt/preload/modulepreload.html
@@ -36,17 +36,17 @@ promise_test(function(t) { var link = document.createElement('link'); link.rel = 'modulepreload'; - link.href = 'resources/dummy.js'; + link.href = 'resources/dummy.js?unique'; return attachAndWaitForLoad(link).then(() => { - verifyNumberOfDownloads('resources/dummy.js', 1); + verifyNumberOfDownloads('resources/dummy.js?unique', 1); // Verify that <script> doesn't fetch the module again. var script = document.createElement('script'); script.type = 'module'; - script.src = 'resources/dummy.js'; + script.src = 'resources/dummy.js?unique'; return attachAndWaitForLoad(script); }).then(() => { - verifyNumberOfDownloads('resources/dummy.js', 1); + verifyNumberOfDownloads('resources/dummy.js?unique', 1); }); }, 'link rel=modulepreload');
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/without-ports/020.html.ini b/third_party/blink/web_tests/external/wpt/webmessaging/without-ports/020.html.ini new file mode 100644 index 0000000..0a16a392a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webmessaging/without-ports/020.html.ini
@@ -0,0 +1,3 @@ +[020.html] + [cross-origin test] + expected: FAIL
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 new file mode 100644 index 0000000..4c5ec505 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/close.any.js.ini
@@ -0,0 +1,2 @@ +[close.any.html?wpt_flags=h2] + expected: TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/constructor.any.js.ini b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/constructor.any.js.ini new file mode 100644 index 0000000..21540c7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/constructor.any.js.ini
@@ -0,0 +1,2 @@ +[constructor.any.serviceworker.html?wpt_flags=h2] + expected: TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/webtransport/close.https.any.js b/third_party/blink/web_tests/external/wpt/webtransport/close.https.any.js index d1f66751..b6b367ba 100644 --- a/third_party/blink/web_tests/external/wpt/webtransport/close.https.any.js +++ b/third_party/blink/web_tests/external/wpt/webtransport/close.https.any.js
@@ -13,8 +13,8 @@ const close_info = await wt.closed; - assert_not_own_property(close_info, 'closeCode'); - assert_not_own_property(close_info, 'reason'); + assert_equals(close_info.closeCode, 0 , 'code'); + assert_equals(close_info.reason, '', 'reason'); await wait(10); const data = await query(id);
diff --git a/third_party/blink/web_tests/external/wpt/webtransport/constructor.https.any.js b/third_party/blink/web_tests/external/wpt/webtransport/constructor.https.any.js index acb91d8..0f39c499 100644 --- a/third_party/blink/web_tests/external/wpt/webtransport/constructor.https.any.js +++ b/third_party/blink/web_tests/external/wpt/webtransport/constructor.https.any.js
@@ -1,6 +1,7 @@ // META: global=window,worker // META: script=/common/get-host-info.sub.js // META: script=resources/webtransport-test-helpers.sub.js +// META: script=/common/utils.js const BAD_URLS = [ null, @@ -33,7 +34,8 @@ for (const options of OPTIONS) { promise_test(async t => { - const wt = new WebTransport(`https://${HOST}:0/`, options ); + const id = token(); + const wt = new WebTransport(webtransport_url(`client-close.py?token=${id}`), options ); await wt.ready; wt.close(); }, "WebTransport constructor should allow options " + JSON.stringify(options));
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/embedded_style_multiple_tracks.html.ini b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/embedded_style_multiple_tracks.html.ini new file mode 100644 index 0000000..5b1c4f1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/embedded_style_multiple_tracks.html.ini
@@ -0,0 +1,2 @@ +[embedded_style_multiple_tracks.html] + expected: FAIL
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/issues/webrtc-stats-deprecation-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/issues/webrtc-stats-deprecation-expected.txt new file mode 100644 index 0000000..bc31886 --- /dev/null +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/issues/webrtc-stats-deprecation-expected.txt
@@ -0,0 +1,21 @@ +Tests that deprecation issues are reported +Inspector issue: { + issue : { + code : DeprecationIssue + details : { + deprecationIssueDetails : { + affectedFrame : { + frameId : <string> + } + sourceCodeLocation : { + columnNumber : 25 + lineNumber : 0 + scriptId : <string> + url : + } + type : RTCPeerConnectionGetStatsLegacyNonCompliant + } + } + } +} +
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/issues/webrtc-stats-deprecation.js b/third_party/blink/web_tests/http/tests/inspector-protocol/issues/webrtc-stats-deprecation.js new file mode 100644 index 0000000..69d93bf --- /dev/null +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/issues/webrtc-stats-deprecation.js
@@ -0,0 +1,9 @@ +(async function (testRunner) { + const { session, dp } = await testRunner.startBlank(`Tests that deprecation issues are reported`); + await dp.Audits.enable(); + const promise = dp.Audits.onceIssueAdded(); + session.evaluate("new RTCPeerConnection().getStats(r => {})"); + const result = await promise; + testRunner.log(result.params, "Inspector issue: "); + testRunner.completeTest(); +})
diff --git a/third_party/blink/web_tests/virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/blink/web_tests/virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt index e20c6d0..78348995 100644 --- a/third_party/blink/web_tests/virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -109,9 +109,6 @@ attribute @@toStringTag method constructor method respondWith -interface CanvasFilter - attribute @@toStringTag - method constructor interface CanvasGradient attribute @@toStringTag method addColorStop
diff --git a/third_party/blink/web_tests/virtual/stable/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt b/third_party/blink/web_tests/virtual/stable/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt index 739eab52..e674a9f 100644 --- a/third_party/blink/web_tests/virtual/stable/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
@@ -175,9 +175,6 @@ CONSOLE MESSAGE: getter variable CONSOLE MESSAGE: method constructor CONSOLE MESSAGE: setter variable -CONSOLE MESSAGE: interface CanvasFilter -CONSOLE MESSAGE: attribute @@toStringTag -CONSOLE MESSAGE: method constructor CONSOLE MESSAGE: interface CountQueuingStrategy CONSOLE MESSAGE: attribute @@toStringTag CONSOLE MESSAGE: getter highWaterMark @@ -575,9 +572,6 @@ CONSOLE MESSAGE: getter variable CONSOLE MESSAGE: method constructor CONSOLE MESSAGE: setter variable -CONSOLE MESSAGE: interface CanvasFilter -CONSOLE MESSAGE: attribute @@toStringTag -CONSOLE MESSAGE: method constructor CONSOLE MESSAGE: interface CountQueuingStrategy CONSOLE MESSAGE: attribute @@toStringTag CONSOLE MESSAGE: getter highWaterMark
diff --git a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt index a0f9869..8df3a4a 100644 --- a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -137,9 +137,6 @@ [Worker] method keys [Worker] method match [Worker] method open -[Worker] interface CanvasFilter -[Worker] attribute @@toStringTag -[Worker] method constructor [Worker] interface CanvasGradient [Worker] attribute @@toStringTag [Worker] method addColorStop
diff --git a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt index 30b92de..02d3b0f 100644 --- a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -815,9 +815,6 @@ getter canvas method constructor method requestFrame -interface CanvasFilter - attribute @@toStringTag - method constructor interface CanvasGradient attribute @@toStringTag method addColorStop
diff --git a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt index ccc2a920..e13ca669 100644 --- a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt
@@ -98,9 +98,6 @@ [Worker] method keys [Worker] method match [Worker] method open -[Worker] interface CanvasFilter -[Worker] attribute @@toStringTag -[Worker] method constructor [Worker] interface CanvasGradient [Worker] attribute @@toStringTag [Worker] method addColorStop
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 4e4dbc3..1f635643 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -50984,6 +50984,12 @@ </int> <int value="4" label="kUpgradeNetError">Upgrade failed due to net error</int> <int value="5" label="kUpgradeTimedOut">Upgrade failed due to timing out</int> + <int value="6" label="kPrerenderCancelled"> + Prerender navigation cancelled + </int> + <int value="7" label="kUpgradeNotAttempted"> + Upgrade not attempted because not enabled + </int> </enum> <enum name="HttpsImageCompressionInfoBarAction"> @@ -51220,89 +51226,6 @@ <int value="2" label="Load icon via non-mojom call"/> </enum> -<enum name="ICUCreateInstanceCode"> - <summary>Recorded when ICU create instance of key objects.</summary> - <int value="0" label="Character Break Iterator"/> - <int value="1" label="Word Break Iterator"/> - <int value="2" label="Line Break Iterator"/> - <int value="3" label="Line Break Iterator (type=loose)"/> - <int value="4" label="Line Break Iterator (type=normal)"/> - <int value="5" label="Line Break Iterator (type=strict)"/> - <int value="6" label="Sentence Break Iterator"/> - <int value="7" label="Title Break Iterator"/> - <int value="8" label="Thai Break Engine"/> - <int value="9" label="Lao Break Engine"/> - <int value="10" label="Burmese Break Engine"/> - <int value="11" label="Khmer Break Engine"/> - <int value="12" label="Chinese/Japanese Break Engine"/> -</enum> - -<enum name="ICUDataFileCode"> - <summary> - Hash values for strings of the ICU built-in data file names. - </summary> - <int value="-2111503073" label="/windows-1258-html.cnv"/> - <int value="-2110345586" label="/macintosh-html.cnv"/> - <int value="-2034479209" label="/confusables.cfu"/> - <int value="-1917305109" label="brkitr/thaidict.dict"/> - <int value="-1873162436" label="/x-mac-cyrillic-html.cnv"/> - <int value="-1780009268" label="/windows-1250-html.cnv"/> - <int value="-1759448336" label="brkitr/line_normal.brk"/> - <int value="-1697710168" label="/iso-8859-16-html.cnv"/> - <int value="-1687120246" label="brkitr/line_loose_cj.brk"/> - <int value="-1504981961" label="/koi8-r-html.cnv"/> - <int value="-1364734694" label="/iso-8859-7-html.cnv"/> - <int value="-1327619847" label="/iso-8859-3-html.cnv"/> - <int value="-1288434136" label="/koi8-u-html.cnv"/> - <int value="-1224386407" label="/iso-8859-13-html.cnv"/> - <int value="-1078901331" label="/cnvalias.icu"/> - <int value="-1055927650" label="/ISO-2022-KR.cnv"/> - <int value="-1052227072" label="/shift_jis-html.cnv"/> - <int value="-1052125062" label="/nfkc.nrm"/> - <int value="-1047426245" label="/ISO-2022-CN.cnv"/> - <int value="-1014217346" label="brkitr/line.brk"/> - <int value="-840844187" label="brkitr/sent.brk"/> - <int value="-834793818" label="/HZ-GB-2312.cnv"/> - <int value="-737609096" label="/windows-1256-html.cnv"/> - <int value="-727059472" label="brkitr/laodict.dict"/> - <int value="-716747528" label="brkitr/khmerdict.dict"/> - <int value="-524379715" label="/windows-1257-html.cnv"/> - <int value="-279661608" label="/ulayout.icu"/> - <int value="-194101744" label="/nfkc_cf.nrm"/> - <int value="-116865252" label="/uts46.nrm"/> - <int value="-52152166" label="brkitr/line_loose.brk"/> - <int value="-25592431" label="brkitr/burmesedict.dict"/> - <int value="17625259" label="/iso-8859-4-html.cnv"/> - <int value="143580007" label="/iso-8859-5-html.cnv"/> - <int value="335235069" label="/unames.icu"/> - <int value="385770370" label="brkitr/line_normal_cj.brk"/> - <int value="457714494" label="/windows-936-2000.cnv"/> - <int value="516825216" label="/iso-8859-2-html.cnv"/> - <int value="521388409" label="/windows-1252-html.cnv"/> - <int value="638014984" label="/iso-8859-10-html.cnv"/> - <int value="644061783" label="/big5-html.cnv"/> - <int value="741606455" label="brkitr/word.brk"/> - <int value="803888318" label="coll/ucadata.icu"/> - <int value="815707934" label="/windows-1253-html.cnv"/> - <int value="824383969" label="/windows-1255-html.cnv"/> - <int value="828722545" label="/iso-8859-8-html.cnv"/> - <int value="855391538" label="brkitr/title.brk"/> - <int value="1069381207" label="/windows-1251-html.cnv"/> - <int value="1077119420" label="/iso-8859-15-html.cnv"/> - <int value="1107452641" label="/iso-8859-6-html.cnv"/> - <int value="1110127155" label="/euc-jp-html.cnv"/> - <int value="1169621536" label="brkitr/cjdict.dict"/> - <int value="1197891648" label="/windows-874-html.cnv"/> - <int value="1263030766" label="/euc-kr-html.cnv"/> - <int value="1593431589" label="/ISO-2022-CN-EXT.cnv"/> - <int value="1611823660" label="/windows-1254-html.cnv"/> - <int value="1721050252" label="/iso-8859-14-html.cnv"/> - <int value="1743955546" label="brkitr/char.brk"/> - <int value="1764849685" label="brkitr/sent_el.brk"/> - <int value="1993636507" label="/gb18030.cnv"/> - <int value="1998603597" label="/ibm866-html.cnv"/> -</enum> - <enum name="IDBAction"> <int value="0" label="BackingStoreOpenAttempt"> Recorded when the there is an attempt to open the backing store from disk,
diff --git a/tools/metrics/histograms/metadata/gpu/histograms.xml b/tools/metrics/histograms/metadata/gpu/histograms.xml index 04e78ab..aea318d 100644 --- a/tools/metrics/histograms/metadata/gpu/histograms.xml +++ b/tools/metrics/histograms/metadata/gpu/histograms.xml
@@ -914,6 +914,27 @@ </summary> </histogram> +<histogram name="GPU.IntelVpSuperResolution.{State}.{Call}" enum="Hresult" + expires_after="2023-05-18"> + <owner>magchen@chromium.org</owner> + <owner>zmo@chromium.org</owner> + <owner>graphics-dev@chromium.org</owner> + <summary> + Records HRESULT in IntelVpSuperResolution. This metric is only collected on + Intel Windows every frame from video streams. + </summary> + <token key="State"> + <variant name="Off" summary="off"/> + <variant name="On" summary="on"/> + </token> + <token key="Call"> + <variant name="VideoProcessorBlt" summary="vpblt"/> + <variant name="VpeFnMode" summary="mode"/> + <variant name="VpeFnScaling" summary="scaling"/> + <variant name="VpeFnVersion" summary="version"/> + </token> +</histogram> + <histogram name="GPU.IOSurface.CATransactionTimeUs" units="microseconds" expires_after="2023-08-20"> <owner>magchen@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml index 095a465..a0036df 100644 --- a/tools/metrics/histograms/metadata/others/histograms.xml +++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -7052,31 +7052,6 @@ <summary>The time it takes to open a hyphenation dictionary file.</summary> </histogram> -<histogram name="ICU.CreateInstance" enum="ICUCreateInstanceCode" - expires_after="2021-02-21"> - <owner>ftang@chromium.org</owner> - <owner>intl-libs-team@google.com</owner> - <summary> - This metric logs the creation of key ICU objects. These object creation - called directly from Chrome code or indirectly from depending library such - as blink and v8. - </summary> -</histogram> - -<histogram name="ICU.DataFile" enum="ICUDataFileCode" - expires_after="2021-02-21"> - <owner>ftang@chromium.org</owner> - <owner>intl-libs-team@google.com</owner> - <summary> - This metric logs the ICU built-in data file name opened and used by chrome. - These file open calls are perform internally inside ICU while Chrome - directly or indirectly call ICU to create object and cause ICU to load new - data files, such as loading codeset conversion table, create break iterator, - and open dictionary files for word break/line break iterator. It however - does not include the opening of resource bundle files. - </summary> -</histogram> - <histogram name="Import.ImportedHistorySize.AutoImportFromIE" units="urls" expires_after="M77"> <owner>gcomanici@chromium.org</owner>
diff --git a/tools/v8_context_snapshot/v8_context_snapshot_generator.cc b/tools/v8_context_snapshot/v8_context_snapshot_generator.cc index ee9be745..4cdea7b 100644 --- a/tools/v8_context_snapshot/v8_context_snapshot_generator.cc +++ b/tools/v8_context_snapshot/v8_context_snapshot_generator.cc
@@ -57,11 +57,12 @@ base::FilePath file_path = base::CommandLine::ForCurrentProcess()->GetSwitchValuePath("output_file"); CHECK(!file_path.empty()); - int written = base::WriteFile(file_path, blob.data, blob.raw_size); int error_code = 0; - if (written != blob.raw_size) { - fprintf(stderr, "Error: WriteFile of %d snapshot bytes returned %d.\n", - blob.raw_size, written); + if (!base::WriteFile(file_path, + base::as_bytes(base::make_span( + blob.data, static_cast<size_t>(blob.raw_size))))) { + fprintf(stderr, "Error: WriteFile of %d snapshot has failed.\n", + blob.raw_size); error_code = 1; }
diff --git a/ui/display/BUILD.gn b/ui/display/BUILD.gn index 4855e6b..7bd65e6 100644 --- a/ui/display/BUILD.gn +++ b/ui/display/BUILD.gn
@@ -156,8 +156,6 @@ "test/display_matchers.cc", "test/display_matchers.h", "test/display_test_util.h", - "test/scoped_screen_override.cc", - "test/scoped_screen_override.h", "test/test_screen.cc", "test/test_screen.h", ]
diff --git a/ui/display/test/scoped_screen_override.cc b/ui/display/test/scoped_screen_override.cc deleted file mode 100644 index 3425bdb..0000000 --- a/ui/display/test/scoped_screen_override.cc +++ /dev/null
@@ -1,22 +0,0 @@ -// Copyright 2018 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/display/test/scoped_screen_override.h" - -#include "ui/display/screen.h" - -namespace display { -namespace test { - -ScopedScreenOverride::ScopedScreenOverride(Screen* screen) - : original_screen_(display::Screen::GetScreen()) { - display::Screen::SetScreenInstance(screen); -} - -ScopedScreenOverride::~ScopedScreenOverride() { - display::Screen::SetScreenInstance(original_screen_); -} - -} // namespace test -} // namespace display
diff --git a/ui/display/test/scoped_screen_override.h b/ui/display/test/scoped_screen_override.h deleted file mode 100644 index 03d2296..0000000 --- a/ui/display/test/scoped_screen_override.h +++ /dev/null
@@ -1,38 +0,0 @@ -// Copyright 2018 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_DISPLAY_TEST_SCOPED_SCREEN_OVERRIDE_H_ -#define UI_DISPLAY_TEST_SCOPED_SCREEN_OVERRIDE_H_ - -#include "base/memory/raw_ptr.h" - -namespace display { - -class Screen; - -namespace test { - -// [Deprecated] Do not use this in new code. -// -// This class represents a RAII wrapper for global screen overriding. An object -// of this class restores original display::Screen instance when it goes out of -// scope. Prefer to use it instead of directly call of -// display::Screen::SetScreenInstance(). -class ScopedScreenOverride { - public: - explicit ScopedScreenOverride(Screen* screen); - - ScopedScreenOverride(const ScopedScreenOverride&) = delete; - ScopedScreenOverride& operator=(const ScopedScreenOverride&) = delete; - - ~ScopedScreenOverride(); - - private: - raw_ptr<Screen> original_screen_; -}; - -} // namespace test -} // namespace display - -#endif // UI_DISPLAY_TEST_SCOPED_SCREEN_OVERRIDE_H_
diff --git a/ui/gl/swap_chain_presenter.cc b/ui/gl/swap_chain_presenter.cc index a3263dd2..b2257f00 100644 --- a/ui/gl/swap_chain_presenter.cc +++ b/ui/gl/swap_chain_presenter.cc
@@ -208,7 +208,7 @@ raw_ptr<void> param; }; -void ToggleIntelVpSuperResolution(ID3D11VideoContext* video_context, +bool ToggleIntelVpSuperResolution(ID3D11VideoContext* video_context, ID3D11VideoProcessor* video_processor, bool is_on_battery_power) { TRACE_EVENT1("gpu", "ToggleIntelVpSuperResolution", "on", @@ -222,20 +222,28 @@ param = kIntelVpeVersion3; HRESULT hr = video_context->VideoProcessorSetOutputExtension( video_processor, &GUID_INTEL_VPE_INTERFACE, sizeof(ext), &ext); + base::UmaHistogramSparse(is_on_battery_power + ? "GPU.IntelVpSuperResolution.Off.VpeFnVersion" + : "GPU.IntelVpSuperResolution.On.VpeFnVersion", + hr); if (FAILED(hr)) { DLOG(ERROR) << "VideoProcessorSetOutputExtension failed with error 0x" << std::hex << hr; - return; + return false; } ext.function = kIntelVpeFnMode; param = is_on_battery_power ? kIntelVpeModeNone : kIntelVpeModePreproc; hr = video_context->VideoProcessorSetOutputExtension( video_processor, &GUID_INTEL_VPE_INTERFACE, sizeof(ext), &ext); + base::UmaHistogramSparse(is_on_battery_power + ? "GPU.IntelVpSuperResolution.Off.VpeFnMode" + : "GPU.IntelVpSuperResolution.On.VpeFnMode", + hr); if (FAILED(hr)) { DLOG(ERROR) << "VideoProcessorSetOutputExtension failed with error 0x" << std::hex << hr; - return; + return false; } ext.function = kIntelVpeFnScaling; @@ -244,10 +252,16 @@ hr = video_context->VideoProcessorSetStreamExtension( video_processor, 0, &GUID_INTEL_VPE_INTERFACE, sizeof(ext), &ext); + base::UmaHistogramSparse(is_on_battery_power + ? "GPU.IntelVpSuperResolution.Off.VpeFnScaling" + : "GPU.IntelVpSuperResolution.On.VpeFnScaling", + hr); if (FAILED(hr)) { DLOG(ERROR) << "VideoProcessorSetStreamExtension failed with error 0x" << std::hex << hr; + return false; } + return !is_on_battery_power; } void ToggleNvidiaVpSuperResolution(ID3D11VideoContext* video_context, @@ -1568,11 +1582,12 @@ DCHECK(output_view_); } + bool use_intel_vp_super_resolution = false; if (!layer_tree_->disable_vp_super_resolution()) { if (gpu_vendor_id_ == 0x8086 && base::FeatureList::IsEnabled(features::kIntelVpSuperResolution)) { - ToggleIntelVpSuperResolution(video_context.Get(), video_processor.Get(), - is_on_battery_power_); + use_intel_vp_super_resolution = ToggleIntelVpSuperResolution( + video_context.Get(), video_processor.Get(), is_on_battery_power_); } if (gpu_vendor_id_ == 0x10de && base::FeatureList::IsEnabled(features::kNvidiaVpSuperResolution)) { @@ -1583,6 +1598,13 @@ hr = video_context->VideoProcessorBlt(video_processor.Get(), output_view_.Get(), 0, 1, &stream); + if (gpu_vendor_id_ == 0x8086) { + base::UmaHistogramSparse( + (use_intel_vp_super_resolution + ? "GPU.IntelVpSuperResolution.On.VideoProcessorBlt" + : "GPU.IntelVpSuperResolution.Off.VideoProcessorBlt"), + hr); + } if (FAILED(hr)) { DLOG(ERROR) << "VideoProcessorBlt failed with error 0x" << std::hex << hr; return false;
diff --git a/ui/message_center/message_center_impl.cc b/ui/message_center/message_center_impl.cc index bc1dd14..854ac3dd 100644 --- a/ui/message_center/message_center_impl.cc +++ b/ui/message_center/message_center_impl.cc
@@ -201,9 +201,19 @@ notification_list_->GetNotificationsByNotifierId( notification->notifier_id()); - // `notifications` keeps notifications ordered with the most recent one in the - // front. If we have notifications for this notifier_id we return the last - // notification.. + auto parent_notification_it = base::ranges::find_if( + notifications, + [](Notification* notification) { return notification->group_parent(); }); + + // If there's already a notification assigned to be the group parent, + // returns that notification immediately. + if (parent_notification_it != notifications.cend()) { + return *parent_notification_it; + } + + // Otherwise, the parent notification should be the oldest one. Since + // `notifications` keeps notifications ordered with the most recent one in + // the front, the oldest one should be the last in the list. return notifications.size() ? *notifications.rbegin() : nullptr; }
diff --git a/ui/views/bubble/bubble_dialog_delegate_view_unittest.cc b/ui/views/bubble/bubble_dialog_delegate_view_unittest.cc index fb94fea..37126ba2 100644 --- a/ui/views/bubble/bubble_dialog_delegate_view_unittest.cc +++ b/ui/views/bubble/bubble_dialog_delegate_view_unittest.cc
@@ -16,7 +16,6 @@ #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" #include "ui/base/hit_test.h" -#include "ui/display/test/scoped_screen_override.h" #include "ui/display/test/test_screen.h" #include "ui/events/event_utils.h" #include "ui/views/animation/ink_drop.h"